[FFmpeg-devel] [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec
Amir Pauker
amir at livelyvideo.tv
Mon Jun 10 08:45:13 EEST 2019
set AVFrame decode_error_flags 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 | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
index 00d922f..67dee11 100644
--- a/libavcodec/h264dec.c
+++ b/libavcodec/h264dec.c
@@ -758,6 +758,12 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
}
ret = ff_h264_execute_decode_slices(h);
+
+ // 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_INVALID_BITSTREAM|FF_DECODE_ERROR_MISSING_REFERENCE;
+ }
+
if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE))
goto end;
--
2.1.4
More information about the ffmpeg-devel
mailing list