]> code.delx.au - pulseaudio/commitdiff
Allow compilation without libsamplerate; based on patch from Marc-Andre Lureau; re...
authorLennart Poettering <lennart@poettering.net>
Sun, 2 Sep 2007 21:20:57 +0000 (21:20 +0000)
committerLennart Poettering <lennart@poettering.net>
Sun, 2 Sep 2007 21:20:57 +0000 (21:20 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1753 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/core-util.c
src/pulsecore/resampler.c
src/pulsecore/resampler.h

index d231b65883d8af4a2c611c78cad4594c0899380a..67d33e7cf80bcf6a1788525e193652712f059a98 100644 (file)
@@ -78,7 +78,9 @@
 #include <grp.h>
 #endif
 
+#ifdef HAVE_LIBSAMPLERATE
 #include <samplerate.h>
+#endif
 
 #include <pulse/xmalloc.h>
 #include <pulse/util.h>
index d98d482dc6425b46f684ec96c94077f88be6be2a..3e14c0e78386959aeecf9585b03ef47939932094 100644 (file)
@@ -27,7 +27,9 @@
 
 #include <string.h>
 
+#if HAVE_LIBSAMPLERATE
 #include <samplerate.h>
+#endif 
 
 #include <liboil/liboilfuncs.h>
 #include <liboil/liboil.h>
@@ -70,9 +72,11 @@ struct pa_resampler {
         unsigned i_counter;
     } trivial;
 
+#ifdef HAVE_LIBSAMPLERATE
     struct { /* data specific to libsamplerate */
         SRC_STATE *state;
     } src;
+#endif
 
     struct { /* data specific to speex */
         SpeexResamplerState* state;
@@ -84,7 +88,6 @@ struct pa_resampler {
     } ffmpeg;
 };
 
-static int libsamplerate_init(pa_resampler*r);
 static int trivial_init(pa_resampler*r);
 static int speex_init(pa_resampler*r);
 static int ffmpeg_init(pa_resampler*r);
@@ -92,11 +95,19 @@ static int ffmpeg_init(pa_resampler*r);
 static void calc_map_table(pa_resampler *r);
 
 static int (* const init_table[])(pa_resampler*r) = {
+#ifdef HAVE_LIBSAMPLERATE
     [PA_RESAMPLER_SRC_SINC_BEST_QUALITY]   = libsamplerate_init,
     [PA_RESAMPLER_SRC_SINC_MEDIUM_QUALITY] = libsamplerate_init,
     [PA_RESAMPLER_SRC_SINC_FASTEST]        = libsamplerate_init,
     [PA_RESAMPLER_SRC_ZERO_ORDER_HOLD]     = libsamplerate_init,
     [PA_RESAMPLER_SRC_LINEAR]              = libsamplerate_init,
+#else
+    [PA_RESAMPLER_SRC_SINC_BEST_QUALITY]   = NULL,
+    [PA_RESAMPLER_SRC_SINC_MEDIUM_QUALITY] = NULL,
+    [PA_RESAMPLER_SRC_SINC_FASTEST]        = NULL,
+    [PA_RESAMPLER_SRC_ZERO_ORDER_HOLD]     = NULL,
+    [PA_RESAMPLER_SRC_LINEAR]              = NULL,
+#endif    
     [PA_RESAMPLER_TRIVIAL]                 = trivial_init,
     [PA_RESAMPLER_SPEEX_FLOAT_BASE+0]      = speex_init,
     [PA_RESAMPLER_SPEEX_FLOAT_BASE+1]      = speex_init,
@@ -622,6 +633,7 @@ void pa_resampler_run(pa_resampler *r, const pa_memchunk *in, pa_memchunk *out)
 
 /*** libsamplerate based implementation ***/
 
+#ifdef HAVE_LIBSAMPLERATE
 static void libsamplerate_resample(pa_resampler *r, const pa_memchunk *input, unsigned in_n_frames, pa_memchunk *output, unsigned *out_n_frames) {
     SRC_DATA data;
     
@@ -677,6 +689,7 @@ static int libsamplerate_init(pa_resampler *r) {
 
     return 0;
 }
+#endif
 
 /*** speex based implementation ***/
 
index 2a943e3e879a4a8da6e406d14502e4e31f6296d9..711f9c62afb7735182b4f77f4824cd3a358c8daa 100644 (file)
@@ -24,8 +24,6 @@
   USA.
 ***/
 
-#include <samplerate.h>
-
 #include <pulse/sample.h>
 #include <pulse/channelmap.h>
 #include <pulsecore/memblock.h>
@@ -35,11 +33,11 @@ typedef struct pa_resampler pa_resampler;
 
 typedef enum pa_resample_method {
     PA_RESAMPLER_INVALID                 = -1,
-    PA_RESAMPLER_SRC_SINC_BEST_QUALITY   = SRC_SINC_BEST_QUALITY,
-    PA_RESAMPLER_SRC_SINC_MEDIUM_QUALITY = SRC_SINC_MEDIUM_QUALITY,
-    PA_RESAMPLER_SRC_SINC_FASTEST        = SRC_SINC_FASTEST,
-    PA_RESAMPLER_SRC_ZERO_ORDER_HOLD     = SRC_ZERO_ORDER_HOLD,
-    PA_RESAMPLER_SRC_LINEAR              = SRC_LINEAR,
+    PA_RESAMPLER_SRC_SINC_BEST_QUALITY   = 0, /* = SRC_SINC_BEST_QUALITY */
+    PA_RESAMPLER_SRC_SINC_MEDIUM_QUALITY = 1, /* = SRC_SINC_MEDIUM_QUALITY */
+    PA_RESAMPLER_SRC_SINC_FASTEST        = 2, /* = SRC_SINC_FASTEST */
+    PA_RESAMPLER_SRC_ZERO_ORDER_HOLD     = 3, /* = SRC_ZERO_ORDER_HOLD */
+    PA_RESAMPLER_SRC_LINEAR              = 4, /* = SRC_LINEAR */
     PA_RESAMPLER_TRIVIAL,
     PA_RESAMPLER_SPEEX_FLOAT_BASE,
     PA_RESAMPLER_SPEEX_FLOAT_MAX = PA_RESAMPLER_SPEEX_FLOAT_BASE + 10,