]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/resampler.h
core: make sure win32 sockets remain blocking
[pulseaudio] / src / pulsecore / resampler.h
index 87110cc2dd90d5527e6007d205ff929332d494f3..058a8002b19d304b91d60ac7d099583d0871b954 100644 (file)
@@ -8,7 +8,7 @@
 
   PulseAudio is free software; you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published
 
   PulseAudio is free software; you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published
-  by the Free Software Foundation; either version 2 of the License,
+  by the Free Software Foundation; either version 2.1 of the License,
   or (at your option) any later version.
 
   PulseAudio is distributed in the hope that it will be useful, but
   or (at your option) any later version.
 
   PulseAudio is distributed in the hope that it will be useful, but
 #include <pulsecore/memchunk.h>
 
 typedef struct pa_resampler pa_resampler;
 #include <pulsecore/memchunk.h>
 
 typedef struct pa_resampler pa_resampler;
+typedef struct pa_resampler_impl pa_resampler_impl;
+
+struct pa_resampler_impl {
+    void (*free)(pa_resampler *r);
+    void (*update_rates)(pa_resampler *r);
+
+    /* Returns the number of leftover frames in the input buffer. */
+    unsigned (*resample)(pa_resampler *r, const pa_memchunk *in, unsigned in_n_frames, pa_memchunk *out, unsigned *out_n_frames);
+
+    void (*reset)(pa_resampler *r);
+    void *data;
+};
 
 typedef enum pa_resample_method {
     PA_RESAMPLER_INVALID                 = -1,
 
 typedef enum pa_resample_method {
     PA_RESAMPLER_INVALID                 = -1,
@@ -99,5 +111,9 @@ const char *pa_resample_method_to_string(pa_resample_method_t m);
 /* Return 1 when the specified resampling method is supported */
 int pa_resample_method_supported(pa_resample_method_t m);
 
 /* Return 1 when the specified resampling method is supported */
 int pa_resample_method_supported(pa_resample_method_t m);
 
+const pa_channel_map* pa_resampler_input_channel_map(pa_resampler *r);
+const pa_sample_spec* pa_resampler_input_sample_spec(pa_resampler *r);
+const pa_channel_map* pa_resampler_output_channel_map(pa_resampler *r);
+const pa_sample_spec* pa_resampler_output_sample_spec(pa_resampler *r);
 
 #endif
 
 #endif