diff -ru mpeg2dec-original/libmpeg2/convert/convert_internal.h mpeg2dec/libmpeg2/convert/convert_internal.h
--- mpeg2dec-original/libmpeg2/convert/convert_internal.h	Fri Jan 23 10:07:50 2004
+++ mpeg2dec/libmpeg2/convert/convert_internal.h	Thu Jul 22 23:40:41 2004
@@ -34,8 +34,10 @@
 typedef void mpeg2convert_copy_t (void * id, uint8_t * const * src,
 				  unsigned int v_offset);
 
+#ifndef __BEOS__
 mpeg2convert_copy_t * mpeg2convert_rgb_mmxext (int bpp, int mode,
 					       const mpeg2_sequence_t * seq);
+#endif
 mpeg2convert_copy_t * mpeg2convert_rgb_mmx (int bpp, int mode,
 					    const mpeg2_sequence_t * seq);
 mpeg2convert_copy_t * mpeg2convert_rgb_vis (int bpp, int mode,
diff -ru mpeg2dec-original/libmpeg2/convert/rgb.c mpeg2dec/libmpeg2/convert/rgb.c
--- mpeg2dec-original/libmpeg2/convert/rgb.c	Fri Jan 23 10:07:56 2004
+++ mpeg2dec/libmpeg2/convert/rgb.c	Thu Jul 22 23:41:21 2004
@@ -500,10 +500,12 @@
     int rgb_stride_min = ((bpp + 7) >> 3) * seq->width;
 
 #ifdef ARCH_X86
+#ifndef __BEOS__
     if (!copy && (accel & MPEG2_ACCEL_X86_MMXEXT)) {
 	convert420 = 0;
 	copy = mpeg2convert_rgb_mmxext (order, bpp, seq);
     }
+#endif
     if (!copy && (accel & MPEG2_ACCEL_X86_MMX)) {
 	convert420 = 0;
 	copy = mpeg2convert_rgb_mmx (order, bpp, seq);
diff -ru mpeg2dec-original/libmpeg2/convert/rgb_mmx.c mpeg2dec/libmpeg2/convert/rgb_mmx.c
--- mpeg2dec-original/libmpeg2/convert/rgb_mmx.c	Fri Jan 23 10:07:58 2004
+++ mpeg2dec/libmpeg2/convert/rgb_mmx.c	Thu Jul 22 23:39:27 2004
@@ -272,6 +272,7 @@
     } while (i);
 }
 
+#ifndef __BEOS__
 static void mmxext_rgb16 (void * id, uint8_t * const * src,
 			  unsigned int v_offset)
 {
@@ -283,6 +284,7 @@
 {
     argb32 (id, src, v_offset, CPU_MMXEXT);
 }
+#endif
 
 static void mmx_rgb16 (void * id, uint8_t * const * src, unsigned int v_offset)
 {
@@ -295,6 +297,7 @@
     argb32 (id, src, v_offset, CPU_MMX);
 }
 
+#ifndef __BEOS__
 mpeg2convert_copy_t * mpeg2convert_rgb_mmxext (int order, int bpp,
 					       const mpeg2_sequence_t * seq)
 {
@@ -306,6 +309,7 @@
     }
     return NULL;	/* Fallback to C */
 }
+#endif
 
 mpeg2convert_copy_t * mpeg2convert_rgb_mmx (int order, int bpp,
 					    const mpeg2_sequence_t * seq)
diff -ru mpeg2dec-original/libmpeg2/idct.c mpeg2dec/libmpeg2/idct.c
--- mpeg2dec-original/libmpeg2/idct.c	Fri Sep 19 09:26:42 2003
+++ mpeg2dec/libmpeg2/idct.c	Thu Jul 22 19:11:53 2004
@@ -236,11 +236,15 @@
 void mpeg2_idct_init (uint32_t accel)
 {
 #ifdef ARCH_X86
+#ifndef __BEOS__
     if (accel & MPEG2_ACCEL_X86_MMXEXT) {
 	mpeg2_idct_copy = mpeg2_idct_copy_mmxext;
 	mpeg2_idct_add = mpeg2_idct_add_mmxext;
 	mpeg2_idct_mmx_init ();
     } else if (accel & MPEG2_ACCEL_X86_MMX) {
+#else
+    if (accel & MPEG2_ACCEL_X86_MMX) {
+#endif
 	mpeg2_idct_copy = mpeg2_idct_copy_mmx;
 	mpeg2_idct_add = mpeg2_idct_add_mmx;
 	mpeg2_idct_mmx_init ();
diff -ru mpeg2dec-original/libmpeg2/idct_mmx.c mpeg2dec/libmpeg2/idct_mmx.c
--- mpeg2dec-original/libmpeg2/idct_mmx.c	Fri Sep 19 09:26:42 2003
+++ mpeg2dec/libmpeg2/idct_mmx.c	Thu Jul 22 19:11:53 2004
@@ -79,6 +79,7 @@
 #endif
 
 
+#ifndef __BEOS__
 /* MMXEXT row IDCT */
 
 #define mmxext_table(c1,c2,c3,c4,c5,c6,c7)	{  c4,  c2, -c4, -c2,	\
@@ -192,6 +193,7 @@
     movq_m2r (*(table+4), mm4);		/* mm4 = C6 C4 C6 C4 */
     pshufw_r2r (mm2, mm2, 0x4e);	/* mm2 = x2 x0 x6 x4 */
 }
+#endif /* __BEOS__ */
 
 
 /* MMX row IDCT */
@@ -689,6 +691,7 @@
 #define CPU_MMXEXT 0
 #define CPU_MMX 1
 
+#ifndef __BEOS__
 #define dup4(reg)			\
 do {					\
     if (cpu != CPU_MMXEXT) {		\
@@ -697,6 +700,13 @@
     } else				\
 	pshufw_r2r (reg, reg, 0x00);	\
 } while (0)
+#else
+#define dup4(reg)			\
+do {					\
+    punpcklwd_r2r (reg, reg);		\
+    punpckldq_r2r (reg, reg);		\
+} while (0)
+#endif
 
 static inline void block_add_DC (int16_t * const block, uint8_t * dest,
 				 const int stride, const int cpu)
@@ -749,6 +759,7 @@
 }
 
 
+#ifndef __BEOS__
 declare_idct (mmxext_idct, mmxext_table,
 	      mmxext_row_head, mmxext_row, mmxext_row_tail, mmxext_row_mid)
 
@@ -770,6 +781,7 @@
     } else
 	block_add_DC (block, dest, stride, CPU_MMXEXT);
 }
+#endif /* __BEOS__ */
 
 
 declare_idct (mmx_idct, mmx_table,
diff -ru mpeg2dec-original/libmpeg2/motion_comp.c mpeg2dec/libmpeg2/motion_comp.c
--- mpeg2dec-original/libmpeg2/motion_comp.c	Mon Oct  6 02:31:52 2003
+++ mpeg2dec/libmpeg2/motion_comp.c	Thu Jul 22 22:57:54 2004
@@ -34,11 +34,15 @@
 void mpeg2_mc_init (uint32_t accel)
 {
 #ifdef ARCH_X86
+#ifndef __BEOS__
     if (accel & MPEG2_ACCEL_X86_MMXEXT)
 	mpeg2_mc = mpeg2_mc_mmxext;
     else if (accel & MPEG2_ACCEL_X86_3DNOW)
 	mpeg2_mc = mpeg2_mc_3dnow;
     else if (accel & MPEG2_ACCEL_X86_MMX)
+#else
+    if (accel & MPEG2_ACCEL_X86_MMX)
+#endif
 	mpeg2_mc = mpeg2_mc_mmx;
     else
 #endif
diff -ru mpeg2dec-original/libmpeg2/motion_comp_mmx.c mpeg2dec/libmpeg2/motion_comp_mmx.c
--- mpeg2dec-original/libmpeg2/motion_comp_mmx.c	Thu Aug 21 08:00:58 2003
+++ mpeg2dec/libmpeg2/motion_comp_mmx.c	Thu Jul 22 22:57:14 2004
@@ -500,7 +500,7 @@
 
 
 
-
+#ifndef __BEOS__
 
 /* CPU_MMXEXT/CPU_3DNOW adaptation layer */
 
@@ -1001,5 +1001,7 @@
 
 
 MPEG2_MC_EXTERN (3dnow)
+
+#endif /* __BEOS__ */
 
 #endif
diff -ru mpeg2dec-original/libmpeg2/mpeg2_internal.h mpeg2dec/libmpeg2/mpeg2_internal.h
--- mpeg2dec-original/libmpeg2/mpeg2_internal.h	Tue Feb 10 05:43:54 2004
+++ mpeg2dec/libmpeg2/mpeg2_internal.h	Thu Jul 22 23:43:36 2004
@@ -255,9 +255,11 @@
 void mpeg2_idct_init (uint32_t accel);
 
 /* idct_mmx.c */
+#ifndef __BEOS__
 void mpeg2_idct_copy_mmxext (int16_t * block, uint8_t * dest, int stride);
 void mpeg2_idct_add_mmxext (int last, int16_t * block,
 			    uint8_t * dest, int stride);
+#endif
 void mpeg2_idct_copy_mmx (int16_t * block, uint8_t * dest, int stride);
 void mpeg2_idct_add_mmx (int last, int16_t * block,
 			 uint8_t * dest, int stride);
@@ -295,8 +297,10 @@
 
 extern mpeg2_mc_t mpeg2_mc_c;
 extern mpeg2_mc_t mpeg2_mc_mmx;
+#ifndef __BEOS__
 extern mpeg2_mc_t mpeg2_mc_mmxext;
 extern mpeg2_mc_t mpeg2_mc_3dnow;
+#endif
 extern mpeg2_mc_t mpeg2_mc_altivec;
 extern mpeg2_mc_t mpeg2_mc_alpha;
 extern mpeg2_mc_t mpeg2_mc_vis;
