Mercurial > mplayer.hg
changeset 26006:ac00f0e343df
vf_sab mirrors coefficients past the edge of the picture instead of cropping:
if (iy<0) iy= -iy;
if(iy>=h) iy= h-iy-1;
This produces -1,-2,-3... as it goes further past the end of an image, which
crashes. Change this to h-1,h-2,h-3.. to avoid the crash.
patch by Alexander Strange, astrange ithinksw com
author | diego |
---|---|
date | Wed, 20 Feb 2008 08:24:26 +0000 |
parents | 620976e4f865 |
children | 429c8f64b810 |
files | libmpcodecs/vf_sab.c |
diffstat | 1 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/vf_sab.c Wed Feb 20 08:20:49 2008 +0000 +++ b/libmpcodecs/vf_sab.c Wed Feb 20 08:24:26 2008 +0000 @@ -203,7 +203,7 @@ int dx; int iy= y+dy - radius; if (iy<0) iy= -iy; - else if(iy>=h) iy= h-iy-1; + else if(iy>=h) iy= h+h-iy-1; for(dx=0; dx<radius*2+1; dx++){ const int ix= x+dx - radius; @@ -220,13 +220,13 @@ int dx; int iy= y+dy - radius; if (iy<0) iy= -iy; - else if(iy>=h) iy= h-iy-1; + else if(iy>=h) iy= h+h-iy-1; for(dx=0; dx<radius*2+1; dx++){ int ix= x+dx - radius; int factor; if (ix<0) ix= -ix; - else if(ix>=w) ix= w-ix-1; + else if(ix>=w) ix= w+w-ix-1; factor= f.colorDiffCoeff[256+preVal - f.preFilterBuf[ix + iy*f.preFilterStride] ] *f.distCoeff[dx + dy*f.distStride];