# HG changeset patch # User pacman # Date 1144318134 0 # Node ID a0ab6fed1d14c26661815d3efcdd18edfa0fecb3 # Parent 452996e2628c03366899fdf1b4246e2f6d042c43 Reorganize vector constants to work around gcc 4.1 bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27006 This bug caused certain movies (444P or RGB/BGR-based) to become brighter and more purple when played on a YV12 vo. diff -r 452996e2628c -r a0ab6fed1d14 postproc/swscale_altivec_template.c --- a/postproc/swscale_altivec_template.c Thu Apr 06 03:27:20 2006 +0000 +++ b/postproc/swscale_altivec_template.c Thu Apr 06 10:08:54 2006 +0000 @@ -26,14 +26,13 @@ #define AVV(x...) {x} #endif -static const vector signed int vzero = - (const vector signed int)AVV(0, 0, 0, 0); -static const vector unsigned int altivec_vectorShiftInt19 = - (const vector unsigned int)AVV(19, 19, 19, 19); +#define vzero vec_splat_s32(0) static inline void altivec_packIntArrayToCharArray(int *val, uint8_t* dest, int dstW) { register int i; + vector unsigned int altivec_vectorShiftInt19 = + vec_add(vec_splat_u32(10),vec_splat_u32(9)); if ((unsigned long)dest % 16) { /* badly aligned store, we force store alignement */ /* and will handle load misalignement on val w/ vec_perm */