diff options
Diffstat (limited to 'polyp/resampler.h')
-rw-r--r-- | polyp/resampler.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/polyp/resampler.h b/polyp/resampler.h index 08fad809..0109e790 100644 --- a/polyp/resampler.h +++ b/polyp/resampler.h @@ -22,18 +22,44 @@ USA. ***/ +#include <samplerate.h> + #include "sample.h" #include "memblock.h" #include "memchunk.h" struct pa_resampler; +enum pa_resample_method { + PA_RESAMPLER_INVALID = -1, + PA_RESAMPLER_SRC_SINC_BEST_QUALITY = SRC_SINC_BEST_QUALITY, + PA_RESAMPLER_SRC_SINC_MEDIUM_QUALITY = SRC_SINC_MEDIUM_QUALITY, + PA_RESAMPLER_SRC_SINC_FASTEST = SRC_SINC_FASTEST, + PA_RESAMPLER_SRC_ZERO_ORDER_HOLD = SRC_ZERO_ORDER_HOLD, + PA_RESAMPLER_SRC_LINEAR = SRC_LINEAR, + PA_RESAMPLER_TRIVIAL, + PA_RESAMPLER_MAX +}; + struct pa_resampler* pa_resampler_new(const struct pa_sample_spec *a, const struct pa_sample_spec *b, struct pa_memblock_stat *s, int resample_method); void pa_resampler_free(struct pa_resampler *r); +/* Returns the size of an input memory block which is required to return the specified amount of output data */ size_t pa_resampler_request(struct pa_resampler *r, size_t out_length); + +/* Pass the specified memory chunk to the resampler and return the newly resampled data */ void pa_resampler_run(struct pa_resampler *r, const struct pa_memchunk *in, struct pa_memchunk *out); +/* Change the input rate of the resampler object */ void pa_resampler_set_input_rate(struct pa_resampler *r, uint32_t rate); +/* Return the resampling method of the resampler object */ +enum pa_resample_method pa_resampler_get_method(struct pa_resampler *r); + +/* Try to parse the resampler method */ +enum pa_resample_method pa_parse_resample_method(const char *string); + +/* return a human readable string for the specified resampling method. Inverse of pa_parse_resample_method() */ +const char *pa_resample_method_to_string(enum pa_resample_method m); + #endif |