mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Simplify bit allocation search by using a loop for the SNR offset increment.
Originally committed as revision 26044 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
1653027ac4
commit
98e34e71c0
@ -1055,7 +1055,7 @@ static int cbr_bit_allocation(AC3EncodeContext *s)
|
||||
{
|
||||
int ch;
|
||||
int bits_left;
|
||||
int snr_offset;
|
||||
int snr_offset, snr_incr;
|
||||
|
||||
bits_left = 8 * s->frame_size - (s->frame_bits + s->exponent_bits);
|
||||
|
||||
@ -1069,25 +1069,12 @@ static int cbr_bit_allocation(AC3EncodeContext *s)
|
||||
return AVERROR(EINVAL);
|
||||
|
||||
FFSWAP(uint8_t *, s->bap_buffer, s->bap1_buffer);
|
||||
for (snr_incr = 64; snr_incr > 0; snr_incr >>= 2) {
|
||||
while (snr_offset + 64 <= 1023 &&
|
||||
bit_alloc(s, snr_offset + 64) <= bits_left) {
|
||||
snr_offset += 64;
|
||||
bit_alloc(s, snr_offset + snr_incr) <= bits_left) {
|
||||
snr_offset += snr_incr;
|
||||
FFSWAP(uint8_t *, s->bap_buffer, s->bap1_buffer);
|
||||
}
|
||||
while (snr_offset + 16 <= 1023 &&
|
||||
bit_alloc(s, snr_offset + 16) <= bits_left) {
|
||||
snr_offset += 16;
|
||||
FFSWAP(uint8_t *, s->bap_buffer, s->bap1_buffer);
|
||||
}
|
||||
while (snr_offset + 4 <= 1023 &&
|
||||
bit_alloc(s, snr_offset + 4) <= bits_left) {
|
||||
snr_offset += 4;
|
||||
FFSWAP(uint8_t *, s->bap_buffer, s->bap1_buffer);
|
||||
}
|
||||
while (snr_offset + 1 <= 1023 &&
|
||||
bit_alloc(s, snr_offset + 1) <= bits_left) {
|
||||
snr_offset++;
|
||||
FFSWAP(uint8_t *, s->bap_buffer, s->bap1_buffer);
|
||||
}
|
||||
FFSWAP(uint8_t *, s->bap_buffer, s->bap1_buffer);
|
||||
reset_block_bap(s);
|
||||
|
Loading…
Reference in New Issue
Block a user