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

Anton Khirnov anton at khirnov.net
Fri Mar 13 12:28:43 EET 2020


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 9331070f33..79663d8083 100644
--- a/libavcodec/h264dec.c
+++ b/libavcodec/h264dec.c
@@ -417,10 +417,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");
+               if (avctx->err_recognition & AV_EF_EXPLODE) {
+                   h264_decode_end(avctx);
+                   return ret;
+               }
+               ret = 0;
+           }
         }
     }
 
-- 
2.24.1



More information about the ffmpeg-devel mailing list