Commit 44f9179b authored by Arpi's avatar Arpi

xinc scaled by 16 instead of 8

Originally committed as revision 2275 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
parent b3a134b6
...@@ -71,7 +71,7 @@ static uint8_t funnyUVCode[10000]; ...@@ -71,7 +71,7 @@ static uint8_t funnyUVCode[10000];
// *** bilinear scaling and yuv->rgb conversion of yv12 slices: // *** bilinear scaling and yuv->rgb conversion of yv12 slices:
// *** Note: it's called multiple times while decoding a frame, first time y==0 // *** Note: it's called multiple times while decoding a frame, first time y==0
// *** Designed to upscale, but may work for downscale too. // *** Designed to upscale, but may work for downscale too.
// s_xinc = (src_width << 8) / dst_width // s_xinc = (src_width << 16) / dst_width
// s_yinc = (src_height << 16) / dst_height // s_yinc = (src_height << 16) / dst_height
void SwScale_YV12slice_brg24(unsigned char* srcptr[],int stride[], int y, int h, void SwScale_YV12slice_brg24(unsigned char* srcptr[],int stride[], int y, int h,
unsigned char* dstptr, int dststride, int dstw, int dstbpp, unsigned char* dstptr, int dststride, int dstw, int dstbpp,
...@@ -104,7 +104,7 @@ static int s_xinc2_diff=0; ...@@ -104,7 +104,7 @@ static int s_xinc2_diff=0;
int canMMX2BeUsed; int canMMX2BeUsed;
// we need that precission at least for the mmx2 code // we need that precission at least for the mmx2 code
s_xinc*= 256; //s_xinc*= 256;
s_xinc2=s_xinc>>1; s_xinc2=s_xinc>>1;
canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0; canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0;
......
...@@ -71,7 +71,7 @@ static uint8_t funnyUVCode[10000]; ...@@ -71,7 +71,7 @@ static uint8_t funnyUVCode[10000];
// *** bilinear scaling and yuv->rgb conversion of yv12 slices: // *** bilinear scaling and yuv->rgb conversion of yv12 slices:
// *** Note: it's called multiple times while decoding a frame, first time y==0 // *** Note: it's called multiple times while decoding a frame, first time y==0
// *** Designed to upscale, but may work for downscale too. // *** Designed to upscale, but may work for downscale too.
// s_xinc = (src_width << 8) / dst_width // s_xinc = (src_width << 16) / dst_width
// s_yinc = (src_height << 16) / dst_height // s_yinc = (src_height << 16) / dst_height
void SwScale_YV12slice_brg24(unsigned char* srcptr[],int stride[], int y, int h, void SwScale_YV12slice_brg24(unsigned char* srcptr[],int stride[], int y, int h,
unsigned char* dstptr, int dststride, int dstw, int dstbpp, unsigned char* dstptr, int dststride, int dstw, int dstbpp,
...@@ -104,7 +104,7 @@ static int s_xinc2_diff=0; ...@@ -104,7 +104,7 @@ static int s_xinc2_diff=0;
int canMMX2BeUsed; int canMMX2BeUsed;
// we need that precission at least for the mmx2 code // we need that precission at least for the mmx2 code
s_xinc*= 256; //s_xinc*= 256;
s_xinc2=s_xinc>>1; s_xinc2=s_xinc>>1;
canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0; canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment