]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/flac.c
Fix compilation with old yasm.
[ffmpeg] / libavcodec / flac.c
index 484a44efb31bcc44507e1247902a78fe02089971..5ed3ef7fc395aa7d8214f26b4b27b5e914daccdb 100644 (file)
@@ -22,6 +22,7 @@
 #include "libavutil/crc.h"
 #include "flac.h"
 #include "flacdata.h"
+#include "vorbis.h"
 
 static const int8_t sample_size_table[] = { 0, 8, 12, 0, 16, 20, 24, 0 };
 
@@ -54,9 +55,12 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb,
     fi->ch_mode = get_bits(gb, 4);
     if (fi->ch_mode < FLAC_MAX_CHANNELS) {
         fi->channels = fi->ch_mode + 1;
+        if (fi->ch_mode <= 5)
+            avctx->channel_layout = ff_vorbis_channel_layouts[fi->ch_mode];
         fi->ch_mode = FLAC_CHMODE_INDEPENDENT;
     } else if (fi->ch_mode <= FLAC_CHMODE_MID_SIDE) {
         fi->channels = 2;
+        avctx->channel_layout = AV_CH_LAYOUT_STEREO;
     } else {
         av_log(avctx, AV_LOG_ERROR + log_level_offset,
                "invalid channel mode: %d\n", fi->ch_mode);