mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-03 17:22:29 +00:00
osxaudio: Fix error handling when selecting/opening devices
Post an element error when the CoreAudio device cannot be selected or opened. Also ensure that we post a GST_ERROR with more detail.
This commit is contained in:
parent
53c797d604
commit
6b760ead2a
2 changed files with 14 additions and 3 deletions
|
@ -48,6 +48,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
|
#include <gst/gst-i18n-plugin.h>
|
||||||
#include <gst/audio/audio-channels.h>
|
#include <gst/audio/audio-channels.h>
|
||||||
#include "gstosxaudioringbuffer.h"
|
#include "gstosxaudioringbuffer.h"
|
||||||
#include "gstosxaudiosink.h"
|
#include "gstosxaudiosink.h"
|
||||||
|
@ -140,12 +141,22 @@ gst_osx_audio_ring_buffer_dispose (GObject * object)
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_osx_audio_ring_buffer_open_device (GstAudioRingBuffer * buf)
|
gst_osx_audio_ring_buffer_open_device (GstAudioRingBuffer * buf)
|
||||||
{
|
{
|
||||||
|
GstObject *osxel = GST_OBJECT_PARENT (buf);
|
||||||
GstOsxAudioRingBuffer *osxbuf = GST_OSX_AUDIO_RING_BUFFER (buf);
|
GstOsxAudioRingBuffer *osxbuf = GST_OSX_AUDIO_RING_BUFFER (buf);
|
||||||
|
|
||||||
if (!gst_core_audio_select_device (osxbuf->core_audio))
|
if (!gst_core_audio_select_device (osxbuf->core_audio)) {
|
||||||
|
GST_ELEMENT_ERROR (osxel, RESOURCE, NOT_FOUND,
|
||||||
|
(_("CoreAudio device not found")), (NULL));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
return gst_core_audio_open (osxbuf->core_audio);
|
if (!gst_core_audio_open (osxbuf->core_audio)) {
|
||||||
|
GST_ELEMENT_ERROR (osxel, RESOURCE, OPEN_READ,
|
||||||
|
(_("CoreAudio device could not be opened")), (NULL));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
|
@ -1238,7 +1238,7 @@ gst_core_audio_select_device_impl (GstCoreAudio * core_audio)
|
||||||
device_id = default_device_id;
|
device_id = default_device_id;
|
||||||
res = TRUE;
|
res = TRUE;
|
||||||
} else {
|
} else {
|
||||||
/* No device of required type available */
|
GST_ERROR ("No device of required type available");
|
||||||
res = FALSE;
|
res = FALSE;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue