]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
back_ptr calculation used wrong timebase when searching for back syncpoint
authorods15 <ods15@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 4 Feb 2008 10:48:41 +0000 (10:48 +0000)
committerods15 <ods15@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 4 Feb 2008 10:48:41 +0000 (10:48 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@11856 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavformat/nutenc.c
tests/libav.regression.ref

index 51c7633ae7c26ef6e52bf7e625b4960b2ed5e177..9a17c7759fe1af488ed67e4fb810e2a6ddf3279c 100644 (file)
@@ -476,7 +476,11 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt){
         ff_nut_reset_ts(nut, *nus->time_base, pkt->dts);
         for(i=0; i<s->nb_streams; i++){
             AVStream *st= s->streams[i];
-            int index= av_index_search_timestamp(st, pkt->dts, AVSEEK_FLAG_BACKWARD);
+            int64_t dts_tb = av_rescale_rnd(pkt->dts,
+                nus->time_base->num * (int64_t)nut->stream[i].time_base->den,
+                nus->time_base->den * (int64_t)nut->stream[i].time_base->num,
+                AV_ROUND_DOWN);
+            int index= av_index_search_timestamp(st, dts_tb, AVSEEK_FLAG_BACKWARD);
             if(index>=0) dummy.pos= FFMIN(dummy.pos, st->index_entries[index].pos);
         }
         if(dummy.pos == INT64_MAX)
index fba7ed4daa61b02c67a42f3a24b3c58098bd87a8..5283badfd9784799ef348f46c2c6383e1d89fd70 100644 (file)
@@ -30,7 +30,7 @@ f8ad5bd78f4d012a8ce9570aa395ac54 *./tests/data/b-libav.flv
 2ba41cf880aa5cb87e8a08fdb735398d *./tests/data/b-libav.gxf
 814640 ./tests/data/b-libav.gxf
 ./tests/data/b-libav.gxf CRC=0xa376c09e
-5489961f19ae94683d134d8108d646c8 *./tests/data/b-libav.nut
+868101eb2d9f8fe128f84399d450633e *./tests/data/b-libav.nut
 329785 ./tests/data/b-libav.nut
 ./tests/data/b-libav.nut CRC=0x400c29e9
 43238b15f1012aa27536c2be20bb2383 *./tests/data/b-libav.mkv