ext/alsa/: Don't use snd_pcm_sw_params_set_xfer_align() if we're compiling against...
authorTim-Philipp Müller <tim@centricular.net>
Mon, 11 Feb 2008 20:23:44 +0000 (20:23 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Mon, 11 Feb 2008 20:23:44 +0000 (20:23 +0000)
Original commit message from CVS:
* ext/alsa/gstalsa.h: (GST_CHECK_ALSA_VERSION):
* ext/alsa/gstalsasink.c: (set_swparams):
* ext/alsa/gstalsasrc.c: (set_swparams), (gst_alsasrc_open):
Don't use snd_pcm_sw_params_set_xfer_align() if we're compiling
against libasound >= 1.0.16, since it's been deprecated in
0.10.16, and alignment is always 1 then, apparently. (#512899)

ChangeLog
ext/alsa/gstalsa.h
ext/alsa/gstalsasink.c
ext/alsa/gstalsasrc.c

index a064bce..90f7d1b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2008-02-11  Tim-Philipp Müller  <tim at centricular dot net>
 
+       * ext/alsa/gstalsa.h: (GST_CHECK_ALSA_VERSION):
+       * ext/alsa/gstalsasink.c: (set_swparams):
+       * ext/alsa/gstalsasrc.c: (set_swparams), (gst_alsasrc_open):
+         Don't use snd_pcm_sw_params_set_xfer_align() if we're compiling
+         against libasound >= 1.0.16, since it's been deprecated in
+         0.10.16, and alignment is always 1 then, apparently. (#512899)
+
+2008-02-11  Tim-Philipp Müller  <tim at centricular dot net>
+
        * gst/playback/gstplaybin.c: (gen_audio_element):
        * gst/playback/gstplaysink.c: (gen_audio_chain):
          Handle case where we can't create the volume element a bit
index 75ffa86..b2e1e98 100644 (file)
 #include <alsa/error.h>
 #include <gst/gst.h>
 
+#define GST_CHECK_ALSA_VERSION(major,minor,micro) \
+    (SND_LIB_MAJOR > (major) || \
+     (SND_LIB_MAJOR == (major) && SND_LIB_MINOR > (minor)) || \
+     (SND_LIB_MAJOR == (major) && SND_LIB_MINOR == (minor) && \
+      SND_LIB_SUBMINOR >= (micro)))
+
 GST_DEBUG_CATEGORY_EXTERN (alsa_debug);
 #define GST_CAT_DEFAULT alsa_debug
 
index aa21636..9d57be5 100644 (file)
@@ -523,8 +523,13 @@ set_swparams (GstAlsaSink * alsa)
   /* allow the transfer when at least period_size samples can be processed */
   CHECK (snd_pcm_sw_params_set_avail_min (alsa->handle, params,
           alsa->period_size), set_avail);
+
+#if GST_CHECK_ALSA_VERSION(1,0,16)
+  /* snd_pcm_sw_params_set_xfer_align() is deprecated, alignment is always 1 */
+#else
   /* align all transfers to 1 sample */
   CHECK (snd_pcm_sw_params_set_xfer_align (alsa->handle, params, 1), set_align);
+#endif
 
   /* write the parameters to the playback device */
   CHECK (snd_pcm_sw_params (alsa->handle, params), set_sw_params);
@@ -556,6 +561,7 @@ set_avail:
     snd_pcm_sw_params_free (params);
     return err;
   }
+#if !GST_CHECK_ALSA_VERSION(1,0,16)
 set_align:
   {
     GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
@@ -563,6 +569,7 @@ set_align:
     snd_pcm_sw_params_free (params);
     return err;
   }
+#endif
 set_sw_params:
   {
     GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
index e851001..806e044 100644 (file)
@@ -502,8 +502,13 @@ set_swparams (GstAlsaSrc * alsa)
   /* start the transfer on first read */
   CHECK (snd_pcm_sw_params_set_start_threshold (alsa->handle, params,
           0), start_threshold);
+
+#if GST_CHECK_ALSA_VERSION(1,0,16)
+  /* snd_pcm_sw_params_set_xfer_align() is deprecated, alignment is always 1 */
+#else
   /* align all transfers to 1 sample */
   CHECK (snd_pcm_sw_params_set_xfer_align (alsa->handle, params, 1), set_align);
+#endif
 
   /* write the parameters to the recording device */
   CHECK (snd_pcm_sw_params (alsa->handle, params), set_sw_params);
@@ -535,6 +540,7 @@ set_avail:
     snd_pcm_sw_params_free (params);
     return err;
   }
+#if !GST_CHECK_ALSA_VERSION(1,0,16)
 set_align:
   {
     GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
@@ -542,6 +548,7 @@ set_align:
     snd_pcm_sw_params_free (params);
     return err;
   }
+#endif
 set_sw_params:
   {
     GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),