|
@@ -25,6 +25,35 @@
|
|
|
#include "internal.h"
|
|
|
#include "audio_data.h"
|
|
|
|
|
|
+struct ResampleContext {
|
|
|
+ AVAudioResampleContext *avr;
|
|
|
+ AudioData *buffer;
|
|
|
+ uint8_t *filter_bank;
|
|
|
+ int filter_length;
|
|
|
+ int ideal_dst_incr;
|
|
|
+ int dst_incr;
|
|
|
+ unsigned int index;
|
|
|
+ int frac;
|
|
|
+ int src_incr;
|
|
|
+ int compensation_distance;
|
|
|
+ int phase_shift;
|
|
|
+ int phase_mask;
|
|
|
+ int linear;
|
|
|
+ enum AVResampleFilterType filter_type;
|
|
|
+ int kaiser_beta;
|
|
|
+ void (*set_filter)(void *filter, double *tab, int phase, int tap_count);
|
|
|
+ void (*resample_one)(struct ResampleContext *c, void *dst0,
|
|
|
+ int dst_index, const void *src0,
|
|
|
+ unsigned int index, int frac);
|
|
|
+ void (*resample_nearest)(void *dst0, int dst_index,
|
|
|
+ const void *src0, unsigned int index);
|
|
|
+ int padding_size;
|
|
|
+ int initial_padding_filled;
|
|
|
+ int initial_padding_samples;
|
|
|
+ int final_padding_filled;
|
|
|
+ int final_padding_samples;
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
* Allocate and initialize a ResampleContext.
|
|
|
*
|