[pulseaudio-discuss] [PATCH 14/18] resampler: Add a choose_auto_resampler function
poljar (Damir Jelić)
poljarinho at gmail.com
Mon Jul 15 06:48:36 PDT 2013
This function returns our preferred resampler if the user choose the
auto (or if he has chosen an unsupported) resampler.
---
src/pulsecore/resampler.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/src/pulsecore/resampler.c b/src/pulsecore/resampler.c
index c4434ff..eb1ee6c 100644
--- a/src/pulsecore/resampler.c
+++ b/src/pulsecore/resampler.c
@@ -182,6 +182,19 @@ static pa_resampler_implementation *impl_table[] = {
[PA_RESAMPLER_PEAKS] = &peaks_impl,
};
+static pa_resample_method_t choose_auto_resampler(pa_resample_flags_t flags) {
+ pa_resample_method_t method;
+
+ if (pa_resample_method_supported(PA_RESAMPLER_SPEEX_FLOAT_BASE + 1))
+ method = PA_RESAMPLER_SPEEX_FLOAT_BASE + 1;
+ else if (flags & PA_RESAMPLER_VARIABLE_RATE)
+ method = PA_RESAMPLER_TRIVIAL;
+ else
+ method = PA_RESAMPLER_FFMPEG;
+
+ return method;
+}
+
static pa_resample_method_t pa_resampler_fix_method(
pa_resample_flags_t flags,
pa_resample_method_t method,
@@ -225,16 +238,8 @@ static pa_resample_method_t pa_resampler_fix_method(
break;
}
- if (method == PA_RESAMPLER_AUTO) {
-#ifdef HAVE_SPEEX
- method = PA_RESAMPLER_SPEEX_FLOAT_BASE + 1;
-#else
- if (flags & PA_RESAMPLER_VARIABLE_RATE)
- method = PA_RESAMPLER_TRIVIAL;
- else
- method = PA_RESAMPLER_FFMPEG;
-#endif
- }
+ if (method == PA_RESAMPLER_AUTO)
+ method = choose_auto_resampler(flags);
return method;
}
--
1.8.3.2
More information about the pulseaudio-discuss
mailing list