X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fmp3enc.c;h=8d824526894de68f1cea1737ddccb2228f261531;hb=e1a8164d62fb8d1943b3f7a66500f0315ca8fe76;hp=1200d0f2979b7abe784808bafdf12db3bfebb052;hpb=3ba0bfe71fb18e955ca0110e5a65105d84932fbc;p=ffmpeg diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c index 1200d0f2979..8d824526894 100644 --- a/libavformat/mp3enc.c +++ b/libavformat/mp3enc.c @@ -160,7 +160,7 @@ static int mp3_write_xing(AVFormatContext *s) 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; @@ -200,8 +200,9 @@ static int mp3_write_xing(AVFormatContext *s) 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 @@ -213,6 +214,7 @@ static int mp3_write_xing(AVFormatContext *s) if (needed <= c.frame_size) break; + header &= ~mask; } avio_wb32(s->pb, header);