changeset 3529:b8656dfe6b1a libavcodec

Fix overflows in bicubic interpolation.
author kostya
date Mon, 31 Jul 2006 03:32:59 +0000
parents 79ad5cd43686
children 5d1828a07acf
files vc1dsp.c
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/vc1dsp.c	Sun Jul 30 03:50:31 2006 +0000
+++ b/vc1dsp.c	Mon Jul 31 03:32:59 2006 +0000
@@ -314,7 +314,7 @@
 
 /** Filter used to interpolate fractional pel values
  */
-static always_inline uint8_t vc1_mspel_filter(const uint8_t *src, int stride, int mode, int r)
+static always_inline int vc1_mspel_filter(const uint8_t *src, int stride, int mode, int r)
 {
     switch(mode){
     case 0: //no shift
@@ -343,7 +343,7 @@
     tptr = tmp;
     for(j = 0; j < 11; j++) {
         for(i = 0; i < 8; i++)
-            tptr[i] = vc1_mspel_filter(src + i, 1, m, r);
+            tptr[i] = clip_uint8(vc1_mspel_filter(src + i, 1, m, r));
         src += stride;
         tptr += 8;
     }
@@ -353,7 +353,7 @@
     tptr = tmp + 8;
     for(j = 0; j < 8; j++) {
         for(i = 0; i < 8; i++)
-            dst[i] = vc1_mspel_filter(tptr + i, 8, m, r);
+            dst[i] = clip_uint8(vc1_mspel_filter(tptr + i, 8, m, r));
         dst += stride;
         tptr += 8;
     }