[pulseaudio-commits] 2 commits - src/pulsecore

Tanu Kaskinen tanuk at kemper.freedesktop.org
Sun Aug 17 03:13:00 PDT 2014


 src/pulsecore/resampler.c               |   43 ++------------------------------
 src/pulsecore/resampler.h               |    3 ++
 src/pulsecore/resampler/ffmpeg.c        |    2 -
 src/pulsecore/resampler/libsamplerate.c |    2 -
 src/pulsecore/resampler/peaks.c         |    2 -
 src/pulsecore/resampler/speex.c         |   31 ++++++++++++++++++++++-
 src/pulsecore/resampler/trivial.c       |    2 -
 7 files changed, 41 insertions(+), 44 deletions(-)

New commits:
commit 1b600a2d548f4ccb6c403a9b1de17da07b64d74c
Author: Alexander E. Patrakov <patrakov at gmail.com>
Date:   Sun Aug 17 14:53:08 2014 +0600

    resampler: Changed style of includes
    
    There was no code that included files from other directories using
    the #include "..." style before.
    
    Signed-off-by: Alexander E. Patrakov <patrakov at gmail.com>

diff --git a/src/pulsecore/resampler/ffmpeg.c b/src/pulsecore/resampler/ffmpeg.c
index 9e35236..cc1e3e4 100644
--- a/src/pulsecore/resampler/ffmpeg.c
+++ b/src/pulsecore/resampler/ffmpeg.c
@@ -26,7 +26,7 @@
 #include <pulse/xmalloc.h>
 #include "pulsecore/ffmpeg/avcodec.h"
 
-#include "pulsecore/resampler.h"
+#include <pulsecore/resampler.h>
 
 struct ffmpeg_data { /* data specific to ffmpeg */
     struct AVResampleContext *state;
diff --git a/src/pulsecore/resampler/libsamplerate.c b/src/pulsecore/resampler/libsamplerate.c
index 48ea594..34a9ba4 100644
--- a/src/pulsecore/resampler/libsamplerate.c
+++ b/src/pulsecore/resampler/libsamplerate.c
@@ -25,7 +25,7 @@
 
 #include <samplerate.h>
 
-#include "pulsecore/resampler.h"
+#include <pulsecore/resampler.h>
 
 static unsigned libsamplerate_resample(pa_resampler *r, const pa_memchunk *input, unsigned in_n_frames, pa_memchunk *output, unsigned *out_n_frames) {
     SRC_DATA data;
diff --git a/src/pulsecore/resampler/peaks.c b/src/pulsecore/resampler/peaks.c
index ef9e99e..d0b7cd0 100644
--- a/src/pulsecore/resampler/peaks.c
+++ b/src/pulsecore/resampler/peaks.c
@@ -26,7 +26,7 @@
 #include <pulse/xmalloc.h>
 #include <math.h>
 
-#include "pulsecore/resampler.h"
+#include <pulsecore/resampler.h>
 
 struct peaks_data { /* data specific to the peak finder pseudo resampler */
     unsigned o_counter;
diff --git a/src/pulsecore/resampler/trivial.c b/src/pulsecore/resampler/trivial.c
index 09c81ee..be15295 100644
--- a/src/pulsecore/resampler/trivial.c
+++ b/src/pulsecore/resampler/trivial.c
@@ -25,7 +25,7 @@
 
 #include <pulse/xmalloc.h>
 
-#include "pulsecore/resampler.h"
+#include <pulsecore/resampler.h>
 
 struct trivial_data { /* data specific to the trivial resampler */
     unsigned o_counter;

commit ee658fa07402139e3d0465c9318bd90c9c0624c4
Author: Alexander E. Patrakov <patrakov at gmail.com>
Date:   Sun Aug 17 14:53:07 2014 +0600

    resampler: Moved speex_is_fixed_point() to speex.c
    
    IMHO code that calls into speex belongs in speex.c, not in resampler.c.
    
    Signed-off-by: Alexander E. Patrakov <patrakov at gmail.com>

diff --git a/src/pulsecore/resampler.c b/src/pulsecore/resampler.c
index de58f3f..5e9dc39 100644
--- a/src/pulsecore/resampler.c
+++ b/src/pulsecore/resampler.c
@@ -25,16 +25,10 @@
 
 #include <string.h>
 
-#ifdef HAVE_SPEEX
-#include <speex/speex_resampler.h>
-#include <math.h>
-#endif
-
 #include <pulse/xmalloc.h>
 #include <pulsecore/log.h>
 #include <pulsecore/macro.h>
 #include <pulsecore/strbuf.h>
-#include <pulsecore/once.h>
 #include <pulsecore/core-util.h>
 
 #include "resampler.h"
@@ -119,8 +113,6 @@ static int (* const init_table[])(pa_resampler *r) = {
     [PA_RESAMPLER_PEAKS]                   = pa_resampler_peaks_init,
 };
 
-static bool speex_is_fixed_point(void);
-
 static pa_resample_method_t choose_auto_resampler(pa_resample_flags_t flags) {
     pa_resample_method_t method;
 
@@ -186,6 +178,7 @@ static pa_resample_method_t fix_method(
     if (method == PA_RESAMPLER_AUTO)
         method = choose_auto_resampler(flags);
 
+#ifdef HAVE_SPEEX
     /* At this point, method is supported in the sense that it
      * has an init function and supports the required flags. However,
      * speex-float implementation in PulseAudio relies on the
@@ -194,12 +187,14 @@ static pa_resample_method_t fix_method(
      * in this configuration. So use it instead.
      */
     if (method >= PA_RESAMPLER_SPEEX_FLOAT_BASE && method <= PA_RESAMPLER_SPEEX_FLOAT_MAX) {
-        if (speex_is_fixed_point()) {
+        if (pa_speex_is_fixed_point()) {
             pa_log_info("Speex appears to be compiled with --enable-fixed-point. "
                         "Switching to a fixed-point resampler because it should be faster.");
             method = method - PA_RESAMPLER_SPEEX_FLOAT_BASE + PA_RESAMPLER_SPEEX_FIXED_BASE;
         }
     }
+#endif
+
     return method;
 }
 
@@ -1341,36 +1336,6 @@ void pa_resampler_run(pa_resampler *r, const pa_memchunk *in, pa_memchunk *out)
         pa_memchunk_reset(out);
 }
 
-/*** speex based implementation ***/
-
-static bool speex_is_fixed_point(void) {
-    static bool result = false;
-#ifdef HAVE_SPEEX
-    PA_ONCE_BEGIN {
-        float f_out = -1.0f, f_in = 1.0f;
-        spx_uint32_t in_len = 1, out_len = 1;
-        SpeexResamplerState *s;
-
-        pa_assert_se(s = speex_resampler_init(1, 1, 1,
-            SPEEX_RESAMPLER_QUALITY_MIN, NULL));
-
-        /* feed one sample that is too soft for fixed-point speex */
-        pa_assert_se(speex_resampler_process_float(s, 0, &f_in, &in_len,
-            &f_out, &out_len) == RESAMPLER_ERR_SUCCESS);
-
-        /* expecting sample has been processed, one sample output */
-        pa_assert_se(in_len == 1 && out_len == 1);
-
-        /* speex compiled with --enable-fixed-point will output 0.0 due to insufficient precision */
-        if (fabsf(f_out) < 0.00001f)
-            result = true;
-
-        speex_resampler_destroy(s);
-    } PA_ONCE_END;
-#endif
-    return result;
-}
-
 /*** copy (noop) implementation ***/
 
 static int copy_init(pa_resampler *r) {
diff --git a/src/pulsecore/resampler.h b/src/pulsecore/resampler.h
index 13d8c35..e3463a2 100644
--- a/src/pulsecore/resampler.h
+++ b/src/pulsecore/resampler.h
@@ -166,4 +166,7 @@ int pa_resampler_peaks_init(pa_resampler *r);
 int pa_resampler_speex_init(pa_resampler *r);
 int pa_resampler_trivial_init(pa_resampler*r);
 
+/* Resampler-specific quirks */
+bool pa_speex_is_fixed_point(void);
+
 #endif
diff --git a/src/pulsecore/resampler/speex.c b/src/pulsecore/resampler/speex.c
index faeef76..e989c3a 100644
--- a/src/pulsecore/resampler/speex.c
+++ b/src/pulsecore/resampler/speex.c
@@ -24,8 +24,37 @@
 #endif
 
 #include <speex/speex_resampler.h>
+#include <math.h>
+
+#include <pulsecore/once.h>
+#include <pulsecore/resampler.h>
+
+bool pa_speex_is_fixed_point(void) {
+    static bool result = false;
+    PA_ONCE_BEGIN {
+        float f_out = -1.0f, f_in = 1.0f;
+        spx_uint32_t in_len = 1, out_len = 1;
+        SpeexResamplerState *s;
+
+        pa_assert_se(s = speex_resampler_init(1, 1, 1,
+            SPEEX_RESAMPLER_QUALITY_MIN, NULL));
+
+        /* feed one sample that is too soft for fixed-point speex */
+        pa_assert_se(speex_resampler_process_float(s, 0, &f_in, &in_len,
+            &f_out, &out_len) == RESAMPLER_ERR_SUCCESS);
+
+        /* expecting sample has been processed, one sample output */
+        pa_assert_se(in_len == 1 && out_len == 1);
+
+        /* speex compiled with --enable-fixed-point will output 0.0 due to insufficient precision */
+        if (fabsf(f_out) < 0.00001f)
+            result = true;
+
+        speex_resampler_destroy(s);
+    } PA_ONCE_END;
+    return result;
+}
 
-#include "pulsecore/resampler.h"
 
 static unsigned speex_resample_float(pa_resampler *r, const pa_memchunk *input, unsigned in_n_frames, pa_memchunk *output, unsigned *out_n_frames) {
     float *in, *out;



More information about the pulseaudio-commits mailing list