From 4cb83acddbe154312b74d2d63985ac1100bad7c5 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Mon, 28 Nov 2022 20:16:46 +0100 Subject: Initial --- lib/resample.h | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 lib/resample.h (limited to 'lib/resample.h') 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 */ +#pragma once + +#include "defs.h" +#include "filter.h" + +/* + Resampling function naming convention: + + lfr_resample__ + + 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); -- cgit v1.2.3-54-g00ecf