[SCM] libav/experimental: Make dnxhd probe more strict, fail if we detect values in header that would make our decoder fail anyway. dnxhd probe now passes probetest.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:51:07 UTC 2013


The following commit has been merged in the experimental branch:
commit 98487a5b69d9641b4ed66a5281752ea5617eeac7
Author: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
Date:   Mon Sep 14 21:50:23 2009 +0000

    Make dnxhd probe more strict, fail if we detect values in header that would
    make our decoder fail anyway.
    dnxhd probe now passes probetest.
    
    Originally committed as revision 19847 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/raw.c b/libavformat/raw.c
index a3227cd..3a53eee 100644
--- a/libavformat/raw.c
+++ b/libavformat/raw.c
@@ -580,10 +580,19 @@ static int dirac_probe(AVProbeData *p)
 static int dnxhd_probe(AVProbeData *p)
 {
     static const uint8_t header[] = {0x00,0x00,0x02,0x80,0x01};
-    if (!memcmp(p->buf, header, 5))
-        return AVPROBE_SCORE_MAX;
-    else
+    int w, h, compression_id;
+    if (p->buf_size < 0x2c)
+        return 0;
+    if (memcmp(p->buf, header, 5))
+        return 0;
+    h = AV_RB16(p->buf + 0x18);
+    w = AV_RB16(p->buf + 0x1a);
+    if (!w || !h)
+        return 0;
+    compression_id = AV_RB32(p->buf + 0x28);
+    if (compression_id < 1237 || compression_id > 1253)
         return 0;
+    return AVPROBE_SCORE_MAX;
 }
 #endif
 

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list