From 5f1cc19befcfece336a76efba1e34c981cca75b0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 11 Feb 2008 20:23:44 +0000 Subject: [PATCH] ext/alsa/: Don't use snd_pcm_sw_params_set_xfer_align() if we're compiling against libasound >= 1.0.16, since it's be... 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 | 9 +++++++++ ext/alsa/gstalsa.h | 6 ++++++ ext/alsa/gstalsasink.c | 7 +++++++ ext/alsa/gstalsasrc.c | 7 +++++++ 4 files changed, 29 insertions(+) diff --git a/ChangeLog b/ChangeLog index a064bce..90f7d1b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2008-02-11 Tim-Philipp Müller + * 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 + * 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 diff --git a/ext/alsa/gstalsa.h b/ext/alsa/gstalsa.h index 75ffa86..b2e1e98 100644 --- a/ext/alsa/gstalsa.h +++ b/ext/alsa/gstalsa.h @@ -32,6 +32,12 @@ #include #include +#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 diff --git a/ext/alsa/gstalsasink.c b/ext/alsa/gstalsasink.c index aa21636..9d57be5 100644 --- a/ext/alsa/gstalsasink.c +++ b/ext/alsa/gstalsasink.c @@ -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), diff --git a/ext/alsa/gstalsasrc.c b/ext/alsa/gstalsasrc.c index e851001..806e044 100644 --- a/ext/alsa/gstalsasrc.c +++ b/ext/alsa/gstalsasrc.c @@ -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), -- 2.7.4