[MPlayer-dev-eng] [PATCH] fix compilation failure with MMX

Mikulas Patocka mikulas at twibright.com
Sat May 7 12:59:15 CEST 2016


Hi

The file libmpcodecs/vf_fspp.c doesn't compile if HAVE_MMX_INLINE is true 
and HAVE_MMXEXT_INLINE is false (i.e. on Pentium MMX, Pentium 2 or K6 
processors).

It fails with these errors:
libmpcodecs/vf_fspp.c: In function 'column_fidct_c':
libmpcodecs/vf_fspp.c:750:5: error: unknown type name 'int_simd16_t'
libmpcodecs/vf_fspp.c:751:5: error: unknown type name 'int_simd16_t'
libmpcodecs/vf_fspp.c:752:5: error: unknown type name 'int_simd16_t'
libmpcodecs/vf_fspp.c:753:5: error: unknown type name 'int_simd16_t'
libmpcodecs/vf_fspp.c:789:18: error: 'FIX_0_707106781' undeclared (first use in this function)
libmpcodecs/vf_fspp.c:789:18: note: each undeclared identifier is reported only once for each function it appears in
libmpcodecs/vf_fspp.c:804:21: error: 'FIX_1_414213562_A' undeclared (first use in this function)
libmpcodecs/vf_fspp.c:817:18: error: 'FIX_0_382683433' undeclared (first use in this function)
libmpcodecs/vf_fspp.c:818:18: error: 'FIX_0_541196100' undeclared (first use in this function)
libmpcodecs/vf_fspp.c:819:18: error: 'FIX_1_306562965' undeclared (first use in this function)
libmpcodecs/vf_fspp.c:844:21: error: 'FIX_1_414213562' undeclared (first use in this function)
libmpcodecs/vf_fspp.c:845:21: error: 'FIX_1_847759065' undeclared (first use in this function)
libmpcodecs/vf_fspp.c:846:21: error: 'FIX_1_082392200' undeclared (first use in this function)
libmpcodecs/vf_fspp.c:847:21: error: 'FIX_2_613125930' undeclared (first use in this function)
libmpcodecs/vf_fspp.c: At top level:
libmpcodecs/vf_fspp.c:396:13: warning: 'column_fidct_mmx' used but never defined [enabled by default]
libmpcodecs/vf_fspp.c:748:13: warning: 'column_fidct_c' defined but not used [-Wunused-function]

This patch fixes it.

Mikulas

---
 libmpcodecs/vf_fspp.c |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

Index: mplayer/libmpcodecs/vf_fspp.c
===================================================================
--- mplayer.orig/libmpcodecs/vf_fspp.c	2016-04-28 20:30:50.000000000 +0200
+++ mplayer/libmpcodecs/vf_fspp.c	2016-04-29 12:52:13.000000000 +0200
@@ -173,7 +173,6 @@ static void row_fdct_c(int16_t *data, co
 #define store_slice_s store_slice_c
 #define store_slice2_s store_slice2_c
 #define mul_thrmat_s mul_thrmat_c
-#define column_fidct_s column_fidct_c
 #define row_idct_s row_idct_c
 #define row_fdct_s row_fdct_c
 
@@ -393,7 +392,6 @@ static void mul_thrmat_mmx(struct vf_pri
         );
 }
 
-static void column_fidct_mmx(int16_t* thr_adr,  int16_t *data,  int16_t *output,  int cnt);
 static void row_idct_mmx(int16_t* workspace,
                          int16_t* output_adr,  int output_stride,  int cnt);
 static void row_fdct_mmx(int16_t *data,  const uint8_t *pixels,  int line_size,  int cnt);
@@ -401,11 +399,18 @@ static void row_fdct_mmx(int16_t *data,
 #define store_slice_s store_slice_mmx
 #define store_slice2_s store_slice2_mmx
 #define mul_thrmat_s mul_thrmat_mmx
-#define column_fidct_s column_fidct_mmx
 #define row_idct_s row_idct_mmx
 #define row_fdct_s row_fdct_mmx
 #endif // HAVE_MMX_INLINE
 
+#if !HAVE_MMXEXT_INLINE
+static void column_fidct_c(int16_t* thr_adr,  int16_t *data,  int16_t *output,  int cnt);
+#define column_fidct_s column_fidct_c
+#else
+static void column_fidct_mmx(int16_t* thr_adr,  int16_t *data,  int16_t *output,  int cnt);
+#define column_fidct_s column_fidct_mmx
+#endif
+
 static void filter(struct vf_priv_s *p, uint8_t *dst, uint8_t *src,
                    int dst_stride, int src_stride,
                    int width, int height,
@@ -728,7 +733,9 @@ DECLARE_ASM_CONST(8, uint64_t, MM_FIX_0_
 DECLARE_ASM_CONST(8, uint64_t, MM_DESCALE_RND)=C64(4);
 DECLARE_ASM_CONST(8, uint64_t, MM_2)=C64(2);
 
-#else /* !HAVE_MMXEXT_INLINE */
+#endif /* !HAVE_MMX_INLINE */
+
+#if !HAVE_MMX_INLINE || !HAVE_MMXEXT_INLINE
 
 typedef int32_t int_simd16_t;
 static const int16_t FIX_0_382683433=FIX(0.382683433, 14);


More information about the MPlayer-dev-eng mailing list