]> code.delx.au - pulseaudio/blobdiff - polyp/resampler.h
* add µlaw/alaw support
[pulseaudio] / polyp / resampler.h
index 08fad8093046701575d0367a0d7690d58b7e59dd..0109e79085a4da94e10dbea4cc08c7112dd8a1ff 100644 (file)
   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