mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-17 06:59:56 -05:00
add new API function pa_resample_method_supported() which tests whether a resampling method is supported. Fix building with libsamplerate enabled
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1757 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
5bc1221d40
commit
c9a0df3617
2 changed files with 24 additions and 0 deletions
|
|
@ -91,6 +91,9 @@ struct pa_resampler {
|
||||||
static int trivial_init(pa_resampler*r);
|
static int trivial_init(pa_resampler*r);
|
||||||
static int speex_init(pa_resampler*r);
|
static int speex_init(pa_resampler*r);
|
||||||
static int ffmpeg_init(pa_resampler*r);
|
static int ffmpeg_init(pa_resampler*r);
|
||||||
|
#ifdef HAVE_LIBSAMPLERATE
|
||||||
|
static int libsamplerate_init(pa_resampler*r);
|
||||||
|
#endif
|
||||||
|
|
||||||
static void calc_map_table(pa_resampler *r);
|
static void calc_map_table(pa_resampler *r);
|
||||||
|
|
||||||
|
|
@ -166,6 +169,11 @@ pa_resampler* pa_resampler_new(
|
||||||
|
|
||||||
/* Fix method */
|
/* Fix method */
|
||||||
|
|
||||||
|
if (!pa_resample_method_supported(resample_method)) {
|
||||||
|
pa_log_warn("Support for resampler '%s' not compiled in, reverting to 'auto'.", pa_resample_method_to_string(resample_method));
|
||||||
|
resample_method = PA_RESAMPLER_AUTO;
|
||||||
|
}
|
||||||
|
|
||||||
if (resample_method == PA_RESAMPLER_FFMPEG && variable_rate) {
|
if (resample_method == PA_RESAMPLER_FFMPEG && variable_rate) {
|
||||||
pa_log_info("Resampler 'ffmpeg' cannot do variable rate, reverting to resampler 'auto'." );
|
pa_log_info("Resampler 'ffmpeg' cannot do variable rate, reverting to resampler 'auto'." );
|
||||||
resample_method = PA_RESAMPLER_AUTO;
|
resample_method = PA_RESAMPLER_AUTO;
|
||||||
|
|
@ -360,6 +368,19 @@ const char *pa_resample_method_to_string(pa_resample_method_t m) {
|
||||||
return resample_methods[m];
|
return resample_methods[m];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int pa_resample_method_supported(pa_resample_method_t m) {
|
||||||
|
|
||||||
|
if (m < 0 || m >= PA_RESAMPLER_MAX)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
#ifndef HAVE_LIBSAMPLERATE
|
||||||
|
if (m <= PA_RESAMPLER_SRC_LINEAR)
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
pa_resample_method_t pa_parse_resample_method(const char *string) {
|
pa_resample_method_t pa_parse_resample_method(const char *string) {
|
||||||
pa_resample_method_t m;
|
pa_resample_method_t m;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,4 +80,7 @@ pa_resample_method_t pa_parse_resample_method(const char *string);
|
||||||
/* return a human readable string for the specified resampling method. Inverse of pa_parse_resample_method() */
|
/* return a human readable string for the specified resampling method. Inverse of pa_parse_resample_method() */
|
||||||
const char *pa_resample_method_to_string(pa_resample_method_t m);
|
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);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue