swr: Update version & APIChanges for swr_build_matrix()
[ffmpeg.git] / libswresample / resample.h
index b159c7b..7fe9b97 100644 (file)
 
 #include "swresample_internal.h"
 
-typedef void (*resample_one_fn)(uint8_t *dst, const uint8_t *src,
-                                int n, int64_t index, int64_t incr);
-typedef int (*resample_fn)(struct ResampleContext *c, uint8_t *dst,
-                           const uint8_t *src, int n, int update_ctx);
-
 typedef struct ResampleContext {
     const AVClass *av_class;
     uint8_t *filter_bank;
@@ -39,28 +34,32 @@ typedef struct ResampleContext {
     int filter_alloc;
     int ideal_dst_incr;
     int dst_incr;
+    int dst_incr_div;
+    int dst_incr_mod;
     int index;
     int frac;
     int src_incr;
     int compensation_distance;
-    int phase_shift;
-    int phase_mask;
+    int phase_count;
     int linear;
     enum SwrFilterType filter_type;
-    int kaiser_beta;
+    double kaiser_beta;
     double factor;
     enum AVSampleFormat format;
     int felem_size;
     int filter_shift;
+    int phase_count_compensation;      /* desired phase_count when compensation is enabled */
 
     struct {
-        resample_one_fn resample_one[AV_SAMPLE_FMT_NB - AV_SAMPLE_FMT_S16P];
-        resample_fn resample_common[AV_SAMPLE_FMT_NB - AV_SAMPLE_FMT_S16P];
-        resample_fn resample_linear[AV_SAMPLE_FMT_NB - AV_SAMPLE_FMT_S16P];
+        void (*resample_one)(void *dst, const void *src,
+                             int n, int64_t index, int64_t incr);
+        int (*resample)(struct ResampleContext *c, void *dst,
+                        const void *src, int n, int update_ctx);
     } dsp;
 } ResampleContext;
 
-void swresample_dsp_init(ResampleContext *c);
-void swresample_dsp_x86_init(ResampleContext *c);
+void swri_resample_dsp_init(ResampleContext *c);
+void swri_resample_dsp_x86_init(ResampleContext *c);
+void swri_resample_dsp_arm_init(ResampleContext *c);
 
 #endif /* SWRESAMPLE_RESAMPLE_H */