avcodec/dpx: check version of format header too
authorPaul B Mahol <onemda@gmail.com>
Wed, 5 Dec 2018 13:25:17 +0000 (14:25 +0100)
committerPaul B Mahol <onemda@gmail.com>
Fri, 7 Dec 2018 18:44:57 +0000 (19:44 +0100)
libavcodec/dpx.c

index 538a1b9..0297287 100644 (file)
@@ -106,6 +106,7 @@ static int decode_frame(AVCodecContext *avctx,
     int buf_size       = avpkt->size;
     AVFrame *const p = data;
     uint8_t *ptr[AV_NUM_DATA_POINTERS];
+    uint32_t header_version, version = 0;
 
     unsigned int offset;
     int magic_num, endian;
@@ -141,6 +142,15 @@ static int decode_frame(AVCodecContext *avctx,
         return AVERROR_INVALIDDATA;
     }
 
+    header_version = read32(&buf, 0);
+    if (header_version == MKTAG('V','1','.','0'))
+        version = 1;
+    if (header_version == MKTAG('V','2','.','0'))
+        version = 2;
+    if (!version)
+        av_log(avctx, AV_LOG_WARNING, "Unknown header format version %s.\n",
+               av_fourcc2str(header_version));
+
     // Check encryption
     buf = avpkt->data + 660;
     ret = read32(&buf, endian);