From 2ef2496cd19eb833f4ad22a5051c11be80d09598 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Sat, 23 Apr 2011 13:37:28 +0200 Subject: [PATCH] Set channel layout in flac decoder. --- libavcodec/Makefile | 2 +- libavcodec/flac.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 62ac8999a..1561954a9 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -140,7 +140,7 @@ OBJS-$(CONFIG_FFV1_DECODER) += ffv1.o rangecoder.o OBJS-$(CONFIG_FFV1_ENCODER) += ffv1.o rangecoder.o OBJS-$(CONFIG_FFVHUFF_DECODER) += huffyuv.o OBJS-$(CONFIG_FFVHUFF_ENCODER) += huffyuv.o -OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flac.o +OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flac.o vorbis_data.o OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flac.o OBJS-$(CONFIG_FLASHSV_DECODER) += flashsv.o OBJS-$(CONFIG_FLASHSV_ENCODER) += flashsvenc.o diff --git a/libavcodec/flac.c b/libavcodec/flac.c index 484a44efb..6e94c2c5f 100644 --- a/libavcodec/flac.c +++ b/libavcodec/flac.c @@ -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,6 +55,8 @@ 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; -- 2.11.0