diff options
author | Andre Pang <athp@users.sourceforge.net> | 2004-11-06 09:23:15 +0000 |
---|---|---|
committer | Andre Pang <athp@users.sourceforge.net> | 2004-11-06 09:23:15 +0000 |
commit | 60635c5d5120e1180fab363b566c9c28e00d548a (patch) | |
tree | e150475da551376be0504fd34eeea7b620eef47e /src/libmpeg2/idct_altivec.c | |
parent | 5a9a7545889b82afffde6a867edd08941d3b4772 (diff) | |
download | xine-lib-60635c5d5120e1180fab363b566c9c28e00d548a.tar.gz xine-lib-60635c5d5120e1180fab363b566c9c28e00d548a.tar.bz2 |
libmpeg2 compilation fixes for Mac OS X
CVS patchset: 7105
CVS date: 2004/11/06 09:23:15
Diffstat (limited to 'src/libmpeg2/idct_altivec.c')
-rw-r--r-- | src/libmpeg2/idct_altivec.c | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/src/libmpeg2/idct_altivec.c b/src/libmpeg2/idct_altivec.c index 12c227aea..ffac29025 100644 --- a/src/libmpeg2/idct_altivec.c +++ b/src/libmpeg2/idct_altivec.c @@ -21,8 +21,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef __ALTIVEC__ - #include "config.h" #if defined (ARCH_PPC) && defined (ENABLE_ALTIVEC) @@ -32,13 +30,7 @@ #include "mpeg2_internal.h" #include "xineutils.h" -static int16_t constants[5][8] ATTR_ALIGN(16) = { - {23170, 13573, 6518, 21895, -23170, -21895, 32, 31}, - {16384, 22725, 21407, 19266, 16384, 19266, 21407, 22725}, - {22725, 31521, 29692, 26722, 22725, 26722, 29692, 31521}, - {21407, 29692, 27969, 25172, 21407, 25172, 27969, 29692}, - {19266, 26722, 25172, 22654, 19266, 22654, 25172, 26722} -}; +#ifndef HOST_OS_DARWIN /* * The asm code is generated with: @@ -497,6 +489,14 @@ void mpeg2_idct_add_altivec (int16_t * block, uint8_t * dest, int stride) ); } +static int16_t constants[5][8] ATTR_ALIGN(16) = { + {23170, 13573, 6518, 21895, -23170, -21895, 32, 31}, + {16384, 22725, 21407, 19266, 16384, 19266, 21407, 22725}, + {22725, 31521, 29692, 26722, 22725, 26722, 29692, 31521}, + {21407, 29692, 27969, 25172, 21407, 25172, 27969, 29692}, + {19266, 26722, 25172, 22654, 19266, 22654, 25172, 26722} +}; + void mpeg2_idct_altivec_init (void) { int i, j; @@ -512,9 +512,7 @@ void mpeg2_idct_altivec_init (void) } } -#endif /* ARCH_PPC */ - -#else /* __ALTIVEC__ */ +#else /* HOST_OS_DARWIN */ #define vector_s16_t vector signed short #define vector_u16_t vector unsigned short @@ -694,6 +692,20 @@ void mpeg2_idct_add_altivec (vector_s16_t * block, unsigned char * dest, memset (block, 0, 64 * sizeof (signed short)); } -#endif /* __ALTIVEC__ */ +void mpeg2_idct_altivec_init (void) +{ + int i, j; + + /* the altivec idct uses a transposed input, so we patch scan tables */ + for (i = 0; i < 64; i++) { + j = mpeg2_scan_norm[i]; + mpeg2_scan_norm[i] = (j >> 3) | ((j & 7) << 3); + j = mpeg2_scan_alt[i]; + mpeg2_scan_alt[i] = (j >> 3) | ((j & 7) << 3); + } +} + +#endif /* HOST_OS_DARWIN */ +#endif /* ARCH_PPC && ENABLED_ALTIVEC */ |