diff options
author | Timo Wischer <twischer@de.adit-jv.com> | 2018-11-20 17:02:28 +0100 |
---|---|---|
committer | Filipe Coelho <falktx@falktx.com> | 2019-01-17 00:56:39 +0100 |
commit | bb99e09b99ab2c71f9a91ca0fb8cbb996df5dbc6 (patch) | |
tree | a1da64c1bde34c97487d4e19d2ef9697c61ae695 | |
parent | b4ea23df6a16180a3d686cefffe7dd91fcbc9a27 (diff) | |
download | jack2-bb99e09b99ab2c71f9a91ca0fb8cbb996df5dbc6.tar.gz |
memops: Provide function for float to S32 conversion
Due to inlining and enabled optimization the compiler will not create
machine instructions for the if-clauses and left shift for
sample_move_dS_s32s() and sample_move_dS_s32().
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
-rw-r--r-- | common/memops.c | 10 | ||||
-rw-r--r-- | common/memops.h | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/common/memops.c b/common/memops.c index 266b7b8f..5648a96b 100644 --- a/common/memops.c +++ b/common/memops.c @@ -489,6 +489,11 @@ void sample_move_dS_s32u24s (jack_default_audio_sample_t *dst, char *src, unsign sample_move_dS_s32s_signext (dst, src, nsamples, src_skip, true); } +void sample_move_dS_s32s (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip) +{ + sample_move_dS_s32s_signext (dst, src, nsamples, src_skip, false); +} + static inline void sample_move_dS_s32_signext (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip, const bool do_signext) { @@ -574,6 +579,11 @@ void sample_move_dS_s32u24 (jack_default_audio_sample_t *dst, char *src, unsigne sample_move_dS_s32_signext (dst, src, nsamples, src_skip, true); } +void sample_move_dS_s32 (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip) +{ + sample_move_dS_s32_signext (dst, src, nsamples, src_skip, false); +} + void sample_move_d24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state) { diff --git a/common/memops.h b/common/memops.h index 93a619af..93ce457d 100644 --- a/common/memops.h +++ b/common/memops.h @@ -81,6 +81,8 @@ void sample_move_dither_tri_d16_sS (char *dst, jack_default_audio_sample_ void sample_move_dither_shaped_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state); void sample_move_dither_shaped_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state); +void sample_move_dS_s32s (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip); +void sample_move_dS_s32 (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip); void sample_move_dS_s32u24s (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip); void sample_move_dS_s32u24 (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip); void sample_move_dS_s24s (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip); |