aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2011-10-08 12:40:03 +0200
committerMax Kellermann <max@duempel.org>2011-10-08 13:32:29 +0200
commit14424281a0e1407ca04ef05a50541a4178f70e91 (patch)
tree1e499d063b925ac2dff0ef27db253ba42ba04367
parent2b3fd0d4d34be365e44fd53b3bf3c72f8b0a69ea (diff)
pcm_resample: add internal function _lsr_init()
Let the libsamplerate code initialize itself.
-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 ce75325a..d4b117c5 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 79c2f517..b4d9d010 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 d8e0ba5a..ea75df34 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 769f904c..a71659d5 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)