h264: do not return an error when NAL parsing of extradata failed
authorHendrik Leppkes <h.leppkes@gmail.com>
Sat, 7 May 2016 11:28:31 +0000 (13:28 +0200)
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>
Sat, 7 May 2016 20:14:17 +0000 (21:14 +0100)
Fixes AnnexB samples with broken extradata, but proper in-band parameter sets

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
libavcodec/h264.c

index e02202840bed50ffeed10635c0e2e17f8e7ea4f2..95248af8cf7d52c5c4dd2d21a50c8df88062c244 100644 (file)
@@ -1233,7 +1233,8 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size,
     if (ret < 0) {
         av_log(avctx, AV_LOG_ERROR,
                "Error splitting the input into NAL units.\n");
-        return ret;
+        /* don't consider NAL parsing failure a fatal error when parsing extradata, as the stream may work without it */
+        return parse_extradata ? buf_size : ret;
     }
 
     if (avctx->active_thread_type & FF_THREAD_FRAME)