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:
parent
cad35f0a77
commit
ab39cc36c7
@ -1420,9 +1420,7 @@ static int parse_speex_extradata(AVCodecContext *avctx,
|
|||||||
if (s->nb_channels <= 0 || s->nb_channels > 2)
|
if (s->nb_channels <= 0 || s->nb_channels > 2)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
s->bitrate = bytestream_get_le32(&buf);
|
s->bitrate = bytestream_get_le32(&buf);
|
||||||
s->frame_size = bytestream_get_le32(&buf);
|
s->frame_size = (1 + (s->mode > 0)) * bytestream_get_le32(&buf);
|
||||||
if (s->frame_size < NB_FRAME_SIZE << s->mode)
|
|
||||||
return AVERROR_INVALIDDATA;
|
|
||||||
s->vbr = bytestream_get_le32(&buf);
|
s->vbr = bytestream_get_le32(&buf);
|
||||||
s->frames_per_packet = bytestream_get_le32(&buf);
|
s->frames_per_packet = bytestream_get_le32(&buf);
|
||||||
if (s->frames_per_packet <= 0 ||
|
if (s->frames_per_packet <= 0 ||
|
||||||
|
@ -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
|
413103 tests/data/fate/matroska-ms-mode.matroska
|
||||||
#extradata 0: 40, 0x54290c93
|
#extradata 0: 40, 0x54290c93
|
||||||
#extradata 1: 114, 0xb6c80771
|
#extradata 1: 114, 0xb6c80771
|
||||||
|
Loading…
x
Reference in New Issue
Block a user