comparison ac3enc.c @ 6082:f17aad297a38 libavcodec

use bps instead of kbps for bitrate
author jbr
date Fri, 28 Dec 2007 05:32:12 +0000
parents 64d36d15b3bb
children 77d27412c35d
comparison
equal deleted inserted replaced
6081:64d36d15b3bb 6082:f17aad297a38
667 s->sr_code = j; 667 s->sr_code = j;
668 s->bitstream_id = 8 + s->sr_shift; 668 s->bitstream_id = 8 + s->sr_shift;
669 s->bitstream_mode = 0; /* complete main audio service */ 669 s->bitstream_mode = 0; /* complete main audio service */
670 670
671 /* bitrate & frame size */ 671 /* bitrate & frame size */
672 bitrate /= 1000;
673 for(i=0;i<19;i++) { 672 for(i=0;i<19;i++) {
674 if ((ff_ac3_bitrate_tab[i] >> s->sr_shift) == bitrate) 673 if ((ff_ac3_bitrate_tab[i] >> s->sr_shift)*1000 == bitrate)
675 break; 674 break;
676 } 675 }
677 if (i == 19) 676 if (i == 19)
678 return -1; 677 return -1;
679 s->bit_rate = bitrate; 678 s->bit_rate = bitrate;
1238 i = j; 1237 i = j;
1239 } 1238 }
1240 } 1239 }
1241 1240
1242 /* adjust for fractional frame sizes */ 1241 /* adjust for fractional frame sizes */
1243 while(s->bits_written >= s->bit_rate*1000 && s->samples_written >= s->sample_rate) { 1242 while(s->bits_written >= s->bit_rate && s->samples_written >= s->sample_rate) {
1244 s->bits_written -= s->bit_rate*1000; 1243 s->bits_written -= s->bit_rate;
1245 s->samples_written -= s->sample_rate; 1244 s->samples_written -= s->sample_rate;
1246 } 1245 }
1247 s->frame_size = s->frame_size_min + (s->bits_written * s->sample_rate < s->samples_written * s->bit_rate*1000); 1246 s->frame_size = s->frame_size_min + (s->bits_written * s->sample_rate < s->samples_written * s->bit_rate);
1248 s->bits_written += s->frame_size * 16; 1247 s->bits_written += s->frame_size * 16;
1249 s->samples_written += AC3_FRAME_SIZE; 1248 s->samples_written += AC3_FRAME_SIZE;
1250 1249
1251 compute_bit_allocation(s, bap, encoded_exp, exp_strategy, frame_bits); 1250 compute_bit_allocation(s, bap, encoded_exp, exp_strategy, frame_bits);
1252 /* everything is known... let's output the frame */ 1251 /* everything is known... let's output the frame */