mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-22 06:59:54 -05:00
core: Add ARM NEON optimized sample conversion code
final: * includes some minor style fixes and build-time changes to allow building a single binary for neon and non-neon systems v4: * fix for sample length < 4 v3: * convert from intrinsics to inline assembly v2: * load and store data with vld1/vld1q and vst1/vst1q, resp., to work around alignment issues of compiler-generated vldmia instruction * remove redundant check for NEON flags Ubuntu/Linaro gcc 4.6.3 arm-linux-gnueabi-gcc -O2 -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon runtime on beagle-xm: D: [pulseaudio] sconv_neon.c: checking NEON sconv_s16le_from_float I: [pulseaudio] sconv_neon.c: NEON: 3754 usec. I: [pulseaudio] sconv_neon.c: ref: 58594 usec. D: [pulseaudio] sconv_neon.c: checking NEON sconv_s16le_to_float I: [pulseaudio] sconv_neon.c: NEON: 1831 usec. I: [pulseaudio] sconv_neon.c: ref: 10528 usec. I: [pulseaudio] sconv_neon.c: Initialising ARM NEON optimized conversions. conversion may be off by one for some samples due to rounding issues
This commit is contained in:
parent
4171df3019
commit
1319c4533a
6 changed files with 193 additions and 1 deletions
|
|
@ -813,6 +813,7 @@ libpulsedsp_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version -disable-static
|
|||
###################################
|
||||
|
||||
lib_LTLIBRARIES += libpulsecore-@PA_MAJORMINOR@.la
|
||||
noinst_LTLIBRARIES =
|
||||
|
||||
# Pure core stuff
|
||||
libpulsecore_@PA_MAJORMINOR@_la_SOURCES = \
|
||||
|
|
@ -870,6 +871,13 @@ libpulsecore_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(SERVER_CFLAGS) $(LIBSAMP
|
|||
libpulsecore_@PA_MAJORMINOR@_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
|
||||
libpulsecore_@PA_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) $(LIBSAMPLERATE_LIBS) $(LIBSPEEX_LIBS) $(LIBSNDFILE_LIBS) $(WINSOCK_LIBS) $(LTLIBICONV) libpulsecommon-@PA_MAJORMINOR@.la libpulse.la libpulsecore-foreign.la
|
||||
|
||||
if HAVE_NEON
|
||||
noinst_LTLIBRARIES += libpulsecore_sconv_neon.la
|
||||
libpulsecore_sconv_neon_la_SOURCES = pulsecore/sconv_neon.c
|
||||
libpulsecore_sconv_neon_la_CFLAGS = $(AM_CFLAGS) $(NEON_CFLAGS)
|
||||
libpulsecore_@PA_MAJORMINOR@_la_LIBADD += libpulsecore_sconv_neon.la
|
||||
endif
|
||||
|
||||
if HAVE_ORC
|
||||
ORC_SOURCE += pulsecore/svolume
|
||||
libpulsecore_@PA_MAJORMINOR@_la_SOURCES += pulsecore/svolume_orc.c
|
||||
|
|
@ -909,7 +917,7 @@ libpulsecore_@PA_MAJORMINOR@_la_SOURCES += pulsecore/database-simple.c
|
|||
endif
|
||||
|
||||
# We split the foreign code off to not be annoyed by warnings we don't care about
|
||||
noinst_LTLIBRARIES = libpulsecore-foreign.la
|
||||
noinst_LTLIBRARIES += libpulsecore-foreign.la
|
||||
|
||||
libpulsecore_foreign_la_SOURCES = \
|
||||
pulsecore/ffmpeg/resample2.c pulsecore/ffmpeg/avcodec.h pulsecore/ffmpeg/dsputil.h
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue