]> git.sesse.net Git - ffmpeg/commitdiff
new vbv calculation patch by (Henry Mason <talus25 at speakeasy dot net>) with slight...
authorHenry Mason <talus25@speakeasy.net>
Mon, 2 Sep 2002 09:51:52 +0000 (09:51 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 2 Sep 2002 09:51:52 +0000 (09:51 +0000)
Originally committed as revision 899 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mpeg12.c
tests/ffmpeg.regression.ref

index ba52a367255a5d3c7ea7d6a7c6b4784c285cf305..97c2e98ccb81e603a53859c5bfa3d865fe8845e9 100644 (file)
@@ -142,9 +142,12 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s)
                 v = 0x3ffff;
             put_bits(&s->pb, 18, v);
             put_bits(&s->pb, 1, 1); /* marker */
-            /* vbv buffer size: slightly greater than an I frame. We add
-               some margin just in case */
-            vbv_buffer_size = (3 * s->I_frame_bits) / (2 * 8);
+
+            if(s->avctx->rc_buffer_size)
+                vbv_buffer_size = s->avctx->rc_buffer_size;
+            else
+                /* VBV calculation: Scaled so that a VCD has the proper VBV size of 40 kilobytes */
+                vbv_buffer_size = (( 20 * s->bit_rate) / (1151929 / 2)) * 8 * 1024;     
             put_bits(&s->pb, 10, (vbv_buffer_size + 16383) / 16384); 
             put_bits(&s->pb, 1, 1); /* constrained parameter flag */
             put_bits(&s->pb, 1, 0); /* no custom intra matrix */
index 1389a827095a2af650cc8daac7a284bccd905cf1..72dbb30f0666c70dd6a23ba7b22a51c77b03b69b 100644 (file)
@@ -1,5 +1,5 @@
 ffmpeg regression test
-6c8b6ee8dd9c34f58908fe501d7dbe1e *./data/a-mpeg1.mpg
+67be2deabb210740966ca5fda9a64bca *./data/a-mpeg1.mpg
 59a66b108e8bbd3867c4ee27f4bbe2ca *./data/out.yuv
 297793ed0fd5793182a92e63ffd764af *./data/a-msmpeg4.avi
 951aa2df4ef4c1eeee3ccc8904de8e48 *./data/out.yuv