int best_bitrate_idx;
int best_bitrate_error= INT_MAX;
int64_t xing_offset;
- int32_t mask, header;
+ int32_t header, mask;
MPADecodeHeader c;
int srate_idx, i, channels;
int needed;
for (bitrate_idx= best_bitrate_idx;; bitrate_idx++) {
if (15 == bitrate_idx)
return -1;
-
- avpriv_mpegaudio_decode_header(&c, header | (bitrate_idx << (4+8)));
+ mask = bitrate_idx << (4+8);
+ header |= mask;
+ avpriv_mpegaudio_decode_header(&c, header);
xing_offset=xing_offtbl[c.lsf == 1][c.nb_channels == 1];
needed = 4 // header
+ xing_offset
if (needed <= c.frame_size)
break;
+ header &= ~mask;
}
avio_wb32(s->pb, header);