From aef5150719f03ce87e67c17d2006e24d8961aa17 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Sun, 16 Dec 2012 11:02:39 -0500 Subject: flac: only set channel layout if not previously set or on channel count change Fixes Bug 402 --- libavcodec/flac_parser.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libavcodec/flac_parser.c') diff --git a/libavcodec/flac_parser.c b/libavcodec/flac_parser.c index f0a37f310e..3d8e17f995 100644 --- a/libavcodec/flac_parser.c +++ b/libavcodec/flac_parser.c @@ -457,9 +457,12 @@ static int get_best_header(FLACParseContext* fpc, const uint8_t **poutbuf, check_header_mismatch(fpc, header, child, 0); } + if (header->fi.channels != fpc->avctx->channels || + (!fpc->avctx->channel_layout && header->fi.channels <= 6)) { + fpc->avctx->channels = header->fi.channels; + ff_flac_set_channel_layout(fpc->avctx); + } fpc->avctx->sample_rate = header->fi.samplerate; - fpc->avctx->channels = header->fi.channels; - ff_flac_set_channel_layout(fpc->avctx); fpc->pc->duration = header->fi.blocksize; *poutbuf = flac_fifo_read_wrap(fpc, header->offset, *poutbuf_size, &fpc->wrap_buf, -- cgit v1.2.3