lsws: duplicate ff_log2_tab
[ffmpeg.git] / libswresample / resample_dsp.c
index a48a5a9..a811b8b 100644 (file)
@@ -27,8 +27,6 @@
 
 #include "resample.h"
 
-#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) resample_common_int16;
-    c->dsp.resample_common[FNIDX(S32P)] = (resample_fn) resample_common_int32;
-    c->dsp.resample_common[FNIDX(FLTP)] = (resample_fn) resample_common_float;
-    c->dsp.resample_common[FNIDX(DBLP)] = (resample_fn) resample_common_double;
-
-    c->dsp.resample_linear[FNIDX(S16P)] = (resample_fn) resample_linear_int16;
-    c->dsp.resample_linear[FNIDX(S32P)] = (resample_fn) resample_linear_int32;
-    c->dsp.resample_linear[FNIDX(FLTP)] = (resample_fn) resample_linear_float;
-    c->dsp.resample_linear[FNIDX(DBLP)] = (resample_fn) 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);
 }