[FFmpeg-devel] [PATCH] set AVFrame decode_error_flags to FF_DECODE_ERROR_CONCEALMENT_ACTIVE in case of concealed errors

Michael Niedermayer michael at niedermayer.cc
Sun Jun 16 10:53:44 EEST 2019


On Fri, Jun 14, 2019 at 07:43:46AM -0700, Amir Pauker wrote:
> set AVFrame decode_error_flags to FF_DECODE_ERROR_CONCEALMENT_ACTIVE in case
> h->slice_ctx->er.error_occurred is set after the call to ff_h264_execute_decode_slices.
> This allows the user to detect concealed decoding errors in the call to avcodec_receive_frame
> 
> Signed-off-by: Amir Pauker <amir at livelyvideo.tv>
> ---
>  libavcodec/h264dec.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
> index 837c3b7..98b7d79 100644
> --- a/libavcodec/h264dec.c
> +++ b/libavcodec/h264dec.c
> @@ -761,6 +761,11 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
>      if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE))
>          goto end;
>  
> +    // set decode_error_flags to allow users to detect concealed decoding errors
> +    if ((ret < 0 || h->slice_ctx->er.error_occurred) && h->cur_pic_ptr) {
> +        h->cur_pic_ptr->f->decode_error_flags |= FF_DECODE_ERROR_CONCEALMENT_ACTIVE;
> +    }
> +

it would be more robust to set the flag around where the
"concealing %d DC, %d AC, %d MV errors in %c frame\" message is printed

That is when concealing actually happens

thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Avoid a single point of failure, be that a person or equipment.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190616/1fcabaaf/attachment.sig>


More information about the ffmpeg-devel mailing list