[FFmpeg-devel] [PATCH] speexdec: fix framesize for ultra-wideband

Tristan Matthews tmatth at videolan.org
Thu Mar 13 20:54:48 EET 2025


This matches how the libspeex decoder is calculating frame size (except in clamp form).

Fixes #11495
---
 libavcodec/speexdec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/speexdec.c b/libavcodec/speexdec.c
index b335e2fbe8..0990338341 100644
--- a/libavcodec/speexdec.c
+++ b/libavcodec/speexdec.c
@@ -1425,7 +1425,7 @@ static int parse_speex_extradata(AVCodecContext *avctx,
     if (s->frame_size < NB_FRAME_SIZE << (s->mode > 1) ||
         s->frame_size >     INT32_MAX >> (s->mode > 1))
         return AVERROR_INVALIDDATA;
-    s->frame_size <<= (s->mode > 1);
+    s->frame_size = FFMIN(s->frame_size << (s->mode > 1), NB_FRAME_SIZE << s->mode);
     s->vbr = bytestream_get_le32(&buf);
     s->frames_per_packet = bytestream_get_le32(&buf);
     if (s->frames_per_packet <= 0 ||
-- 
2.45.2



More information about the ffmpeg-devel mailing list