[SCM] libav/experimental: fix ctts index computation when seeking, check must be done against next ctts sample, thanks to Uoti

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:59:51 UTC 2013


The following commit has been merged in the experimental branch:
commit 54a5c7193be19ad781a1df539bd120c3d8987251
Author: Baptiste Coudurier <baptiste.coudurier at gmail.com>
Date:   Sat May 12 22:02:27 2007 +0000

    fix ctts index computation when seeking, check must be done against next ctts sample, thanks to Uoti
    
    Originally committed as revision 9007 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 5d38ebf..6f783b3 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -1525,12 +1525,13 @@ static int mov_seek_stream(AVStream *st, int64_t timestamp, int flags)
     if (sc->ctts_data) {
         time_sample = 0;
         for (i = 0; i < sc->ctts_count; i++) {
-            time_sample += sc->ctts_data[i].count;
-            if (time_sample >= sc->current_sample) {
+            int next = time_sample + sc->ctts_data[i].count;
+            if (next > sc->current_sample) {
                 sc->sample_to_ctime_index = i;
-                sc->sample_to_ctime_sample = time_sample - sc->current_sample;
+                sc->sample_to_ctime_sample = sc->current_sample - time_sample;
                 break;
             }
+            time_sample = next;
         }
     }
     return sample;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list