diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2002-02-03 02:08:05 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2002-02-03 02:08:05 +0000 |
commit | 8a01d20ccbf800e2610b5c3c2af1c1a910aa3e46 (patch) | |
tree | 8d8519310148e231c2ba2dfde49a982e87b5d7ee /postproc/swscale.c | |
parent | 6ff0ad6bfd0f00a3d54705811ee91a7ce3c22cda (diff) | |
download | ffmpeg-8a01d20ccbf800e2610b5c3c2af1c1a910aa3e46.tar.gz |
filterPos bugfix (only nearest neighbor scaling was affected)
Originally committed as revision 4493 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
Diffstat (limited to 'postproc/swscale.c')
-rw-r--r-- | postproc/swscale.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/postproc/swscale.c b/postproc/swscale.c index c734a56ff8..a1bccd321f 100644 --- a/postproc/swscale.c +++ b/postproc/swscale.c @@ -689,7 +689,7 @@ static inline void initFilter(int16_t **outFilter, int16_t **filterPos, int *out xDstInSrc= xInc/2 - 0x8000; for(i=0; i<dstW; i++) { - int xx= (xDstInSrc>>16) - (filterSize>>1) + 1; + int xx= (xDstInSrc - ((filterSize-1)<<15) + (1<<15))>>16; (*filterPos)[i]= xx; filter[i]= 1.0; @@ -709,7 +709,7 @@ static inline void initFilter(int16_t **outFilter, int16_t **filterPos, int *out xDstInSrc= xInc/2 - 0x8000; for(i=0; i<dstW; i++) { - int xx= (xDstInSrc>>16) - (filterSize>>1) + 1; + int xx= (xDstInSrc - ((filterSize-1)<<15) + (1<<15))>>16; int j; (*filterPos)[i]= xx; @@ -1125,7 +1125,8 @@ SwsContext *getSwsContext(int srcW, int srcH, int srcFormat, int dstW, int dstH, /* avoid dupplicate Formats, so we dont need to check to much */ if(srcFormat==IMGFMT_IYUV) srcFormat=IMGFMT_I420; if(srcFormat==IMGFMT_Y8) srcFormat=IMGFMT_Y800; - + if(dstFormat==IMGFMT_Y8) dstFormat=IMGFMT_Y800; + if(!isSupportedIn(srcFormat)) return NULL; if(!isSupportedOut(dstFormat)) return NULL; |