diff --git a/postproc/swscale.c b/postproc/swscale.c index 5b4953c02c..f21776182a 100644 --- a/postproc/swscale.c +++ b/postproc/swscale.c @@ -102,8 +102,6 @@ untested special converters //FIXME replace this with something faster #define isPlanarYUV(x) ((x)==IMGFMT_YV12 || (x)==IMGFMT_I420 || (x)==IMGFMT_YVU9) #define isYUV(x) ((x)==IMGFMT_YUY2 || isPlanarYUV(x)) -#define isHalfChrV(x) ((x)==IMGFMT_YV12 || (x)==IMGFMT_I420) -#define isHalfChrH(x) ((x)==IMGFMT_YUY2 || (x)==IMGFMT_YV12 || (x)==IMGFMT_I420) #define isGray(x) ((x)==IMGFMT_Y800) #define isSupportedIn(x) ((x)==IMGFMT_YV12 || (x)==IMGFMT_I420 || (x)==IMGFMT_YUY2 \ || (x)==IMGFMT_BGR32|| (x)==IMGFMT_BGR24|| (x)==IMGFMT_BGR16|| (x)==IMGFMT_BGR15\ diff --git a/postproc/swscale_template.c b/postproc/swscale_template.c index 5a8b25cd77..89ddb4b0e5 100644 --- a/postproc/swscale_template.c +++ b/postproc/swscale_template.c @@ -2709,9 +2709,9 @@ i--; for(;dstY < dstH; dstY++){ unsigned char *dest =dst[0]+dstStride[0]*dstY; - unsigned char *uDest=dst[1]+dstStride[1]*(dstY>>1); - unsigned char *vDest=dst[2]+dstStride[2]*(dstY>>1); - const int chrDstY= isHalfChrV(dstFormat) ? (dstY>>1) : dstY; + const int chrDstY= dstY>>c->chrDstVSubSample; + unsigned char *uDest=dst[1]+dstStride[1]*chrDstY; + unsigned char *vDest=dst[2]+dstStride[2]*chrDstY; const int firstLumSrcY= vLumFilterPos[dstY]; //First line needed as input const int firstChrSrcY= vChrFilterPos[chrDstY]; //First line needed as input