1
0
Fork 0

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@gmail.com>
This commit is contained in:
James Almer 2024-01-19 22:35:35 -03:00
parent cad35f0a77
commit ab39cc36c7
2 changed files with 2 additions and 4 deletions

View File

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

View File

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