[FFmpeg-devel] [PATCH 09/14] h264dec: do not abort if decoding extradata fails

James Almer jamrial at gmail.com
Fri Mar 27 16:54:29 EET 2020


On 3/27/2020 9:57 AM, Anton Khirnov wrote:
> Such errors are not necessarily fatal and decoding might still be
> possible, e.g. it happens for MVC streams where we do not handle the
> subset SPS thus failing to parse its corresponding PPS.
> ---
>  libavcodec/h264dec.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
> index b6c51ed1e2..dba0634fa0 100644
> --- a/libavcodec/h264dec.c
> +++ b/libavcodec/h264dec.c
> @@ -414,10 +414,14 @@ static av_cold int h264_decode_init(AVCodecContext *avctx)
>              ret = ff_h264_decode_extradata(avctx->extradata, avctx->extradata_size,
>                                             &h->ps, &h->is_avc, &h->nal_length_size,
>                                             avctx->err_recognition, avctx);
> -            if (ret < 0) {
> -                h264_decode_end(avctx);
> -                return ret;
> -            }
> +           if (ret < 0) {
> +               av_log(avctx, AV_LOG_WARNING, "Error decoding the extradata\n");

Should be AV_LOG_ERROR if AV_EF_EXPLODE is enabled.

> +               if (avctx->err_recognition & AV_EF_EXPLODE) {
> +                   h264_decode_end(avctx);
> +                   return ret;
> +               }
> +               ret = 0;
> +           }
>          }
>      }

LGTM otherwise.


More information about the ffmpeg-devel mailing list