Mercurial > mplayer.hg
comparison spudec.c @ 28188:06dbef90389e
Simplify and comment spudec bilinear scaling code
author | reimar |
---|---|
date | Thu, 01 Jan 2009 11:33:46 +0000 |
parents | 3ac3d3a51934 |
children | 0f1b5b68af32 |
comparison
equal
deleted
inserted
replaced
28187:54c35115639c | 28188:06dbef90389e |
---|---|
735 scale[2] = (table_x[x].left_up * table_y[y].right_down >> 16) * alpha[2]; | 735 scale[2] = (table_x[x].left_up * table_y[y].right_down >> 16) * alpha[2]; |
736 scale[3] = (table_x[x].right_down * table_y[y].right_down >> 16) * alpha[3]; | 736 scale[3] = (table_x[x].right_down * table_y[y].right_down >> 16) * alpha[3]; |
737 spu->scaled_image[scaled] = (color[0] * scale[0] + color[1] * scale[1] + color[2] * scale[2] + color[3] * scale[3])>>24; | 737 spu->scaled_image[scaled] = (color[0] * scale[0] + color[1] * scale[1] + color[2] * scale[2] + color[3] * scale[3])>>24; |
738 spu->scaled_aimage[scaled] = (scale[0] + scale[1] + scale[2] + scale[3]) >> 16; | 738 spu->scaled_aimage[scaled] = (scale[0] + scale[1] + scale[2] + scale[3]) >> 16; |
739 if (spu->scaled_aimage[scaled]){ | 739 if (spu->scaled_aimage[scaled]){ |
740 spu->scaled_aimage[scaled] = 256 - spu->scaled_aimage[scaled]; | 740 // ensure that MPlayer's simplified alpha-blending can not overflow |
741 if(spu->scaled_aimage[scaled] + spu->scaled_image[scaled] > 255) | 741 spu->scaled_image[scaled] = FFMIN(spu->scaled_image[scaled], spu->scaled_aimage[scaled]); |
742 spu->scaled_image[scaled] = 256 - spu->scaled_aimage[scaled]; | 742 // convert to MPlayer-style alpha |
743 spu->scaled_aimage[scaled] = -spu->scaled_aimage[scaled]; | |
743 } | 744 } |
744 } | 745 } |
745 | 746 |
746 void sws_spu_image(unsigned char *d1, unsigned char *d2, int dw, int dh, int ds, | 747 void sws_spu_image(unsigned char *d1, unsigned char *d2, int dw, int dh, int ds, |
747 unsigned char *s1, unsigned char *s2, int sw, int sh, int ss) | 748 unsigned char *s1, unsigned char *s2, int sw, int sh, int ss) |