[FFmpeg-cvslog] avcodec/h264dec: set AVFrame decode_error_flags in case of decoding error

Amir Pauker git at videolan.org
Sun Jul 7 23:40:02 EEST 2019


ffmpeg | branch: master | Amir Pauker <amir at livelyvideo.tv> | Fri Jun 21 07:15:17 2019 -0700| [f6dece864de49d0285615fe97309be9abf8b1670] | committer: Michael Niedermayer

avcodec/h264dec: set AVFrame decode_error_flags in case of decoding error

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>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f6dece864de49d0285615fe97309be9abf8b1670
---

 libavcodec/h264dec.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
index 837c3b7538..8d1bd16a8e 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_DECODE_SLICES;
+    }
+
     ret = 0;
 end:
 



More information about the ffmpeg-cvslog mailing list