swr: add prototypes for resample dsp functions

Should fix compilation failures with MSVC and any other compiler
without inline asm support.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/76/merge
James Almer 11 years ago committed by Michael Niedermayer
parent 86a9370e2b
commit 7f4dfbd080
  1. 25
      libswresample/resample_dsp.c
  2. 4
      libswresample/resample_template.c
  3. 31
      libswresample/x86/resample_x86_dsp.c

@ -27,6 +27,15 @@
#include "resample.h" #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 DO_RESAMPLE_ONE 1
#define TEMPLATE_RESAMPLE_S16 #define TEMPLATE_RESAMPLE_S16
@ -55,15 +64,15 @@ void swresample_dsp_init(ResampleContext *c)
c->dsp.resample_one[FNIDX(FLTP)] = (resample_one_fn) resample_one_float; 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_one[FNIDX(DBLP)] = (resample_one_fn) resample_one_double;
c->dsp.resample_common[FNIDX(S16P)] = (resample_fn) resample_common_int16; c->dsp.resample_common[FNIDX(S16P)] = (resample_fn) swri_resample_common_int16;
c->dsp.resample_common[FNIDX(S32P)] = (resample_fn) resample_common_int32; c->dsp.resample_common[FNIDX(S32P)] = (resample_fn) swri_resample_common_int32;
c->dsp.resample_common[FNIDX(FLTP)] = (resample_fn) resample_common_float; c->dsp.resample_common[FNIDX(FLTP)] = (resample_fn) swri_resample_common_float;
c->dsp.resample_common[FNIDX(DBLP)] = (resample_fn) resample_common_double; c->dsp.resample_common[FNIDX(DBLP)] = (resample_fn) swri_resample_common_double;
c->dsp.resample_linear[FNIDX(S16P)] = (resample_fn) resample_linear_int16; c->dsp.resample_linear[FNIDX(S16P)] = (resample_fn) swri_resample_linear_int16;
c->dsp.resample_linear[FNIDX(S32P)] = (resample_fn) resample_linear_int32; c->dsp.resample_linear[FNIDX(S32P)] = (resample_fn) swri_resample_linear_int32;
c->dsp.resample_linear[FNIDX(FLTP)] = (resample_fn) resample_linear_float; c->dsp.resample_linear[FNIDX(FLTP)] = (resample_fn) swri_resample_linear_float;
c->dsp.resample_linear[FNIDX(DBLP)] = (resample_fn) resample_linear_double; c->dsp.resample_linear[FNIDX(DBLP)] = (resample_fn) swri_resample_linear_double;
if (ARCH_X86) swresample_dsp_x86_init(c); if (ARCH_X86) swresample_dsp_x86_init(c);
} }

@ -119,7 +119,7 @@ static void RENAME(resample_one)(DELEM *dst, const DELEM *src,
} }
#endif #endif
static int RENAME(resample_common)(ResampleContext *c, int RENAME(swri_resample_common)(ResampleContext *c,
DELEM *dst, const DELEM *src, DELEM *dst, const DELEM *src,
int n, int update_ctx) int n, int update_ctx)
{ {
@ -163,7 +163,7 @@ static int RENAME(resample_common)(ResampleContext *c,
return sample_index; return sample_index;
} }
static int RENAME(resample_linear)(ResampleContext *c, int RENAME(swri_resample_linear)(ResampleContext *c,
DELEM *dst, const DELEM *src, DELEM *dst, const DELEM *src,
int n, int update_ctx) int n, int update_ctx)
{ {

@ -27,6 +27,17 @@
#include "libswresample/resample.h" #include "libswresample/resample.h"
int swri_resample_common_int16_mmx2 (ResampleContext *c, int16_t *dst, const int16_t *src, int n, int update_ctx);
int swri_resample_linear_int16_mmx2 (ResampleContext *c, int16_t *dst, const int16_t *src, int n, int update_ctx);
int swri_resample_common_int16_sse2 (ResampleContext *c, int16_t *dst, const int16_t *src, int n, int update_ctx);
int swri_resample_linear_int16_sse2 (ResampleContext *c, int16_t *dst, const int16_t *src, int n, int update_ctx);
int swri_resample_common_float_sse (ResampleContext *c, float *dst, const float *src, int n, int update_ctx);
int swri_resample_linear_float_sse (ResampleContext *c, float *dst, const float *src, int n, int update_ctx);
int swri_resample_common_float_avx (ResampleContext *c, float *dst, const float *src, int n, int update_ctx);
int swri_resample_linear_float_avx (ResampleContext *c, float *dst, const float *src, int n, int update_ctx);
int swri_resample_common_double_sse2(ResampleContext *c, double *dst, const double *src, int n, int update_ctx);
int swri_resample_linear_double_sse2(ResampleContext *c, double *dst, const double *src, int n, int update_ctx);
#if HAVE_MMXEXT_INLINE #if HAVE_MMXEXT_INLINE
#define DO_RESAMPLE_ONE 0 #define DO_RESAMPLE_ONE 0
@ -69,21 +80,21 @@ void swresample_dsp_x86_init(ResampleContext *c)
#define FNIDX(fmt) (AV_SAMPLE_FMT_##fmt - AV_SAMPLE_FMT_S16P) #define FNIDX(fmt) (AV_SAMPLE_FMT_##fmt - AV_SAMPLE_FMT_S16P)
if (ARCH_X86_32 && HAVE_MMXEXT_INLINE && mm_flags & AV_CPU_FLAG_MMX2) { if (ARCH_X86_32 && HAVE_MMXEXT_INLINE && mm_flags & AV_CPU_FLAG_MMX2) {
c->dsp.resample_common[FNIDX(S16P)] = (resample_fn) resample_common_int16_mmx2; c->dsp.resample_common[FNIDX(S16P)] = (resample_fn) swri_resample_common_int16_mmx2;
c->dsp.resample_linear[FNIDX(S16P)] = (resample_fn) resample_linear_int16_mmx2; c->dsp.resample_linear[FNIDX(S16P)] = (resample_fn) swri_resample_linear_int16_mmx2;
} }
if (HAVE_SSE_INLINE && mm_flags & AV_CPU_FLAG_SSE) { if (HAVE_SSE_INLINE && mm_flags & AV_CPU_FLAG_SSE) {
c->dsp.resample_common[FNIDX(FLTP)] = (resample_fn) resample_common_float_sse; c->dsp.resample_common[FNIDX(FLTP)] = (resample_fn) swri_resample_common_float_sse;
c->dsp.resample_linear[FNIDX(FLTP)] = (resample_fn) resample_linear_float_sse; c->dsp.resample_linear[FNIDX(FLTP)] = (resample_fn) swri_resample_linear_float_sse;
} }
if (HAVE_SSE2_INLINE && mm_flags & AV_CPU_FLAG_SSE2) { if (HAVE_SSE2_INLINE && mm_flags & AV_CPU_FLAG_SSE2) {
c->dsp.resample_common[FNIDX(S16P)] = (resample_fn) resample_common_int16_sse2; c->dsp.resample_common[FNIDX(S16P)] = (resample_fn) swri_resample_common_int16_sse2;
c->dsp.resample_linear[FNIDX(S16P)] = (resample_fn) resample_linear_int16_sse2; c->dsp.resample_linear[FNIDX(S16P)] = (resample_fn) swri_resample_linear_int16_sse2;
c->dsp.resample_common[FNIDX(DBLP)] = (resample_fn) resample_common_double_sse2; c->dsp.resample_common[FNIDX(DBLP)] = (resample_fn) swri_resample_common_double_sse2;
c->dsp.resample_linear[FNIDX(DBLP)] = (resample_fn) resample_linear_double_sse2; c->dsp.resample_linear[FNIDX(DBLP)] = (resample_fn) swri_resample_linear_double_sse2;
} }
if (HAVE_AVX_INLINE && mm_flags & AV_CPU_FLAG_AVX) { if (HAVE_AVX_INLINE && mm_flags & AV_CPU_FLAG_AVX) {
c->dsp.resample_common[FNIDX(FLTP)] = (resample_fn) resample_common_float_avx; c->dsp.resample_common[FNIDX(FLTP)] = (resample_fn) swri_resample_common_float_avx;
c->dsp.resample_linear[FNIDX(FLTP)] = (resample_fn) resample_linear_float_avx; c->dsp.resample_linear[FNIDX(FLTP)] = (resample_fn) swri_resample_linear_float_avx;
} }
} }

Loading…
Cancel
Save