ffmpeg | branch: master | Anton Khirnov <an...@khirnov.net> | Sat Aug  5 
18:36:12 2017 +0200| [d41faffb533d899ecd67f3427914153b5a5dcffb] | committer: 
Anton Khirnov

h264dec: do not abort if decoding extradata fails

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.

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

 libavcodec/h264dec.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
index b6c51ed1e2..8673d5a2c2 100644
--- a/libavcodec/h264dec.c
+++ b/libavcodec/h264dec.c
@@ -414,10 +414,16 @@ 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) {
+               int explode = avctx->err_recognition & AV_EF_EXPLODE;
+               av_log(avctx, explode ? AV_LOG_ERROR: AV_LOG_WARNING,
+                      "Error decoding the extradata\n");
+               if (explode) {
+                   h264_decode_end(avctx);
+                   return ret;
+               }
+               ret = 0;
+           }
         }
     }
 

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to