[FFmpeg-devel] [PATCH] Fix compilation without HAVE_AVX, HAVE_YASM etc.

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sat Jan 14 17:12:53 CET 2012


At the very least this should fix warnings about unused static
functions if one or more of these is not defined.
However even compilation might be broken if the compiler does
not optimize the function away completely.
This actually happens in case of the AVX function, since the
function pointer is used in an assignment that is not under
an #if and thus probably only optimized away after the function
was already marked as used.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
---
 libavcodec/x86/mpegaudiodec_mmx.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/libavcodec/x86/mpegaudiodec_mmx.c b/libavcodec/x86/mpegaudiodec_mmx.c
index b1fa657..b85b8a5 100644
--- a/libavcodec/x86/mpegaudiodec_mmx.c
+++ b/libavcodec/x86/mpegaudiodec_mmx.c
@@ -192,11 +192,17 @@ static void imdct36_blocks_ ## CPU1(float *out, float *buf, float *in,      \
     }                                                                   \
 }
 
+#if HAVE_YASM
+#if HAVE_SSE
 DECL_IMDCT_BLOCKS(sse,sse)
 DECL_IMDCT_BLOCKS(sse2,sse)
 DECL_IMDCT_BLOCKS(sse3,sse)
 DECL_IMDCT_BLOCKS(ssse3,sse)
+#endif
+#if HAVE_AVX
 DECL_IMDCT_BLOCKS(avx,avx)
+#endif
+#endif
 
 void ff_mpadsp_init_mmx(MPADSPContext *s)
 {
@@ -220,8 +226,11 @@ void ff_mpadsp_init_mmx(MPADSPContext *s)
         s->apply_window_float = apply_window_mp3;
     }
 #if HAVE_YASM
-    if (mm_flags & AV_CPU_FLAG_AVX && HAVE_AVX) {
+    if (0) {
+#if HAVE_AVX
+    } else if (mm_flags & AV_CPU_FLAG_AVX && HAVE_AVX) {
         s->imdct36_blocks_float = imdct36_blocks_avx;
+#endif
 #if HAVE_SSE
     } else if (mm_flags & AV_CPU_FLAG_SSSE3) {
         s->imdct36_blocks_float = imdct36_blocks_ssse3;
-- 
1.7.8.3



More information about the ffmpeg-devel mailing list