From: Anton Khirnov Date: Sun, 25 May 2014 09:12:33 +0000 (+0200) Subject: flacdec: do not overwrite a channel layout set by the caller X-Git-Tag: v11_alpha1~444 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f13ffb6636fdecb5e3e0ddcff48f096e7b3db362;p=platform%2Fupstream%2Flibav.git flacdec: do not overwrite a channel layout set by the caller The channel layout mask for non-standard layouts is typically stored at the container level (as a vorbiscomment tag) for FLAC. --- diff --git a/libavcodec/flac.c b/libavcodec/flac.c index b3e38472a..e6a8ab837 100644 --- a/libavcodec/flac.c +++ b/libavcodec/flac.c @@ -225,7 +225,10 @@ void avpriv_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo * avctx->channels = s->channels; avctx->sample_rate = s->samplerate; avctx->bits_per_raw_sample = s->bps; - ff_flac_set_channel_layout(avctx); + + if (!avctx->channel_layout || + av_get_channel_layout_nb_channels(avctx->channel_layout) != avctx->channels) + ff_flac_set_channel_layout(avctx); s->samples = get_bits_long(&gb, 32) << 4; s->samples |= get_bits(&gb, 4);