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)