OSDN Git Service

libavcodec/ac3dec: fix channel_layout
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 23 Nov 2013 12:32:18 +0000 (13:32 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 23 Nov 2013 12:36:15 +0000 (13:36 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/ac3dec.c

index d1c3523..fd85806 100644 (file)
@@ -1369,7 +1369,9 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
             s->output_mode  = AC3_CHMODE_STEREO;
         }
         avctx->channels       = s->out_channels;
-        avctx->channel_layout = avpriv_ac3_channel_layout_tab[s->output_mode];
+        avctx->channel_layout = avpriv_ac3_channel_layout_tab[s->output_mode & ~AC3_OUTPUT_LFEON];
+        if (s->output_mode & AC3_OUTPUT_LFEON)
+            avctx->channel_layout |= AV_CH_LOW_FREQUENCY;
 
         s->loro_center_mix_level   = gain_levels[s->  center_mix_level];
         s->loro_surround_mix_level = gain_levels[s->surround_mix_level];