Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
TPF
jack2
Commits
8c50f67f
Commit
8c50f67f
authored
Feb 25, 2016
by
falkTX
Browse files
Use ARM neon intrinsics for AudioBufferMixdown
parent
51f92388
Changes
1
Hide whitespace changes
Inline
Side-by-side
common/JackAudioPort.cpp
View file @
8c50f67f
...
...
@@ -28,6 +28,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include
<Accelerate/Accelerate.h>
#elif defined (__SSE__) && !defined (__sun__)
#include
<xmmintrin.h>
#elif defined (__ARM_NEON__)
#include
<arm_neon.h>
#endif
namespace
Jack
...
...
@@ -51,6 +53,13 @@ static inline void MixAudioBuffer(jack_default_audio_sample_t* mixbuffer, jack_d
__m128
vec
=
_mm_add_ps
(
_mm_load_ps
(
mixbuffer
),
_mm_load_ps
(
buffer
));
_mm_store_ps
(
mixbuffer
,
vec
);
mixbuffer
+=
4
;
buffer
+=
4
;
frames_group
--
;
#elif defined (__ARM_NEON__)
float32x4_t
vec
=
vaddq_f32
(
vld1q_f32
(
mixbuffer
),
vld1q_f32
(
buffer
));
vst1q_f32
(
mixbuffer
,
vec
);
mixbuffer
+=
4
;
buffer
+=
4
;
frames_group
--
;
...
...
@@ -116,7 +125,24 @@ static void AudioBufferMixdown(void* mixbuffer, void** src_buffers, int src_coun
for
(
jack_nframes_t
i
=
0
;
i
!=
remaining_frames
;
++
i
)
{
target
[
i
]
=
source
[
i
];
}
#elif defined (__ARM_NEON__)
jack_nframes_t
frames_group
=
nframes
/
4
;
jack_nframes_t
remaining_frames
=
nframes
%
4
;
jack_default_audio_sample_t
*
source
=
static_cast
<
jack_default_audio_sample_t
*>
(
src_buffers
[
0
]);
jack_default_audio_sample_t
*
target
=
static_cast
<
jack_default_audio_sample_t
*>
(
mixbuffer
);
while
(
frames_group
>
0
)
{
float32x4_t
vec
=
vld1q_f32
(
source
);
vst1q_f32
(
target
,
vec
);
source
+=
4
;
target
+=
4
;
--
frames_group
;
}
for
(
jack_nframes_t
i
=
0
;
i
!=
remaining_frames
;
++
i
)
{
target
[
i
]
=
source
[
i
];
}
#else
memcpy
(
mixbuffer
,
src_buffers
[
0
],
nframes
*
sizeof
(
jack_default_audio_sample_t
));
#endif
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment