Module: libav
Branch: master
Commit: 1337de0c4bea8bbf8e142e8401edd0b25dd059b5

Author:    Justin Ruggles <[email protected]>
Committer: Justin Ruggles <[email protected]>
Date:      Wed Apr  4 10:47:45 2012 -0400

avcodec: validate the channel layout vs. channel count for decoders

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--;
 

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to