From ab39cc36c72bb73318bb911acb66873de850a107 Mon Sep 17 00:00:00 2001 From: James Almer Date: Fri, 19 Jan 2024 22:35:35 -0300 Subject: [PATCH] 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 --- 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