[SCM] libav/experimental: flacdec: do not overwrite a channel layout set by the caller
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Aug 10 16:03:17 UTC 2014
The following commit has been merged in the experimental branch:
commit f13ffb6636fdecb5e3e0ddcff48f096e7b3db362
Author: Anton Khirnov <anton at khirnov.net>
Date: Sun May 25 11:12:33 2014 +0200
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 b3e3847..e6a8ab8 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);
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list