diff options
| author | Markus Mittendrein <maxmitti@maxmitti.tk> | 2022-11-28 20:16:46 +0100 |
|---|---|---|
| committer | Markus Mittendrein <maxmitti@maxmitti.tk> | 2022-11-28 20:16:46 +0100 |
| commit | 4cb83acddbe154312b74d2d63985ac1100bad7c5 (patch) | |
| tree | d49dc904acc9af57acca8864fb6a40e340accacc /lib/resample.h | |
| download | fresample-4cb83acddbe154312b74d2d63985ac1100bad7c5.tar.gz fresample-4cb83acddbe154312b74d2d63985ac1100bad7c5.zip | |
Diffstat (limited to 'lib/resample.h')
| -rw-r--r-- | lib/resample.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/lib/resample.h b/lib/resample.h new file mode 100644 index 0000000..0ae8856 --- /dev/null +++ b/lib/resample.h @@ -0,0 +1,84 @@ +/* Copyright 2012 Dietrich Epp <depp@zdome.net> */ +#pragma once + +#include "defs.h" +#include "filter.h" + +/* + Resampling function naming convention: + + lfr_resample_<atype><nchan><ftype>_<feature> + + atype: audio data type, s16 or f32 + nchan: number of channels, n1 or n2 + ftype: filter coefficient type, s16 or f32 + + feature: CPU feature set required +*/ + +/* ======================================== */ + +void lfr_resample_s16n1s16_scalar( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +void lfr_resample_s16n1s16_sse2( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +void lfr_resample_s16n1s16_altivec( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +/* ======================================== */ + +void lfr_resample_s16n2s16_scalar( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +void lfr_resample_s16n2s16_sse2( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +void lfr_resample_s16n2s16_altivec( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +/* ======================================== */ + +void lfr_resample_s16n1f32_scalar( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +void lfr_resample_s16n1f32_sse2( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +void lfr_resample_s16n1f32_altivec( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +/* ======================================== */ + +void lfr_resample_s16n2f32_scalar( lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +void lfr_resample_s16n2f32_sse2( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); + +void lfr_resample_s16n2f32_altivec( + lfr_fixed_t *pos, lfr_fixed_t inv_ratio, unsigned *dither, + void *out, int outlen, const void *in, int inlen, + const lfr_filter *filter); |
