aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pcm_resample.c12
-rw-r--r--src/pcm_resample_fallback.c6
-rw-r--r--src/pcm_resample_internal.h6
-rw-r--r--src/pcm_resample_libsamplerate.c10
4 files changed, 26 insertions, 8 deletions
diff --git a/src/pcm_resample.c b/src/pcm_resample.c
index ce75325a8..d4b117c56 100644
--- a/src/pcm_resample.c
+++ b/src/pcm_resample.c
@@ -58,16 +58,12 @@ pcm_resample_global_init(GError **error_r)
void pcm_resample_init(struct pcm_resample_state *state)
{
- memset(state, 0, sizeof(*state));
-
#ifdef HAVE_LIBSAMPLERATE
- if (pcm_resample_lsr_enabled()) {
- pcm_buffer_init(&state->in);
- pcm_buffer_init(&state->out);
- }
+ if (pcm_resample_lsr_enabled())
+ pcm_resample_lsr_init(state);
+ else
#endif
-
- pcm_buffer_init(&state->buffer);
+ pcm_resample_fallback_init(state);
}
void pcm_resample_deinit(struct pcm_resample_state *state)
diff --git a/src/pcm_resample_fallback.c b/src/pcm_resample_fallback.c
index 79c2f5176..b4d9d010f 100644
--- a/src/pcm_resample_fallback.c
+++ b/src/pcm_resample_fallback.c
@@ -23,6 +23,12 @@
#include <assert.h>
void
+pcm_resample_fallback_init(struct pcm_resample_state *state)
+{
+ pcm_buffer_init(&state->buffer);
+}
+
+void
pcm_resample_fallback_deinit(struct pcm_resample_state *state)
{
pcm_buffer_deinit(&state->buffer);
diff --git a/src/pcm_resample_internal.h b/src/pcm_resample_internal.h
index d8e0ba5a1..ea75df341 100644
--- a/src/pcm_resample_internal.h
+++ b/src/pcm_resample_internal.h
@@ -36,6 +36,9 @@ bool
pcm_resample_lsr_global_init(const char *converter, GError **error_r);
void
+pcm_resample_lsr_init(struct pcm_resample_state *state);
+
+void
pcm_resample_lsr_deinit(struct pcm_resample_state *state);
const int16_t *
@@ -58,6 +61,9 @@ pcm_resample_lsr_32(struct pcm_resample_state *state,
#endif
void
+pcm_resample_fallback_init(struct pcm_resample_state *state);
+
+void
pcm_resample_fallback_deinit(struct pcm_resample_state *state);
const int16_t *
diff --git a/src/pcm_resample_libsamplerate.c b/src/pcm_resample_libsamplerate.c
index 769f904c1..a71659d51 100644
--- a/src/pcm_resample_libsamplerate.c
+++ b/src/pcm_resample_libsamplerate.c
@@ -84,6 +84,16 @@ pcm_resample_lsr_global_init(const char *converter, GError **error_r)
}
void
+pcm_resample_lsr_init(struct pcm_resample_state *state)
+{
+ memset(state, 0, sizeof(*state));
+
+ pcm_buffer_init(&state->in);
+ pcm_buffer_init(&state->out);
+ pcm_buffer_init(&state->buffer);
+}
+
+void
pcm_resample_lsr_deinit(struct pcm_resample_state *state)
{
if (state->state != NULL)