[FFmpeg-cvslog] lavc/v210dec: Skip Canopus C210 extradata.

Carl Eugen Hoyos git at videolan.org
Thu May 17 13:20:13 EEST 2018


ffmpeg | branch: master | Carl Eugen Hoyos <ceffmpeg at gmail.com> | Thu May 10 22:45:07 2018 +0200| [380ca1bc0ce886f043d1380b7aff99356220309b] | committer: Carl Eugen Hoyos

lavc/v210dec: Skip Canopus C210 extradata.

Unbreaks files with unknown extradata, the Canopus decoder accepts both files
with and without this extradata (24 byte "INFO", 16 byte "RDRT", rest "FIEL").

Reported-by: Peter Bubestinger
Tested-by: Piotr Bandurski

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

 libavcodec/v210dec.c | 6 ++++++
 libavcodec/version.h | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/libavcodec/v210dec.c b/libavcodec/v210dec.c
index 99199ddc15..ddc5dbe8be 100644
--- a/libavcodec/v210dec.c
+++ b/libavcodec/v210dec.c
@@ -27,6 +27,7 @@
 #include "libavutil/bswap.h"
 #include "libavutil/internal.h"
 #include "libavutil/mem.h"
+#include "libavutil/intreadwrite.h"
 
 #define READ_PIXELS(a, b, c)         \
     do {                             \
@@ -92,6 +93,11 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
             return AVERROR_INVALIDDATA;
         }
     }
+    if (   avctx->codec_tag == MKTAG('C', '2', '1', '0')
+        && avpkt->size > 64
+        && AV_RN32(psrc) == AV_RN32("INFO")
+        && avpkt->size - 64 >= stride * avctx->height)
+        psrc += 64;
 
     aligned_input = !((uintptr_t)psrc & 0xf) && !(stride & 0xf);
     if (aligned_input != s->aligned_input) {
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 3fda743cf9..da893dacf1 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
 
 #define LIBAVCODEC_VERSION_MAJOR  58
 #define LIBAVCODEC_VERSION_MINOR  19
-#define LIBAVCODEC_VERSION_MICRO 101
+#define LIBAVCODEC_VERSION_MICRO 102
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                LIBAVCODEC_VERSION_MINOR, \



More information about the ffmpeg-cvslog mailing list