[FFmpeg-devel] [PATCH 2/2] avcodec/speexdec: fix setting frame_size from extradata

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Wed Jan 24 16:35:11 EET 2024


James Almer:
> 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>
> ---
>  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

This changes the checksum of the generated Matroska file; presumably
some header parameter is now set differently without affecting the size
of the generated file (which one?). But this means that this test
probably needs an explicit dependency on the speex decoder (which it
currently doesn't have).

- Andreas




More information about the ffmpeg-devel mailing list