])
AS_IF([test "${enable_neon}" != "no"], [
AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
+ CFLAGS="${CFLAGS_save} -mfpu=neon"
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM(,[[asm volatile("vqmovun.s64 d0, q1":::"d0");]])
], [
- ac_cv_neon_inline="yes"
+ ac_cv_neon_inline="-mfpu=neon"
], [
ac_cv_neon_inline="no"
])
])
+ ARM_NEON_CFLAGS="$ac_cv_neon_inline"
+], [
+ ac_cv_neon_inline="no"
])
-AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_neon_inline}" = "yes"])
+AC_SUBST(ARM_NEON_CFLAGS)
+AM_CONDITIONAL(HAVE_ARM_NEON, [test "${ac_cv_neon_inline}" != "no"])
+
AC_ARG_ENABLE(altivec,
[ --disable-altivec disable AltiVec optimizations (default auto)],, [
modules/3dnow/Makefile
modules/sse2/Makefile
modules/altivec/Makefile
+ modules/arm_neon/Makefile
])
dnl Generate makefiles
sse2 \
3dnow \
altivec \
+ arm_neon \
$(NULL)
SUBDIRS = $(BASE_SUBDIRS)
if HAVE_ALTIVEC
SUBDIRS += altivec
endif
+if HAVE_ARM_NEON
+SUBDIRS += arm_neon
+endif
dist_noinst_SCRIPTS = genmf list.sh
dist_noinst_DATA = LIST
--- /dev/null
+Makefile.am
--- /dev/null
+AM_CFLAGS += $(ARM_NEON_CFLAGS)
+
+libaudio_format_neon_plugin_la_SOURCES = \
+ s32_s16.S \
+ audio_format.c
+libaudio_format_neon_plugin_la_CFLAGS = $(AM_CFLAGS)
+libaudio_format_neon_plugin_la_LIBADD = $(AM_LIBADD)
+libaudio_format_neon_plugin_la_DEPENDENCIES =
+
+libi420_yuy2_neon_plugin_la_SOURCES = \
+ i420_yuy2.S \
+ i420_yuy2.c
+libi420_yuy2_neon_plugin_la_CFLAGS = $(AM_CFLAGS)
+libi420_yuy2_neon_plugin_la_LIBADD = $(AM_LIBADD)
+libi420_yuy2_neon_plugin_la_DEPENDENCIES =
+
+libvlc_LTLIBRARIES += \
+ libaudio_format_neon_plugin.la \
+ libi420_yuy2_neon_plugin.la \
+ $(NULL)
/*****************************************************************************
- * arm_neon.c: NEON assembly optimized audio conversions
+ * audio_format.c: NEON assembly optimized audio conversions
*****************************************************************************
* Copyright (C) 2009 Rémi Denis-Courmont
*
#include <vlc_plugin.h>
#include <vlc_aout.h>
#include <vlc_filter.h>
-#include <vlc_cpu.h>
#include <assert.h>
set_description (N_("ARM NEON audio format conversions") )
set_capability ("audio filter", 20)
set_callbacks (Open, NULL)
- add_requirement (NEON)
vlc_module_end ()
static block_t *Do_F32_S32 (filter_t *, block_t *);
/*****************************************************************************
- * neon.c : ARM NEONv1 chroma conversion module for VLC
+ * i420_yuy2.c : ARM NEONv1 YUV 4:2:0 to YUV :2:2 chroma conversion for VLC
*****************************************************************************
* Copyright (C) 2009 Rémi Denis-Courmont
*
SOURCES_converter_fixed = fixed.c
SOURCES_converter_float = float.c
-SOURCES_converter_neon = \
- neon_s32_s16.S \
- neon.c
SOURCES_a52tospdif = a52tospdif.c
SOURCES_a52tofloat32 = a52tofloat32.c
SOURCES_dtstospdif = dtstospdif.c
libconverter_fixed_plugin.la \
libconverter_float_plugin.la \
$(NULL)
-if HAVE_NEON
-libvlc_LTLIBRARIES += libconverter_neon_plugin.la
-endif
libi420_rgb_plugin.la \
libgrey_yuv_plugin.la \
$(NULL)
-
-libchroma_neon_plugin_la_SOURCES = \
- i420_yuyv_neon.S \
- neon.c
-libchroma_neon_plugin_la_CFLAGS = $(AM_CFLAGS)
-libchroma_neon_plugin_la_LIBADD = $(AM_LIBADD)
-libchroma_neon_plugin_la_DEPENDENCIES =
-if HAVE_NEON
-libvlc_LTLIBRARIES += libchroma_neon_plugin.la
-endif
modules/access_output/shout.c
modules/access_output/udp.c
modules/altivec/memcpy.c
+modules/arm_neon/audio_format.c
+modules/arm_neon/i420_yuy2.c
modules/audio_filter/channel_mixer/dolby.c
modules/audio_filter/channel_mixer/headphone.c
modules/audio_filter/channel_mixer/mono.c
modules/audio_filter/converter/float.c
modules/audio_filter/converter/format.c
modules/audio_filter/converter/mpgatofixed32.c
-modules/audio_filter/converter/neon.c
modules/audio_filter/equalizer.c
modules/audio_filter/equalizer_presets.h
modules/audio_filter/normvol.c
modules/video_chroma/i422_i420.c
modules/video_chroma/i422_yuy2.c
modules/video_chroma/i422_yuy2.h
-modules/video_chroma/neon.c
modules/video_chroma/yuy2_i420.c
modules/video_chroma/yuy2_i422.c
modules/video_filter/adjust.c