From 2641f962467dde8af5b972eadb078b0a353099fc Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 1 Jan 2009 11:33:46 +0000 Subject: Simplify and comment spudec bilinear scaling code git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28223 b3059339-0415-0410-9bf9-f77b7e298cf2 --- spudec.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'spudec.c') diff --git a/spudec.c b/spudec.c index b06d9a0949..edf287b2e9 100644 --- a/spudec.c +++ b/spudec.c @@ -737,9 +737,10 @@ static void scale_image(int x, int y, scale_pixel* table_x, scale_pixel* table_y spu->scaled_image[scaled] = (color[0] * scale[0] + color[1] * scale[1] + color[2] * scale[2] + color[3] * scale[3])>>24; spu->scaled_aimage[scaled] = (scale[0] + scale[1] + scale[2] + scale[3]) >> 16; if (spu->scaled_aimage[scaled]){ - spu->scaled_aimage[scaled] = 256 - spu->scaled_aimage[scaled]; - if(spu->scaled_aimage[scaled] + spu->scaled_image[scaled] > 255) - spu->scaled_image[scaled] = 256 - spu->scaled_aimage[scaled]; + // ensure that MPlayer's simplified alpha-blending can not overflow + spu->scaled_image[scaled] = FFMIN(spu->scaled_image[scaled], spu->scaled_aimage[scaled]); + // convert to MPlayer-style alpha + spu->scaled_aimage[scaled] = -spu->scaled_aimage[scaled]; } } -- cgit v1.2.3