Set avctx->channel_layout to 0 if the channel count does not match
avctx->channels.
---
libavcodec/utils.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index aa0f5b6..4037bfd 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -810,6 +810,15 @@ int attribute_align_arg avcodec_open2(AVCodecContext
*avctx, AVCodec *codec, AVD
goto free_and_end;
}
}
+
+ if (av_codec_is_decoder(avctx->codec)) {
+ /* validate channel layout from the decoder */
+ if (avctx->channel_layout &&
+ av_get_channel_layout_nb_channels(avctx->channel_layout) !=
avctx->channels) {
+ av_log(avctx, AV_LOG_WARNING, "channel layout does not match
number of channels\n");
+ avctx->channel_layout = 0;
+ }
+ }
end:
entangled_thread_counter--;
--
1.7.1
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel