[pulseaudio-discuss] [PATCH 03/18] resampler: fix_method use switch instead of if/else

poljar (Damir Jelić) poljarinho at gmail.com
Mon Jul 15 06:48:25 PDT 2013


This way the fix method function should be more readable and easier to
expand in the future.
---
 src/pulsecore/resampler.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/pulsecore/resampler.c b/src/pulsecore/resampler.c
index 35bcaf9..b3bbb18 100644
--- a/src/pulsecore/resampler.c
+++ b/src/pulsecore/resampler.c
@@ -213,14 +213,16 @@ static pa_resample_method_t pa_resampler_fix_method(
         method = PA_RESAMPLER_AUTO;
     }
 
-    if (method == PA_RESAMPLER_FFMPEG && (flags & PA_RESAMPLER_VARIABLE_RATE)) {
-        pa_log_info("Resampler 'ffmpeg' cannot do variable rate, reverting to resampler 'auto'.");
-        method = PA_RESAMPLER_AUTO;
-    }
-
-    if (method == PA_RESAMPLER_COPY && ((flags & PA_RESAMPLER_VARIABLE_RATE) || a->rate != b->rate)) {
-        pa_log_info("Resampler 'copy' cannot change sampling rate, reverting to resampler 'auto'.");
-        method = PA_RESAMPLER_AUTO;
+    switch (method) {
+        case PA_RESAMPLER_COPY:     /* fall through */
+        case PA_RESAMPLER_FFMPEG:
+            if (flags & PA_RESAMPLER_VARIABLE_RATE) {
+                pa_log_info("Resampler '%s' cannot do variable rate, reverting to resampler 'auto'.", pa_resample_method_to_string(method));
+                method = PA_RESAMPLER_AUTO;
+            }
+            break;
+        default:
+            break;
     }
 
     if (method == PA_RESAMPLER_AUTO) {
-- 
1.8.3.2



More information about the pulseaudio-discuss mailing list