]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/truemotion1.c
check validity of pointer srcC
[ffmpeg] / libavcodec / truemotion1.c
index d825ba14142aa396a4eed50258276f33576c4689..1cf56ed3dd53da8cb76c8a074e5266aad8c3612d 100644 (file)
@@ -20,7 +20,7 @@
  */
 
 /**
- * @file truemotion1.c
+ * @file libavcodec/truemotion1.c
  * Duck TrueMotion v1 Video Decoder by
  * Alex Beregszaszi and
  * Mike Melanson (melanson@pcisys.net)
@@ -117,7 +117,7 @@ typedef struct comp_types {
 } comp_types;
 
 /* { valid for metatype }, algorithm, num of deltas, vert res, horiz res */
-static comp_types compression_types[17] = {
+static const comp_types compression_types[17] = {
     { ALGO_NOP,    0, 0, 0 },
 
     { ALGO_RGB16V, 4, 4, BLOCK_4x4 },
@@ -176,7 +176,7 @@ static int make_ydt15_entry(int p1, int p2, int16_t *ydt)
     lo += (lo << 5) + (lo << 10);
     hi = ydt[p2];
     hi += (hi << 5) + (hi << 10);
-    return ((lo + (hi << 16)) << 1);
+    return (lo + (hi << 16)) << 1;
 }
 
 #ifdef WORDS_BIGENDIAN
@@ -190,7 +190,7 @@ static int make_cdt15_entry(int p1, int p2, int16_t *cdt)
     b = cdt[p2];
     r = cdt[p1] << 10;
     lo = b + r;
-    return ((lo + (lo << 16)) << 1);
+    return (lo + (lo << 16)) << 1;
 }
 
 #ifdef WORDS_BIGENDIAN
@@ -205,7 +205,7 @@ static int make_ydt16_entry(int p1, int p2, int16_t *ydt)
     lo += (lo << 6) + (lo << 11);
     hi = ydt[p2];
     hi += (hi << 6) + (hi << 11);
-    return ((lo + (hi << 16)) << 1);
+    return (lo + (hi << 16)) << 1;
 }
 
 #ifdef WORDS_BIGENDIAN
@@ -219,7 +219,7 @@ static int make_cdt16_entry(int p1, int p2, int16_t *cdt)
     b = cdt[p2];
     r = cdt[p1] << 11;
     lo = b + r;
-    return ((lo + (lo << 16)) << 1);
+    return (lo + (lo << 16)) << 1;
 }
 
 #ifdef WORDS_BIGENDIAN
@@ -232,7 +232,7 @@ static int make_ydt24_entry(int p1, int p2, int16_t *ydt)
 
     lo = ydt[p1];
     hi = ydt[p2];
-    return ((lo + (hi << 8) + (hi << 16)) << 1);
+    return (lo + (hi << 8) + (hi << 16)) << 1;
 }
 
 #ifdef WORDS_BIGENDIAN
@@ -245,7 +245,7 @@ static int make_cdt24_entry(int p1, int p2, int16_t *cdt)
 
     b = cdt[p2];
     r = cdt[p1]<<16;
-    return ((b+r) << 1);
+    return (b+r) << 1;
 }
 
 static void gen_vector_table15(TrueMotion1Context *s, const uint8_t *sel_vector_table)
@@ -393,7 +393,7 @@ static int truemotion1_decode_header(TrueMotion1Context *s)
         }
     }
 
-    if (header.compression > 17) {
+    if (header.compression >= 17) {
         av_log(s->avctx, AV_LOG_ERROR, "invalid compression type (%d)\n", header.compression);
         return -1;
     }
@@ -899,4 +899,5 @@ AVCodec truemotion1_decoder = {
     truemotion1_decode_end,
     truemotion1_decode_frame,
     CODEC_CAP_DR1,
+    .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 1.0"),
 };