[FFmpeg-cvslog] avcodec/speexdec: fix setting frame_size from extradata
James Almer
git at videolan.org
Mon Jan 22 16:01:36 EET 2024
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Fri Jan 19 22:35:35 2024 -0300| [ab39cc36c72bb73318bb911acb66873de850a107] | committer: James Almer
avcodec/speexdec: fix setting frame_size from extradata
Finishes fixing vp5/potter512-400-partial.avi
The fate-matroska-ms-mode test ref is updated to reflect that the Speex decoder
can now read the stream.
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ab39cc36c72bb73318bb911acb66873de850a107
---
libavcodec/speexdec.c | 4 +---
tests/ref/fate/matroska-ms-mode | 2 +-
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/libavcodec/speexdec.c b/libavcodec/speexdec.c
index c73b2a7ec2..51c5834769 100644
--- a/libavcodec/speexdec.c
+++ b/libavcodec/speexdec.c
@@ -1420,9 +1420,7 @@ static int parse_speex_extradata(AVCodecContext *avctx,
if (s->nb_channels <= 0 || s->nb_channels > 2)
return AVERROR_INVALIDDATA;
s->bitrate = bytestream_get_le32(&buf);
- s->frame_size = bytestream_get_le32(&buf);
- if (s->frame_size < NB_FRAME_SIZE << s->mode)
- return AVERROR_INVALIDDATA;
+ s->frame_size = (1 + (s->mode > 0)) * bytestream_get_le32(&buf);
s->vbr = bytestream_get_le32(&buf);
s->frames_per_packet = bytestream_get_le32(&buf);
if (s->frames_per_packet <= 0 ||
diff --git a/tests/ref/fate/matroska-ms-mode b/tests/ref/fate/matroska-ms-mode
index 5c91209910..0e31c990dc 100644
--- a/tests/ref/fate/matroska-ms-mode
+++ b/tests/ref/fate/matroska-ms-mode
@@ -1,4 +1,4 @@
-a2897e3951b0054d0fa31fe51860444f *tests/data/fate/matroska-ms-mode.matroska
+e7f44cd6a5c0f45fea11874afb8c1c0d *tests/data/fate/matroska-ms-mode.matroska
413103 tests/data/fate/matroska-ms-mode.matroska
#extradata 0: 40, 0x54290c93
#extradata 1: 114, 0xb6c80771
More information about the ffmpeg-cvslog
mailing list