mp3enc: simplify mp3_write_xing()
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 14 Nov 2011 19:45:02 +0000 (20:45 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 14 Nov 2011 19:52:42 +0000 (20:52 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mp3enc.c

index eab483f..3f2f02b 100644 (file)
@@ -185,13 +185,11 @@ static int mp3_write_xing(AVFormatContext *s)
     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
@@ -203,9 +201,6 @@ static int mp3_write_xing(AVFormatContext *s)
 
         if (needed <= c.frame_size)
             break;
-
-        header &= ~mask;
-        ++bitrate_idx;
     }
 
     avio_wb32(s->pb, header);