fix timestamps used for ratecontrol
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 11 Sep 2007 22:46:41 +0000 (22:46 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 11 Sep 2007 22:46:41 +0000 (22:46 +0000)
these were wrong (in pts vs dts sense) when b frames were in use
they were also wrong if the average framerate was smaller than 1/timebase
resulting in totally wrong final bitrate

Originally committed as revision 10477 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ratecontrol.c
tests/ffmpeg.regression.ref
tests/rotozoom.regression.ref
tests/seek.regression.ref

index 961f835..6cd5a4f 100644 (file)
@@ -699,8 +699,23 @@ float ff_rate_estimate_qscale(MpegEncContext *s, int dry_run)
         rce= &rcc->entry[picture_number];
         wanted_bits= rce->expected_bits;
     }else{
+        Picture *dts_pic;
         rce= &local_rce;
-        wanted_bits= (uint64_t)(s->bit_rate*(double)picture_number/fps);
+
+        //FIXME add a dts field to AVFrame and ensure its set and use it here instead of reordering
+        //but the reordering is simpler for now until h.264 b pyramid must be handeld
+        if(s->pict_type == B_TYPE || s->low_delay)
+            dts_pic= s->current_picture_ptr;
+        else
+            dts_pic= s->last_picture_ptr;
+
+//if(dts_pic)
+//            av_log(NULL, AV_LOG_ERROR, "%Ld %Ld %Ld %d\n", s->current_picture_ptr->pts, s->user_specified_pts, dts_pic->pts, picture_number);
+
+        if(!dts_pic || dts_pic->pts == AV_NOPTS_VALUE)
+            wanted_bits= (uint64_t)(s->bit_rate*(double)picture_number/fps);
+        else
+            wanted_bits= (uint64_t)(s->bit_rate*(double)dts_pic->pts/fps);
     }
 
     diff= s->total_bits - wanted_bits;
index 48d9088..3890262 100644 (file)
@@ -7,9 +7,9 @@ f3b008355f68394b6cad694f3488ea2b *./tests/data/a-mpeg2.mpg
 736978 ./tests/data/a-mpeg2.mpg
 9f364a477987c3b14412e303b94377ca *./tests/data/out.yuv
 stddev:  7.68 PSNR:30.41 bytes:7602176
-1716f466ea82b4d90677868b2ce1f8e2 *./tests/data/a-mpeg2ivlc-qprd.mpg
-708232 ./tests/data/a-mpeg2ivlc-qprd.mpg
-40746946d5661606f7a649c62b6c4bee *./tests/data/out.yuv
+3236c7550f66fe1f0a1526b02b72c0df *./tests/data/a-mpeg2ivlc-qprd.mpg
+707911 ./tests/data/a-mpeg2ivlc-qprd.mpg
+8a0112b8a26301ccaca49c28b30d387b *./tests/data/out.yuv
 stddev: 12.21 PSNR:26.38 bytes:7602176
 2566ea5760247a9485c8281cb52291a8 *./tests/data/a-mpeg2.mpg
 735853 ./tests/data/a-mpeg2.mpg
@@ -75,21 +75,21 @@ stddev: 10.40 PSNR:27.78 bytes:7602176
 600188 ./tests/data/a-mpeg4-adv.avi
 60edc5a67271e425d0a2a52981895b81 *./tests/data/out.yuv
 stddev: 10.25 PSNR:27.91 bytes:7602176
-d099307d14c1a4daa145618ca0522888 *./tests/data/a-mpeg4-qprd.avi
-657996 ./tests/data/a-mpeg4-qprd.avi
-8a52c562082bad78cabb40ffa292ceec *./tests/data/out.yuv
-stddev: 12.12 PSNR:26.44 bytes:7602176
-9192b10ae298ba325d53abf7b5b91ba3 *./tests/data/a-mpeg4-adap.avi
-400650 ./tests/data/a-mpeg4-adap.avi
-0ce1d1fbebc9e9178e1a1d4a32a5804c *./tests/data/out.yuv
+6ae74b04d5265132837eb32a5e03a98a *./tests/data/a-mpeg4-qprd.avi
+657854 ./tests/data/a-mpeg4-qprd.avi
+c2c3c675bd1ffdc0b92dd0f27a83f37a *./tests/data/out.yuv
+stddev: 12.12 PSNR:26.45 bytes:7602176
+69a0f715145536849413e30e950e9cc2 *./tests/data/a-mpeg4-adap.avi
+399984 ./tests/data/a-mpeg4-adap.avi
+f3e2093420cd44101da2f708f19fcbd1 *./tests/data/out.yuv
 stddev: 14.66 PSNR:24.80 bytes:7602176
 41b27141442f773eca9ef3d48d8d555a *./tests/data/a-mpeg4-Q.avi
 878264 ./tests/data/a-mpeg4-Q.avi
 8995abbcc97ed4767fcbc0bf46accd01 *./tests/data/out.yuv
 stddev:  5.61 PSNR:33.13 bytes:7602176
-5fff534f0b958547dfdb811d4f289931 *./tests/data/a-mpeg4-thread.avi
-761170 ./tests/data/a-mpeg4-thread.avi
-fe1d119938f8a26174b38eeaa18dff85 *./tests/data/out.yuv
+a20b1d73bb0671dbd2012494c31719a6 *./tests/data/a-mpeg4-thread.avi
+761506 ./tests/data/a-mpeg4-thread.avi
+a9835b5b6a34a3fd70c168dc60fb9687 *./tests/data/out.yuv
 stddev: 12.31 PSNR:26.31 bytes:7602176
 c1dae02bddd79790266bc0a9f7d6eb0e *./tests/data/a-mpeg4-PSP.mp4
 406449 ./tests/data/a-mpeg4-PSP.mp4
index 41eab5c..d87468c 100644 (file)
@@ -7,10 +7,10 @@ stddev:  4.95 PSNR:34.21 bytes:7602176
 198667 ./tests/data/a-mpeg2.mpg
 b7cae8a1f751b821cddcbe4d5dbc518c *./tests/data/out.yuv
 stddev:  4.96 PSNR:34.19 bytes:7602176
-4dd6e884eeccfb5c0d9b5542349e3d62 *./tests/data/a-mpeg2ivlc-qprd.mpg
-249692 ./tests/data/a-mpeg2ivlc-qprd.mpg
-99214c2a75ece2a0bf4f5afebc0f8ed7 *./tests/data/out.yuv
-stddev:  4.41 PSNR:35.22 bytes:7602176
+9e7542fb0dfea5ffa9de6bfee3d26fdb *./tests/data/a-mpeg2ivlc-qprd.mpg
+248055 ./tests/data/a-mpeg2ivlc-qprd.mpg
+610ec1a25a3f823bf083d8bf20348ebb *./tests/data/out.yuv
+stddev:  4.44 PSNR:35.16 bytes:7602176
 f979bcca866e6e4cad5dc6cb06e56cfb *./tests/data/a-mpeg2.mpg
 198041 ./tests/data/a-mpeg2.mpg
 f6d9bf24ff8676a7f6076c05cd2c81a3 *./tests/data/out.yuv
@@ -67,30 +67,30 @@ a1323da0c8b437cd6961f8c90451880b *./tests/data/a-huffyuv.avi
 6455232 ./tests/data/a-huffyuv.avi
 dde5895817ad9d219f79a52d0bdfb001 *./tests/data/out.yuv
 stddev:  0.00 PSNR:99.99 bytes:7602176
-968ca132d8cf46f84e657abcf8473b7c *./tests/data/a-mpeg4-rc.avi
-227934 ./tests/data/a-mpeg4-rc.avi
-895773fe8250c806a0d1592a6dd12401 *./tests/data/out.yuv
-stddev:  4.24 PSNR:35.56 bytes:7602176
+b517389e425d3065ab26ef4cc0658237 *./tests/data/a-mpeg4-rc.avi
+227762 ./tests/data/a-mpeg4-rc.avi
+cc947bbac9187bf08d3e2d425556aaa5 *./tests/data/out.yuv
+stddev:  4.26 PSNR:35.53 bytes:7602176
 9001cf571eb7f26fa5592bdec6538583 *./tests/data/a-mpeg4-adv.avi
 173590 ./tests/data/a-mpeg4-adv.avi
 699edf05648fdc42196b7bebef9be269 *./tests/data/out.yuv
 stddev:  4.84 PSNR:34.41 bytes:7602176
-1e12bb209dae0ab4b64265b0a4262257 *./tests/data/a-mpeg4-qprd.avi
-234048 ./tests/data/a-mpeg4-qprd.avi
-1ec355ffb30d2adf302a550cf5812636 *./tests/data/out.yuv
-stddev:  4.23 PSNR:35.58 bytes:7602176
-d581d6f4a331325905b8ffb05cd3bfd3 *./tests/data/a-mpeg4-adap.avi
-204284 ./tests/data/a-mpeg4-adap.avi
-c2c7f1c7844ab92d34247ccb70198c61 *./tests/data/out.yuv
-stddev:  4.04 PSNR:35.99 bytes:7602176
+23a44888361723e233e25147e42aa8d8 *./tests/data/a-mpeg4-qprd.avi
+233288 ./tests/data/a-mpeg4-qprd.avi
+4c8bebe5ceec416d84d99f3afd5fac19 *./tests/data/out.yuv
+stddev:  4.26 PSNR:35.52 bytes:7602176
+3921cc04f007f2ba73ca8a8ccbaf42eb *./tests/data/a-mpeg4-adap.avi
+202438 ./tests/data/a-mpeg4-adap.avi
+82379c0cb726088fc4de7546ae696fa8 *./tests/data/out.yuv
+stddev:  4.05 PSNR:35.95 bytes:7602176
 a5150067914ee1dee50f8fc8dcaee841 *./tests/data/a-mpeg4-Q.avi
 165802 ./tests/data/a-mpeg4-Q.avi
 4dcc71ad79bee90777cf5299044be362 *./tests/data/out.yuv
 stddev:  4.00 PSNR:36.08 bytes:7602176
-8cd8940d7451925784536fe9b2f2a5e3 *./tests/data/a-mpeg4-thread.avi
-254260 ./tests/data/a-mpeg4-thread.avi
-d160a4224ea1af66c85178912f8d3a7c *./tests/data/out.yuv
-stddev:  4.03 PSNR:36.01 bytes:7602176
+b4c8104d9fd36db9ea5c74f231107d70 *./tests/data/a-mpeg4-thread.avi
+251520 ./tests/data/a-mpeg4-thread.avi
+dbe9a74a4ca34f263900002c333eb342 *./tests/data/out.yuv
+stddev:  4.07 PSNR:35.91 bytes:7602176
 5b5b88ce610114e346a5df4f46995bb9 *./tests/data/a-mpeg4-PSP.mp4
 325006 ./tests/data/a-mpeg4-PSP.mp4
 90e65096aa9ebafa3fe3f44a5a47cdc4 *./tests/data/a-error-mpeg4-adv.avi
index e4bfbf0..4a3a492 100644 (file)
@@ -1220,47 +1220,47 @@ ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:16384 size:16533 flags
 ret: 0 st:-1 ts:-1.000000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:16384 size:16533 flags:1
 ret: 0 st:-1 ts:1.894167 flags:1
-ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:244760 size:12982 flags:1
+ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:243886 size:13417 flags:1
 ret: 0 st: 0 ts:0.788333 flags:0
-ret: 0 st: 0 dts:0.880000 pts:-102481911520608.625000 pos:180534 size:14893 flags:1
+ret: 0 st: 0 dts:0.880000 pts:-102481911520608.625000 pos:180160 size:14675 flags:1
 ret:-1 st: 0 ts:-0.317500 flags:1
 ret:-1 st:-1 ts:2.576668 flags:0
 ret: 0 st:-1 ts:1.470835 flags:1
-ret: 0 st: 0 dts:1.360000 pts:-102481911520608.625000 pos:213533 size:14085 flags:1
+ret: 0 st: 0 dts:1.360000 pts:-102481911520608.625000 pos:212709 size:13700 flags:1
 ret: 0 st: 0 ts:0.365000 flags:0
-ret: 0 st: 0 dts:0.400000 pts:-102481911520608.625000 pos:126998 size:28382 flags:1
+ret: 0 st: 0 dts:0.400000 pts:-102481911520608.625000 pos:126798 size:28382 flags:1
 ret:-1 st: 0 ts:-0.740833 flags:1
 ret:-1 st:-1 ts:2.153336 flags:0
 ret: 0 st:-1 ts:1.047503 flags:1
-ret: 0 st: 0 dts:0.880000 pts:-102481911520608.625000 pos:180534 size:14893 flags:1
+ret: 0 st: 0 dts:0.880000 pts:-102481911520608.625000 pos:180160 size:14675 flags:1
 ret: 0 st: 0 ts:-0.058333 flags:0
 ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:16384 size:16533 flags:1
 ret: 0 st: 0 ts:2.835833 flags:1
-ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:244760 size:12982 flags:1
+ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:243886 size:13417 flags:1
 ret: 0 st:-1 ts:1.730004 flags:0
-ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:244760 size:12982 flags:1
+ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:243886 size:13417 flags:1
 ret: 0 st:-1 ts:0.624171 flags:1
-ret: 0 st: 0 dts:0.400000 pts:-102481911520608.625000 pos:126998 size:28382 flags:1
+ret: 0 st: 0 dts:0.400000 pts:-102481911520608.625000 pos:126798 size:28382 flags:1
 ret: 0 st: 0 ts:-0.481667 flags:0
 ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:16384 size:16533 flags:1
 ret: 0 st: 0 ts:2.412500 flags:1
-ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:244760 size:12982 flags:1
+ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:243886 size:13417 flags:1
 ret: 0 st:-1 ts:1.306672 flags:0
-ret: 0 st: 0 dts:1.360000 pts:-102481911520608.625000 pos:213533 size:14085 flags:1
+ret: 0 st: 0 dts:1.360000 pts:-102481911520608.625000 pos:212709 size:13700 flags:1
 ret: 0 st:-1 ts:0.200839 flags:1
 ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:16384 size:16533 flags:1
 ret: 0 st: 0 ts:-0.904989 flags:0
 ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:16384 size:16533 flags:1
 ret: 0 st: 0 ts:1.989178 flags:1
-ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:244760 size:12982 flags:1
+ret: 0 st: 0 dts:1.840000 pts:-102481911520608.625000 pos:243886 size:13417 flags:1
 ret: 0 st:-1 ts:0.883340 flags:0
-ret: 0 st: 0 dts:1.360000 pts:-102481911520608.625000 pos:213533 size:14085 flags:1
+ret: 0 st: 0 dts:1.360000 pts:-102481911520608.625000 pos:212709 size:13700 flags:1
 ret:-1 st:-1 ts:-0.222493 flags:1
 ret:-1 st: 0 ts:2.671678 flags:0
 ret: 0 st: 0 ts:1.565844 flags:1
-ret: 0 st: 0 dts:1.360000 pts:-102481911520608.625000 pos:213533 size:14085 flags:1
+ret: 0 st: 0 dts:1.360000 pts:-102481911520608.625000 pos:212709 size:13700 flags:1
 ret: 0 st:-1 ts:0.460008 flags:0
-ret: 0 st: 0 dts:0.880000 pts:-102481911520608.625000 pos:180534 size:14893 flags:1
+ret: 0 st: 0 dts:0.880000 pts:-102481911520608.625000 pos:180160 size:14675 flags:1
 ret:-1 st:-1 ts:-0.645825 flags:1
 ----------------
 tests/data/a-mpeg2reuse.mpg
@@ -1508,47 +1508,47 @@ ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:7585 flags:1
 ret: 0 st:-1 ts:-1.000000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:7585 flags:1
 ret: 0 st:-1 ts:1.894167 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:181370 size:15212 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:179806 size:15026 flags:1
 ret: 0 st: 0 ts:0.800000 flags:0
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:106306 size:15898 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:105940 size:15707 flags:1
 ret:-1 st: 0 ts:-0.320000 flags:1
 ret:-1 st:-1 ts:2.576668 flags:0
 ret: 0 st:-1 ts:1.470835 flags:1
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:144266 size:15654 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:143198 size:15479 flags:1
 ret: 0 st: 0 ts:0.360000 flags:0
 ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:65180 size:17617 flags:1
 ret:-1 st: 0 ts:-0.760000 flags:1
 ret:-1 st:-1 ts:2.153336 flags:0
 ret: 0 st:-1 ts:1.047503 flags:1
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:106306 size:15898 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:105940 size:15707 flags:1
 ret: 0 st: 0 ts:-0.040000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:7585 flags:1
 ret: 0 st: 0 ts:2.840000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:181370 size:15212 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:179806 size:15026 flags:1
 ret: 0 st:-1 ts:1.730004 flags:0
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:181370 size:15212 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:179806 size:15026 flags:1
 ret: 0 st:-1 ts:0.624171 flags:1
 ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:65180 size:17617 flags:1
 ret: 0 st: 0 ts:-0.480000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:7585 flags:1
 ret: 0 st: 0 ts:2.400000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:181370 size:15212 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:179806 size:15026 flags:1
 ret: 0 st:-1 ts:1.306672 flags:0
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:144266 size:15654 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:143198 size:15479 flags:1
 ret: 0 st:-1 ts:0.200839 flags:1
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:7585 flags:1
 ret: 0 st: 0 ts:-0.920000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:7585 flags:1
 ret: 0 st: 0 ts:2.000000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:181370 size:15212 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:179806 size:15026 flags:1
 ret: 0 st:-1 ts:0.883340 flags:0
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:106306 size:15898 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:105940 size:15707 flags:1
 ret:-1 st:-1 ts:-0.222493 flags:1
 ret:-1 st: 0 ts:2.680000 flags:0
 ret: 0 st: 0 ts:1.560000 flags:1
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:144266 size:15654 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:143198 size:15479 flags:1
 ret: 0 st:-1 ts:0.460008 flags:0
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:106306 size:15898 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:105940 size:15707 flags:1
 ret:-1 st:-1 ts:-0.645825 flags:1
 ----------------
 tests/data/a-mpeg4-adv.avi
@@ -1652,47 +1652,47 @@ ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14733 flags:1
 ret: 0 st:-1 ts:-1.000000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14733 flags:1
 ret: 0 st:-1 ts:1.894167 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:216556 size:12992 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:215682 size:13021 flags:1
 ret: 0 st: 0 ts:0.800000 flags:0
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:159328 size:13215 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:159178 size:12966 flags:1
 ret:-1 st: 0 ts:-0.320000 flags:1
 ret:-1 st:-1 ts:2.576668 flags:0
 ret: 0 st:-1 ts:1.470835 flags:1
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:188346 size:12936 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:187456 size:12719 flags:1
 ret: 0 st: 0 ts:0.360000 flags:0
-ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:99390 size:27878 flags:1
+ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:99344 size:27633 flags:1
 ret:-1 st: 0 ts:-0.760000 flags:1
 ret:-1 st:-1 ts:2.153336 flags:0
 ret: 0 st:-1 ts:1.047503 flags:1
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:159328 size:13215 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:159178 size:12966 flags:1
 ret: 0 st: 0 ts:-0.040000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14733 flags:1
 ret: 0 st: 0 ts:2.840000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:216556 size:12992 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:215682 size:13021 flags:1
 ret: 0 st:-1 ts:1.730004 flags:0
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:216556 size:12992 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:215682 size:13021 flags:1
 ret: 0 st:-1 ts:0.624171 flags:1
-ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:99390 size:27878 flags:1
+ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:99344 size:27633 flags:1
 ret: 0 st: 0 ts:-0.480000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14733 flags:1
 ret: 0 st: 0 ts:2.400000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:216556 size:12992 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:215682 size:13021 flags:1
 ret: 0 st:-1 ts:1.306672 flags:0
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:188346 size:12936 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:187456 size:12719 flags:1
 ret: 0 st:-1 ts:0.200839 flags:1
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14733 flags:1
 ret: 0 st: 0 ts:-0.920000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14733 flags:1
 ret: 0 st: 0 ts:2.000000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:216556 size:12992 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:215682 size:13021 flags:1
 ret: 0 st:-1 ts:0.883340 flags:0
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:159328 size:13215 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:159178 size:12966 flags:1
 ret:-1 st:-1 ts:-0.222493 flags:1
 ret:-1 st: 0 ts:2.680000 flags:0
 ret: 0 st: 0 ts:1.560000 flags:1
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:188346 size:12936 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:187456 size:12719 flags:1
 ret: 0 st:-1 ts:0.460008 flags:0
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:159328 size:13215 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:159178 size:12966 flags:1
 ret:-1 st:-1 ts:-0.645825 flags:1
 ----------------
 tests/data/a-mpeg4-rc.avi
@@ -1700,13 +1700,13 @@ ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:15766 flags:1
 ret: 0 st:-1 ts:-1.000000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:15766 flags:1
 ret: 0 st:-1 ts:1.894167 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209408 size:13826 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209236 size:13826 flags:1
 ret: 0 st: 0 ts:0.800000 flags:0
 ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:154792 size:13382 flags:1
 ret:-1 st: 0 ts:-0.320000 flags:1
 ret:-1 st:-1 ts:2.576668 flags:0
 ret: 0 st:-1 ts:1.470835 flags:1
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:182452 size:13326 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:182316 size:13326 flags:1
 ret: 0 st: 0 ts:0.360000 flags:0
 ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:95408 size:32807 flags:1
 ret:-1 st: 0 ts:-0.760000 flags:1
@@ -1716,29 +1716,29 @@ ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:154792 size:13382 flags:1
 ret: 0 st: 0 ts:-0.040000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:15766 flags:1
 ret: 0 st: 0 ts:2.840000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209408 size:13826 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209236 size:13826 flags:1
 ret: 0 st:-1 ts:1.730004 flags:0
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209408 size:13826 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209236 size:13826 flags:1
 ret: 0 st:-1 ts:0.624171 flags:1
 ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:95408 size:32807 flags:1
 ret: 0 st: 0 ts:-0.480000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:15766 flags:1
 ret: 0 st: 0 ts:2.400000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209408 size:13826 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209236 size:13826 flags:1
 ret: 0 st:-1 ts:1.306672 flags:0
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:182452 size:13326 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:182316 size:13326 flags:1
 ret: 0 st:-1 ts:0.200839 flags:1
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:15766 flags:1
 ret: 0 st: 0 ts:-0.920000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:15766 flags:1
 ret: 0 st: 0 ts:2.000000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209408 size:13826 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:209236 size:13826 flags:1
 ret: 0 st:-1 ts:0.883340 flags:0
 ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:154792 size:13382 flags:1
 ret:-1 st:-1 ts:-0.222493 flags:1
 ret:-1 st: 0 ts:2.680000 flags:0
 ret: 0 st: 0 ts:1.560000 flags:1
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:182452 size:13326 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:182316 size:13326 flags:1
 ret: 0 st:-1 ts:0.460008 flags:0
 ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:154792 size:13382 flags:1
 ret:-1 st:-1 ts:-0.645825 flags:1
@@ -1748,47 +1748,47 @@ ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14645 flags:1
 ret: 0 st:-1 ts:-1.000000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14645 flags:1
 ret: 0 st:-1 ts:1.894167 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:233810 size:13555 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:231720 size:13475 flags:1
 ret: 0 st: 0 ts:0.800000 flags:0
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:167964 size:15139 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:167150 size:15185 flags:1
 ret:-1 st: 0 ts:-0.320000 flags:1
 ret:-1 st:-1 ts:2.576668 flags:0
 ret: 0 st:-1 ts:1.470835 flags:1
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:201894 size:14348 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:201000 size:13196 flags:1
 ret: 0 st: 0 ts:0.360000 flags:0
-ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:101630 size:30712 flags:1
+ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:101456 size:30636 flags:1
 ret:-1 st: 0 ts:-0.760000 flags:1
 ret:-1 st:-1 ts:2.153336 flags:0
 ret: 0 st:-1 ts:1.047503 flags:1
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:167964 size:15139 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:167150 size:15185 flags:1
 ret: 0 st: 0 ts:-0.040000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14645 flags:1
 ret: 0 st: 0 ts:2.840000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:233810 size:13555 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:231720 size:13475 flags:1
 ret: 0 st:-1 ts:1.730004 flags:0
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:233810 size:13555 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:231720 size:13475 flags:1
 ret: 0 st:-1 ts:0.624171 flags:1
-ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:101630 size:30712 flags:1
+ret: 0 st: 0 dts:0.400000 pts:0.400000 pos:101456 size:30636 flags:1
 ret: 0 st: 0 ts:-0.480000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14645 flags:1
 ret: 0 st: 0 ts:2.400000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:233810 size:13555 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:231720 size:13475 flags:1
 ret: 0 st:-1 ts:1.306672 flags:0
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:201894 size:14348 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:201000 size:13196 flags:1
 ret: 0 st:-1 ts:0.200839 flags:1
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14645 flags:1
 ret: 0 st: 0 ts:-0.920000 flags:0
 ret: 0 st: 0 dts:0.000000 pts:0.000000 pos:5660 size:14645 flags:1
 ret: 0 st: 0 ts:2.000000 flags:1
-ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:233810 size:13555 flags:1
+ret: 0 st: 0 dts:1.840000 pts:1.840000 pos:231720 size:13475 flags:1
 ret: 0 st:-1 ts:0.883340 flags:0
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:167964 size:15139 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:167150 size:15185 flags:1
 ret:-1 st:-1 ts:-0.222493 flags:1
 ret:-1 st: 0 ts:2.680000 flags:0
 ret: 0 st: 0 ts:1.560000 flags:1
-ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:201894 size:14348 flags:1
+ret: 0 st: 0 dts:1.360000 pts:1.360000 pos:201000 size:13196 flags:1
 ret: 0 st:-1 ts:0.460008 flags:0
-ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:167964 size:15139 flags:1
+ret: 0 st: 0 dts:0.880000 pts:0.880000 pos:167150 size:15185 flags:1
 ret:-1 st:-1 ts:-0.645825 flags:1
 ----------------
 tests/data/a-msmpeg4.avi