2017-07-24 0:33 GMT+02:00 Tyler Jones <tdjones...@gmail.com>:
> Vorbis I specification requires that the version number as well as the
> window and transform types in the setup header be equal to 0.
>
> Signed-off-by: Tyler Jones <tdjones...@gmail.com>
> ---
>  libavcodec/vorbisdec.c | 18 +++++++++++++++---
>  1 file changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c
> index 2a4f482031..f9c3848c4e 100644
> --- a/libavcodec/vorbisdec.c
> +++ b/libavcodec/vorbisdec.c
> @@ -898,8 +898,16 @@ static int vorbis_parse_setup_hdr_modes(vorbis_context 
> *vc)
>          vorbis_mode *mode_setup = &vc->modes[i];
>
>          mode_setup->blockflag     = get_bits1(gb);
> -        mode_setup->windowtype    = get_bits(gb, 16); //FIXME check
> -        mode_setup->transformtype = get_bits(gb, 16); //FIXME check
> +        mode_setup->windowtype    = get_bits(gb, 16);
> +        if (mode_setup->windowtype) {
> +            av_log(vc->avctx, AV_LOG_ERROR, "Invalid window type,
> must equal 0.\n");
> +            return AVERROR_INVALIDDATA;

Does this fix anything?

By default, FFmpeg decoders should not (and, more so, should not
suddenly start to) reject files that can be decoded without any
effort.
Or are such files already unplayable, the error message was
just missing?

You can reject such files for strict conformance mode.

Carl Eugen
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to