summaryrefslogtreecommitdiff
path: root/libavcodec/flac.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/flac.c')
-rw-r--r--libavcodec/flac.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/flac.c b/libavcodec/flac.c
index 3874b6ccea..c44049b352 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_bits64(&gb, 36);