# HG changeset patch # User alex # Date 1090054400 0 # Node ID ec86a77cb6f4a26f0608fa8b6c8a7f21927a1f78 # Parent 9a310b31359f473a13b86d8d18bc1b351317d822 simplify the init diff -r 9a310b31359f -r ec86a77cb6f4 postproc/yuv2rgb_altivec.c --- a/postproc/yuv2rgb_altivec.c Sat Jul 17 07:01:15 2004 +0000 +++ b/postproc/yuv2rgb_altivec.c Sat Jul 17 08:53:20 2004 +0000 @@ -564,58 +564,28 @@ return NULL; } - void yuv2rgb_altivec_init_tables (SwsContext *c, const int inv_table[4]) { - vector signed short - CY = (vector signed short)(0x7fff), - CRV = (vector signed short)(22972), - CBU = (vector signed short)(29029), - CGU = (vector signed short)(-11276), - CGV = (vector signed short)(-23400), - OY; - - vector signed short Y0; - int brightness = c->brightness, contrast = c->contrast, saturation = c->saturation; - int64_t crv __attribute__ ((aligned(16))); - int64_t cbu __attribute__ ((aligned(16))); - int64_t cgu __attribute__ ((aligned(16))); - int64_t cgv __attribute__ ((aligned(16))); + vector signed short CY, CRV, CBU, CGU, CGV, OY, Y0; + int64_t crv __attribute__ ((aligned(16))) = inv_table[0]; + int64_t cbu __attribute__ ((aligned(16))) = inv_table[1]; + int64_t cgu __attribute__ ((aligned(16))) = inv_table[2]; + int64_t cgv __attribute__ ((aligned(16))) = inv_table[3]; + int64_t cy = (1<<16)-1; + int64_t oy = 0; short tmp __attribute__ ((aligned(16))); - int64_t cy = (1<<16)-1; - int64_t oy = 0; - if ((c->flags & SWS_CPU_CAPS_ALTIVEC) == 0) return; - crv = inv_table[0]; - cbu = inv_table[1]; - cgu = inv_table[2]; - cgv = inv_table[3]; - -#if 0 - printf ("crv: %hvx\n", CRV); - printf ("cbu: %hvx\n", CBU); - printf ("cgv: %hvx\n", CGV); - printf ("cgu: %hvx\n", CGU); - - printf ("contrast: %d, brightness: %d, saturation: %d\n", contrast, brightness, saturation); + cy = (cy *c->contrast )>>17; + crv= (crv*c->contrast * c->saturation)>>32; + cbu= (cbu*c->contrast * c->saturation)>>32; + cgu= (cgu*c->contrast * c->saturation)>>32; + cgv= (cgv*c->contrast * c->saturation)>>32; - printf("%lld %lld %lld %lld %lld\n", cy, crv, cbu, cgu, cgv); -#endif + oy -= 256*c->brightness; - cy = (cy *contrast )>>17; - crv= (crv*contrast * saturation)>>32; - cbu= (cbu*contrast * saturation)>>32; - cgu= (cgu*contrast * saturation)>>32; - cgv= (cgv*contrast * saturation)>>32; - - oy -= 256*brightness; - - //printf("%llx %llx %llx %llx %llx\n", cy, crv, cbu, cgu, cgv); - - // vector signed short CBU,CRV,CGU,CGY,CY; tmp = cy; CY = vec_lde (0, &tmp); CY = vec_splat (CY, 0); @@ -827,5 +797,3 @@ if (vCCoeffsBank) free (vCCoeffsBank); } - -