From d4dbe14f2559639656e998c0ad4982cc2a53196a Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michael@niedermayer.cc>	
Date: Fri, 12 Jul 2024 16:14:34 +0800
Subject: [PATCH] g729_parser:Check channels

Reference:https://git.videolan.org/?p=ffmpeg.git;a=commit;h=757da974b21833529cc41bdcc9684c29660cdfa8

---
 libavcodec/g729_parser.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavcodec/g729_parser.c b/libavcodec/g729_parser.c
index fc00235..6b63f46 100644
--- a/libavcodec/g729_parser.c
+++ b/libavcodec/g729_parser.c
@@ -48,6 +48,10 @@ static int g729_parse(AVCodecParserContext *s1, AVCodecContext *avctx,
         av_assert1(avctx->codec_id == AV_CODEC_ID_G729);
         /* FIXME: replace this heuristic block_size with more precise estimate */
         s->block_size = (avctx->bit_rate < 8000) ? G729D_6K4_BLOCK_SIZE : G729_8K_BLOCK_SIZE;
+        // channels > 2 is invalid, we pass the packet on unchanged
+        if (avctx->channels > 2)
+            s->block_size = 0;
+
         s->block_size *= avctx->channels;
         s->duration   = avctx->frame_size;
     }
-- 
2.27.0

