summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authordiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-09-18 14:08:08 +0000
committerdiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-09-18 14:08:08 +0000
commit04586de1ddc3ddbb52165b97c2262b65c9e41813 (patch)
tree43d3a519b8680301a2b680cc9a0f8e0f5c7115d6 /libmpcodecs
parentb2a9d6aa1b026defe8ddd4a9859bae5f5f9bd282 (diff)
downloadmpv-04586de1ddc3ddbb52165b97c2262b65c9e41813.tar.bz2
mpv-04586de1ddc3ddbb52165b97c2262b65c9e41813.tar.xz
MPEG-2 blocks at qp 1 get overfiltered by spp, apparently because "qp>>1" turns
it into 0, which causes an integer overflow later. Clip qp at 1 to avoid this. patch by Alexander Strange, astrange ithinksw com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24572 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vf_spp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libmpcodecs/vf_spp.c b/libmpcodecs/vf_spp.c
index fc789397f7..1b6a5536d3 100644
--- a/libmpcodecs/vf_spp.c
+++ b/libmpcodecs/vf_spp.c
@@ -402,7 +402,7 @@ static void filter(struct vf_priv_s *p, uint8_t *dst, uint8_t *src, int dst_stri
qp= p->qp;
else{
qp= qp_store[ (XMIN(x, width-1)>>qps) + (XMIN(y, height-1)>>qps) * qp_stride];
- if(p->mpeg2) qp>>=1;
+ if(p->mpeg2) qp = FFMAX(1, qp>>1);
}
for(i=0; i<count; i++){
const int x1= x + offset[i+count-1][0];