mp3dec: perform I/S and M/S only when frame mode is joint stereo.
authorKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 29 Mar 2012 10:08:07 +0000 (12:08 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 29 Mar 2012 17:08:05 +0000 (19:08 +0200)
Looks like some LAME versions produce dual stereo mode MP3s with
flags for intensity and middle stereo set. In this mode those flags
should be ignored like the reference decoder and derived ones do.

libavcodec/mpegaudiodec.c

index 6ed124b..0ab87e1 100644 (file)
@@ -1533,7 +1533,7 @@ static int mp_decode_layer3(MPADecodeContext *s)
             huffman_decode(s, g, exponents, bits_pos + g->part2_3_length);
         } /* ch */
 
-        if (s->nb_channels == 2)
+        if (s->mode == MPA_JSTEREO)
             compute_stereo(s, &s->granules[0][gr], &s->granules[1][gr]);
 
         for (ch = 0; ch < s->nb_channels; ch++) {