27 #if defined(CONFIG_RESAMPLE_DBL)
28 #define SET_TYPE(func) func ## _dbl
32 #define OUT(d, v) d = v
33 #define DBL_TO_FELEM(d, v) d = v
34 #elif defined(CONFIG_RESAMPLE_FLT)
35 #define SET_TYPE(func) func ## _flt
39 #define OUT(d, v) d = v
40 #define DBL_TO_FELEM(d, v) d = v
41 #elif defined(CONFIG_RESAMPLE_S32)
42 #define SET_TYPE(func) func ## _s32
44 #define FELEM2 int64_t
45 #define FELEML int64_t
46 #define OUT(d, v) d = av_clipl_int32((v + (1 << 29)) >> 30)
47 #define DBL_TO_FELEM(d, v) d = av_clipl_int32(llrint(v * (1 << 30)));
49 #define SET_TYPE(func) func ## _s16
51 #define FELEM2 int32_t
52 #define FELEML int64_t
53 #define OUT(d, v) d = av_clip_int16((v + (1 << 14)) >> 15)
54 #define DBL_TO_FELEM(d, v) d = av_clip_int16(lrint(v * (1 << 15)))
65 const void *
src0,
unsigned int index,
int frac)
70 unsigned int sample_index =
index >>
c->phase_shift;
73 c->filter_length * (
index &
c->phase_mask);
76 for (
i = 0;
i <
c->filter_length;
i++) {
86 void *dst0,
int dst_index,
const void *
src0,
87 unsigned int index,
int frac)
92 unsigned int sample_index =
index >>
c->phase_shift;
95 c->filter_length * (
index &
c->phase_mask);
97 for (
i = 0;
i <
c->filter_length;
i++)
108 for (
i = 0;
i < tap_count;
i++) {
static double val(void *priv, double ch)
static av_always_inline void filter(int16_t *output, ptrdiff_t out_stride, const int16_t *low, ptrdiff_t low_stride, const int16_t *high, ptrdiff_t high_stride, int len, int clip)
common internal and external API header
static void filter0(SUINT32 *dst, const int32_t *src, int32_t coeff, ptrdiff_t len)
#define DBL_TO_FELEM(d, v)
static void SET_TYPE() resample_nearest(void *dst0, int dst_index, const void *src0, unsigned int index)
static void SET_TYPE() set_filter(void *filter0, double *tab, int phase, int tap_count)
static void SET_TYPE() resample_linear(ResampleContext *c, void *dst0, int dst_index, const void *src0, unsigned int index, int frac)
static void SET_TYPE() resample_one(ResampleContext *c, void *dst0, int dst_index, const void *src0, unsigned int index, int frac)
common internal API header
static const struct twinvq_data tab