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