mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
ext/alsa/: Change alsa alloca's to malloc to fix warnings on gcc-4.2.
Original commit message from CVS: * ext/alsa/gstalsa.c: * ext/alsa/gstalsadeviceprobe.c: * ext/alsa/gstalsamixer.c: * ext/alsa/gstalsasink.c: * ext/alsa/gstalsasrc.c: Change alsa alloca's to malloc to fix warnings on gcc-4.2.
This commit is contained in:
parent
5dc2aebdee
commit
1beb98e6dc
6 changed files with 59 additions and 9 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2007-09-15 David Schleef <ds@schleef.org>
|
||||||
|
|
||||||
|
* ext/alsa/gstalsa.c:
|
||||||
|
* ext/alsa/gstalsadeviceprobe.c:
|
||||||
|
* ext/alsa/gstalsamixer.c:
|
||||||
|
* ext/alsa/gstalsasink.c:
|
||||||
|
* ext/alsa/gstalsasrc.c:
|
||||||
|
Change alsa alloca's to malloc to fix warnings on gcc-4.2.
|
||||||
|
|
||||||
2007-09-15 Wim Taymans <wim.taymans@gmail.com>
|
2007-09-15 Wim Taymans <wim.taymans@gmail.com>
|
||||||
|
|
||||||
* gst-libs/gst/rtp/gstbasertppayload.c:
|
* gst-libs/gst/rtp/gstbasertppayload.c:
|
||||||
|
|
|
@ -110,7 +110,7 @@ gst_alsa_detect_formats (GstObject * obj, snd_pcm_hw_params_t * hw_params,
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
snd_pcm_format_mask_alloca (&mask);
|
snd_pcm_format_mask_malloc (&mask);
|
||||||
snd_pcm_hw_params_get_format_mask (hw_params, mask);
|
snd_pcm_hw_params_get_format_mask (hw_params, mask);
|
||||||
|
|
||||||
caps = gst_caps_new_empty ();
|
caps = gst_caps_new_empty ();
|
||||||
|
@ -157,6 +157,7 @@ gst_alsa_detect_formats (GstObject * obj, snd_pcm_hw_params_t * hw_params,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
snd_pcm_format_mask_free (mask);
|
||||||
gst_caps_unref (in_caps);
|
gst_caps_unref (in_caps);
|
||||||
return caps;
|
return caps;
|
||||||
}
|
}
|
||||||
|
@ -375,7 +376,7 @@ gst_alsa_probe_supported_formats (GstObject * obj, snd_pcm_t * handle,
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
gint err;
|
gint err;
|
||||||
|
|
||||||
snd_pcm_hw_params_alloca (&hw_params);
|
snd_pcm_hw_params_malloc (&hw_params);
|
||||||
if ((err = snd_pcm_hw_params_any (handle, hw_params)) < 0)
|
if ((err = snd_pcm_hw_params_any (handle, hw_params)) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
@ -390,17 +391,20 @@ gst_alsa_probe_supported_formats (GstObject * obj, snd_pcm_t * handle,
|
||||||
if (!(caps = gst_alsa_detect_channels (obj, hw_params, caps)))
|
if (!(caps = gst_alsa_detect_channels (obj, hw_params, caps)))
|
||||||
goto subroutine_error;
|
goto subroutine_error;
|
||||||
|
|
||||||
|
snd_pcm_hw_params_free (hw_params);
|
||||||
return caps;
|
return caps;
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
error:
|
error:
|
||||||
{
|
{
|
||||||
GST_ERROR_OBJECT (obj, "failed to query formats: %s", snd_strerror (err));
|
GST_ERROR_OBJECT (obj, "failed to query formats: %s", snd_strerror (err));
|
||||||
|
snd_pcm_hw_params_free (hw_params);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
subroutine_error:
|
subroutine_error:
|
||||||
{
|
{
|
||||||
GST_ERROR_OBJECT (obj, "failed to query formats");
|
GST_ERROR_OBJECT (obj, "failed to query formats");
|
||||||
|
snd_pcm_hw_params_free (hw_params);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,8 +61,8 @@ gst_alsa_get_device_list (snd_pcm_stream_t stream)
|
||||||
if (stream == -1)
|
if (stream == -1)
|
||||||
stream = 0;
|
stream = 0;
|
||||||
|
|
||||||
snd_ctl_card_info_alloca (&info);
|
snd_ctl_card_info_malloc (&info);
|
||||||
snd_pcm_info_alloca (&pcminfo);
|
snd_pcm_info_malloc (&pcminfo);
|
||||||
card = -1;
|
card = -1;
|
||||||
|
|
||||||
if (snd_card_next (&card) < 0 || card < 0) {
|
if (snd_card_next (&card) < 0 || card < 0) {
|
||||||
|
@ -111,6 +111,9 @@ gst_alsa_get_device_list (snd_pcm_stream_t stream)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
snd_ctl_card_info_free (info);
|
||||||
|
snd_pcm_info_free (pcminfo);
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ gst_alsa_mixer_open (GstAlsaMixer * mixer)
|
||||||
goto no_card_name;
|
goto no_card_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
snd_ctl_card_info_alloca (&card_info);
|
snd_ctl_card_info_malloc (&card_info);
|
||||||
if ((err = snd_ctl_card_info (ctl, card_info)) < 0) {
|
if ((err = snd_ctl_card_info (ctl, card_info)) < 0) {
|
||||||
GST_WARNING ("Cannot get card info: %s", snd_strerror (err));
|
GST_WARNING ("Cannot get card info: %s", snd_strerror (err));
|
||||||
snd_ctl_close (ctl);
|
snd_ctl_close (ctl);
|
||||||
|
@ -99,6 +99,7 @@ gst_alsa_mixer_open (GstAlsaMixer * mixer)
|
||||||
|
|
||||||
mixer->cardname = g_strdup (snd_ctl_card_info_get_name (card_info));
|
mixer->cardname = g_strdup (snd_ctl_card_info_get_name (card_info));
|
||||||
GST_DEBUG ("Card name = %s", GST_STR_NULL (mixer->cardname));
|
GST_DEBUG ("Card name = %s", GST_STR_NULL (mixer->cardname));
|
||||||
|
snd_ctl_card_info_free (card_info);
|
||||||
snd_ctl_close (ctl);
|
snd_ctl_close (ctl);
|
||||||
|
|
||||||
no_card_name:
|
no_card_name:
|
||||||
|
|
|
@ -333,7 +333,7 @@ set_hwparams (GstAlsaSink * alsa)
|
||||||
snd_pcm_hw_params_t *params;
|
snd_pcm_hw_params_t *params;
|
||||||
guint period_time, buffer_time;
|
guint period_time, buffer_time;
|
||||||
|
|
||||||
snd_pcm_hw_params_alloca (¶ms);
|
snd_pcm_hw_params_malloc (¶ms);
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (alsa, "Negotiating to %d channels @ %d Hz (format = %s)",
|
GST_DEBUG_OBJECT (alsa, "Negotiating to %d channels @ %d Hz (format = %s)",
|
||||||
alsa->channels, alsa->rate, snd_pcm_format_name (alsa->format));
|
alsa->channels, alsa->rate, snd_pcm_format_name (alsa->format));
|
||||||
|
@ -423,6 +423,7 @@ retry:
|
||||||
GST_DEBUG_OBJECT (alsa, "buffer size %lu, period size %lu", alsa->buffer_size,
|
GST_DEBUG_OBJECT (alsa, "buffer size %lu, period size %lu", alsa->buffer_size,
|
||||||
alsa->period_size);
|
alsa->period_size);
|
||||||
|
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
|
@ -431,18 +432,21 @@ no_config:
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Broken configuration for playback: no configurations available: %s",
|
("Broken configuration for playback: no configurations available: %s",
|
||||||
snd_strerror (err)));
|
snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
wrong_access:
|
wrong_access:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Access type not available for playback: %s", snd_strerror (err)));
|
("Access type not available for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
no_sample_format:
|
no_sample_format:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Sample format not available for playback: %s", snd_strerror (err)));
|
("Sample format not available for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
no_channels:
|
no_channels:
|
||||||
|
@ -460,6 +464,7 @@ no_channels:
|
||||||
alsa->channels);
|
alsa->channels);
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (msg), (snd_strerror (err)));
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (msg), (snd_strerror (err)));
|
||||||
g_free (msg);
|
g_free (msg);
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
no_rate:
|
no_rate:
|
||||||
|
@ -473,24 +478,28 @@ rate_match:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Rate doesn't match (requested %iHz, get %iHz)", alsa->rate, err));
|
("Rate doesn't match (requested %iHz, get %iHz)", alsa->rate, err));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
buffer_size:
|
buffer_size:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to get buffer size for playback: %s", snd_strerror (err)));
|
("Unable to get buffer size for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
period_size:
|
period_size:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to get period size for playback: %s", snd_strerror (err)));
|
("Unable to get period size for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
set_hw_params:
|
set_hw_params:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set hw params for playback: %s", snd_strerror (err)));
|
("Unable to set hw params for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -501,7 +510,7 @@ set_swparams (GstAlsaSink * alsa)
|
||||||
int err;
|
int err;
|
||||||
snd_pcm_sw_params_t *params;
|
snd_pcm_sw_params_t *params;
|
||||||
|
|
||||||
snd_pcm_sw_params_alloca (¶ms);
|
snd_pcm_sw_params_malloc (¶ms);
|
||||||
|
|
||||||
/* get the current swparams */
|
/* get the current swparams */
|
||||||
CHECK (snd_pcm_sw_params_current (alsa->handle, params), no_config);
|
CHECK (snd_pcm_sw_params_current (alsa->handle, params), no_config);
|
||||||
|
@ -520,6 +529,7 @@ set_swparams (GstAlsaSink * alsa)
|
||||||
/* write the parameters to the playback device */
|
/* write the parameters to the playback device */
|
||||||
CHECK (snd_pcm_sw_params (alsa->handle, params), set_sw_params);
|
CHECK (snd_pcm_sw_params (alsa->handle, params), set_sw_params);
|
||||||
|
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
|
@ -528,6 +538,7 @@ no_config:
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to determine current swparams for playback: %s",
|
("Unable to determine current swparams for playback: %s",
|
||||||
snd_strerror (err)));
|
snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
start_threshold:
|
start_threshold:
|
||||||
|
@ -535,24 +546,28 @@ start_threshold:
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set start threshold mode for playback: %s",
|
("Unable to set start threshold mode for playback: %s",
|
||||||
snd_strerror (err)));
|
snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
set_avail:
|
set_avail:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set avail min for playback: %s", snd_strerror (err)));
|
("Unable to set avail min for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
set_align:
|
set_align:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set transfer align for playback: %s", snd_strerror (err)));
|
("Unable to set transfer align for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
set_sw_params:
|
set_sw_params:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set sw params for playback: %s", snd_strerror (err)));
|
("Unable to set sw params for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -348,7 +348,7 @@ set_hwparams (GstAlsaSrc * alsa)
|
||||||
gint err, dir;
|
gint err, dir;
|
||||||
snd_pcm_hw_params_t *params;
|
snd_pcm_hw_params_t *params;
|
||||||
|
|
||||||
snd_pcm_hw_params_alloca (¶ms);
|
snd_pcm_hw_params_malloc (¶ms);
|
||||||
|
|
||||||
/* choose all parameters */
|
/* choose all parameters */
|
||||||
CHECK (snd_pcm_hw_params_any (alsa->handle, params), no_config);
|
CHECK (snd_pcm_hw_params_any (alsa->handle, params), no_config);
|
||||||
|
@ -388,6 +388,7 @@ set_hwparams (GstAlsaSrc * alsa)
|
||||||
CHECK (snd_pcm_hw_params_get_period_size (params, &alsa->period_size, &dir),
|
CHECK (snd_pcm_hw_params_get_period_size (params, &alsa->period_size, &dir),
|
||||||
period_size);
|
period_size);
|
||||||
|
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
|
@ -396,18 +397,21 @@ no_config:
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Broken configuration for recording: no configurations available: %s",
|
("Broken configuration for recording: no configurations available: %s",
|
||||||
snd_strerror (err)));
|
snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
wrong_access:
|
wrong_access:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Access type not available for recording: %s", snd_strerror (err)));
|
("Access type not available for recording: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
no_sample_format:
|
no_sample_format:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Sample format not available for recording: %s", snd_strerror (err)));
|
("Sample format not available for recording: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
no_channels:
|
no_channels:
|
||||||
|
@ -425,6 +429,7 @@ no_channels:
|
||||||
alsa->channels);
|
alsa->channels);
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (msg), (snd_strerror (err)));
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (msg), (snd_strerror (err)));
|
||||||
g_free (msg);
|
g_free (msg);
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
no_rate:
|
no_rate:
|
||||||
|
@ -432,12 +437,14 @@ no_rate:
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Rate %iHz not available for recording: %s",
|
("Rate %iHz not available for recording: %s",
|
||||||
alsa->rate, snd_strerror (err)));
|
alsa->rate, snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
rate_match:
|
rate_match:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Rate doesn't match (requested %iHz, get %iHz)", alsa->rate, err));
|
("Rate doesn't match (requested %iHz, get %iHz)", alsa->rate, err));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
buffer_time:
|
buffer_time:
|
||||||
|
@ -445,12 +452,14 @@ buffer_time:
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set buffer time %i for recording: %s",
|
("Unable to set buffer time %i for recording: %s",
|
||||||
alsa->buffer_time, snd_strerror (err)));
|
alsa->buffer_time, snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
buffer_size:
|
buffer_size:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to get buffer size for recording: %s", snd_strerror (err)));
|
("Unable to get buffer size for recording: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
period_time:
|
period_time:
|
||||||
|
@ -458,18 +467,21 @@ period_time:
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set period time %i for recording: %s", alsa->period_time,
|
("Unable to set period time %i for recording: %s", alsa->period_time,
|
||||||
snd_strerror (err)));
|
snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
period_size:
|
period_size:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to get period size for recording: %s", snd_strerror (err)));
|
("Unable to get period size for recording: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
set_hw_params:
|
set_hw_params:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set hw params for recording: %s", snd_strerror (err)));
|
("Unable to set hw params for recording: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_hw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -480,7 +492,7 @@ set_swparams (GstAlsaSrc * alsa)
|
||||||
int err;
|
int err;
|
||||||
snd_pcm_sw_params_t *params;
|
snd_pcm_sw_params_t *params;
|
||||||
|
|
||||||
snd_pcm_sw_params_alloca (¶ms);
|
snd_pcm_sw_params_malloc (¶ms);
|
||||||
|
|
||||||
/* get the current swparams */
|
/* get the current swparams */
|
||||||
CHECK (snd_pcm_sw_params_current (alsa->handle, params), no_config);
|
CHECK (snd_pcm_sw_params_current (alsa->handle, params), no_config);
|
||||||
|
@ -496,6 +508,7 @@ set_swparams (GstAlsaSrc * alsa)
|
||||||
/* write the parameters to the recording device */
|
/* write the parameters to the recording device */
|
||||||
CHECK (snd_pcm_sw_params (alsa->handle, params), set_sw_params);
|
CHECK (snd_pcm_sw_params (alsa->handle, params), set_sw_params);
|
||||||
|
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
|
@ -504,6 +517,7 @@ no_config:
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to determine current swparams for playback: %s",
|
("Unable to determine current swparams for playback: %s",
|
||||||
snd_strerror (err)));
|
snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
start_threshold:
|
start_threshold:
|
||||||
|
@ -511,24 +525,28 @@ start_threshold:
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set start threshold mode for playback: %s",
|
("Unable to set start threshold mode for playback: %s",
|
||||||
snd_strerror (err)));
|
snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
set_avail:
|
set_avail:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set avail min for playback: %s", snd_strerror (err)));
|
("Unable to set avail min for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
set_align:
|
set_align:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set transfer align for playback: %s", snd_strerror (err)));
|
("Unable to set transfer align for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
set_sw_params:
|
set_sw_params:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
|
||||||
("Unable to set sw params for playback: %s", snd_strerror (err)));
|
("Unable to set sw params for playback: %s", snd_strerror (err)));
|
||||||
|
snd_pcm_sw_params_free (params);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue