#include "resample.h"
-int swri_resample_common_int16 (ResampleContext *c, int16_t *dst, const int16_t *src, int n, int update_ctx);
-int swri_resample_common_int32 (ResampleContext *c, int32_t *dst, const int32_t *src, int n, int update_ctx);
-int swri_resample_common_float (ResampleContext *c, float *dst, const float *src, int n, int update_ctx);
-int swri_resample_common_double(ResampleContext *c, double *dst, const double *src, int n, int update_ctx);
-int swri_resample_linear_int16 (ResampleContext *c, int16_t *dst, const int16_t *src, int n, int update_ctx);
-int swri_resample_linear_int32 (ResampleContext *c, int32_t *dst, const int32_t *src, int n, int update_ctx);
-int swri_resample_linear_float (ResampleContext *c, float *dst, const float *src, int n, int update_ctx);
-int swri_resample_linear_double(ResampleContext *c, double *dst, const double *src, int n, int update_ctx);
-
-#define DO_RESAMPLE_ONE 1
-
#define TEMPLATE_RESAMPLE_S16
#include "resample_template.c"
#undef TEMPLATE_RESAMPLE_S16
#include "resample_template.c"
#undef TEMPLATE_RESAMPLE_DBL
-#undef DO_RESAMPLE_ONE
-
-void swresample_dsp_init(ResampleContext *c)
+void swri_resample_dsp_init(ResampleContext *c)
{
-#define FNIDX(fmt) (AV_SAMPLE_FMT_##fmt - AV_SAMPLE_FMT_S16P)
- c->dsp.resample_one[FNIDX(S16P)] = (resample_one_fn) resample_one_int16;
- c->dsp.resample_one[FNIDX(S32P)] = (resample_one_fn) resample_one_int32;
- c->dsp.resample_one[FNIDX(FLTP)] = (resample_one_fn) resample_one_float;
- c->dsp.resample_one[FNIDX(DBLP)] = (resample_one_fn) resample_one_double;
-
- c->dsp.resample_common[FNIDX(S16P)] = (resample_fn) swri_resample_common_int16;
- c->dsp.resample_common[FNIDX(S32P)] = (resample_fn) swri_resample_common_int32;
- c->dsp.resample_common[FNIDX(FLTP)] = (resample_fn) swri_resample_common_float;
- c->dsp.resample_common[FNIDX(DBLP)] = (resample_fn) swri_resample_common_double;
-
- c->dsp.resample_linear[FNIDX(S16P)] = (resample_fn) swri_resample_linear_int16;
- c->dsp.resample_linear[FNIDX(S32P)] = (resample_fn) swri_resample_linear_int32;
- c->dsp.resample_linear[FNIDX(FLTP)] = (resample_fn) swri_resample_linear_float;
- c->dsp.resample_linear[FNIDX(DBLP)] = (resample_fn) swri_resample_linear_double;
+ switch(c->format){
+ case AV_SAMPLE_FMT_S16P:
+ c->dsp.resample_one = resample_one_int16;
+ c->dsp.resample = c->linear ? resample_linear_int16 : resample_common_int16;
+ break;
+ case AV_SAMPLE_FMT_S32P:
+ c->dsp.resample_one = resample_one_int32;
+ c->dsp.resample = c->linear ? resample_linear_int32 : resample_common_int32;
+ break;
+ case AV_SAMPLE_FMT_FLTP:
+ c->dsp.resample_one = resample_one_float;
+ c->dsp.resample = c->linear ? resample_linear_float : resample_common_float;
+ break;
+ case AV_SAMPLE_FMT_DBLP:
+ c->dsp.resample_one = resample_one_double;
+ c->dsp.resample = c->linear ? resample_linear_double : resample_common_double;
+ break;
+ }
- if (ARCH_X86) swresample_dsp_x86_init(c);
+ if (ARCH_X86) swri_resample_dsp_x86_init(c);
}