mirror of
https://github.com/mpv-player/mpv
synced 2025-02-14 19:07:14 +00:00
xinc scaled by 16 instead of 8
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2275 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
2a680c8d21
commit
793efa116b
@ -178,11 +178,11 @@ static uint32_t init( uint32_t width,uint32_t height,uint32_t d_width,uint32_t d
|
||||
image_width=vo_screenwidth;
|
||||
image_height=vo_screenheight;
|
||||
} else {
|
||||
image_width=d_width&(~3);
|
||||
image_width=d_width&(~7);
|
||||
image_height=d_height;
|
||||
}
|
||||
scale_xinc=(width << 8) / image_width - 1; // -1 needed for proper rounding
|
||||
scale_yinc=(height << 16) / image_height;
|
||||
scale_xinc=(width << 16) / image_width - 2; // needed for proper rounding
|
||||
scale_yinc=(height << 16) / image_height +2;
|
||||
SwScale_Init();
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ static uint8_t funnyUVCode[10000];
|
||||
// *** bilinear scaling and yuv->rgb conversion of yv12 slices:
|
||||
// *** Note: it's called multiple times while decoding a frame, first time y==0
|
||||
// *** 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
|
||||
void SwScale_YV12slice_brg24(unsigned char* srcptr[],int stride[], int y, int h,
|
||||
unsigned char* dstptr, int dststride, int dstw, int dstbpp,
|
||||
@ -104,7 +104,7 @@ static int s_xinc2_diff=0;
|
||||
int canMMX2BeUsed;
|
||||
|
||||
// we need that precission at least for the mmx2 code
|
||||
s_xinc*= 256;
|
||||
//s_xinc*= 256;
|
||||
s_xinc2=s_xinc>>1;
|
||||
canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0;
|
||||
|
||||
|
@ -71,7 +71,7 @@ static uint8_t funnyUVCode[10000];
|
||||
// *** bilinear scaling and yuv->rgb conversion of yv12 slices:
|
||||
// *** Note: it's called multiple times while decoding a frame, first time y==0
|
||||
// *** 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
|
||||
void SwScale_YV12slice_brg24(unsigned char* srcptr[],int stride[], int y, int h,
|
||||
unsigned char* dstptr, int dststride, int dstw, int dstbpp,
|
||||
@ -104,7 +104,7 @@ static int s_xinc2_diff=0;
|
||||
int canMMX2BeUsed;
|
||||
|
||||
// we need that precission at least for the mmx2 code
|
||||
s_xinc*= 256;
|
||||
//s_xinc*= 256;
|
||||
s_xinc2=s_xinc>>1;
|
||||
canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user