From f82bb0c84e72d3b2241ba8765bbb962aed40b946 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 20 Jul 2006 16:57:29 +0000 Subject: [PATCH] ext/alsa/gstalsamixerelement.c: Make state change fail if the specified device can't be opened for some reason. Original commit message from CVS: * ext/alsa/gstalsamixerelement.c: (gst_alsa_mixer_element_change_state): Make state change fail if the specified device can't be opened for some reason. --- ChangeLog | 7 +++++++ ext/alsa/gstalsamixerelement.c | 11 +++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b272f76..fd92785 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-07-20 Tim-Philipp Müller + + * ext/alsa/gstalsamixerelement.c: + (gst_alsa_mixer_element_change_state): + Make state change fail if the specified device can't be opened + for some reason. + 2006-07-20 Wim Taymans * gst/playback/test.c: (gen_video_element), (gen_audio_element), diff --git a/ext/alsa/gstalsamixerelement.c b/ext/alsa/gstalsamixerelement.c index 2fa5bec..4cefe78 100644 --- a/ext/alsa/gstalsamixerelement.c +++ b/ext/alsa/gstalsamixerelement.c @@ -208,10 +208,13 @@ gst_alsa_mixer_element_change_state (GstElement * element, switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: if (!this->mixer) { - if (!this->device) { - this->mixer = gst_alsa_mixer_new ("default", GST_ALSA_MIXER_ALL); - } else { - this->mixer = gst_alsa_mixer_new (this->device, GST_ALSA_MIXER_ALL); + const gchar *device = (this->device) ? this->device : "default"; + + this->mixer = gst_alsa_mixer_new (device, GST_ALSA_MIXER_ALL); + if (!this->mixer) { + GST_ELEMENT_ERROR (element, RESOURCE, OPEN_READ_WRITE, (NULL), + ("Failed to open alsa mixer device '%s'", device)); + return GST_STATE_CHANGE_FAILURE; } } break; -- 2.7.4