comparison mpeg12.c @ 639:f449913e8419 libavcodec

new vbv calculation patch by (Henry Mason <talus25 at speakeasy dot net>) with slight modification by me
author michaelni
date Mon, 02 Sep 2002 09:51:52 +0000
parents a5aa53b6e648
children 22b22723805e
comparison
equal deleted inserted replaced
638:0012f75c92bb 639:f449913e8419
140 v = s->bit_rate / 400; 140 v = s->bit_rate / 400;
141 if (v > 0x3ffff) 141 if (v > 0x3ffff)
142 v = 0x3ffff; 142 v = 0x3ffff;
143 put_bits(&s->pb, 18, v); 143 put_bits(&s->pb, 18, v);
144 put_bits(&s->pb, 1, 1); /* marker */ 144 put_bits(&s->pb, 1, 1); /* marker */
145 /* vbv buffer size: slightly greater than an I frame. We add 145
146 some margin just in case */ 146 if(s->avctx->rc_buffer_size)
147 vbv_buffer_size = (3 * s->I_frame_bits) / (2 * 8); 147 vbv_buffer_size = s->avctx->rc_buffer_size;
148 else
149 /* VBV calculation: Scaled so that a VCD has the proper VBV size of 40 kilobytes */
150 vbv_buffer_size = (( 20 * s->bit_rate) / (1151929 / 2)) * 8 * 1024;
148 put_bits(&s->pb, 10, (vbv_buffer_size + 16383) / 16384); 151 put_bits(&s->pb, 10, (vbv_buffer_size + 16383) / 16384);
149 put_bits(&s->pb, 1, 1); /* constrained parameter flag */ 152 put_bits(&s->pb, 1, 1); /* constrained parameter flag */
150 put_bits(&s->pb, 1, 0); /* no custom intra matrix */ 153 put_bits(&s->pb, 1, 0); /* no custom intra matrix */
151 put_bits(&s->pb, 1, 0); /* no custom non intra matrix */ 154 put_bits(&s->pb, 1, 0); /* no custom non intra matrix */
152 155