[FFmpeg-cvslog] avfilter/vf_spp: Fix overflow in 8bit store slice

Michael Niedermayer git at videolan.org
Sun Dec 21 02:03:17 CET 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Dec 21 01:45:55 2014 +0100| [6706a2986c48e3f20f1274b24345e6555d8f0f48] | committer: Michael Niedermayer

avfilter/vf_spp: Fix overflow in 8bit store slice

Fixes regression with
ffplay -f lavfi -i testsrc=640x480  -vf format=gray,boxblur=20:10,geq="'mod(lum(X,Y),16)*15'",boxblur=10,geq="'abs(mod(lum(X,Y),15)-7)*32'",spp=4:40

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavfilter/vf_spp.c     |    2 +-
 libavfilter/vf_spp.h     |    2 +-
 libavfilter/x86/vf_spp.c |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavfilter/vf_spp.c b/libavfilter/vf_spp.c
index 4c7158e..bdc76ae 100644
--- a/libavfilter/vf_spp.c
+++ b/libavfilter/vf_spp.c
@@ -156,7 +156,7 @@ static void softthresh_c(int16_t dst[64], const int16_t src[64],
     }
 }
 
-static void store_slice_c(uint8_t *dst, const uint16_t *src,
+static void store_slice_c(uint8_t *dst, const int16_t *src,
                           int dst_linesize, int src_linesize,
                           int width, int height, int log2_scale,
                           const uint8_t dither[8][8])
diff --git a/libavfilter/vf_spp.h b/libavfilter/vf_spp.h
index 14e1ddb..6b70a91 100644
--- a/libavfilter/vf_spp.h
+++ b/libavfilter/vf_spp.h
@@ -45,7 +45,7 @@ typedef struct {
     int use_bframe_qp;
     int hsub, vsub;
 
-    void (*store_slice)(uint8_t *dst, const uint16_t *src,
+    void (*store_slice)(uint8_t *dst, const int16_t *src,
                         int dst_stride, int src_stride,
                         int width, int height, int log2_scale,
                         const uint8_t dither[8][8]);
diff --git a/libavfilter/x86/vf_spp.c b/libavfilter/x86/vf_spp.c
index 016f526..1cfb9e8 100644
--- a/libavfilter/x86/vf_spp.c
+++ b/libavfilter/x86/vf_spp.c
@@ -174,7 +174,7 @@ static void softthresh_mmx(int16_t dst[64], const int16_t src[64],
     dst[0] = (src[0] + 4) >> 3;
 }
 
-static void store_slice_mmx(uint8_t *dst, const uint16_t *src,
+static void store_slice_mmx(uint8_t *dst, const int16_t *src,
                             int dst_stride, int src_stride,
                             int width, int height, int log2_scale,
                             const uint8_t dither[8][8])



More information about the ffmpeg-cvslog mailing list