[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