From ae1fffef7aacf6282919eec9e9a19d003f8caab1 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Tue, 11 Mar 2014 19:42:04 -0700 Subject: [PATCH] CoreAudio: Set default audio settings on creation device_id would end up being null, which would mess with the functions. --- plugins/mac-capture/mac-audio.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/mac-capture/mac-audio.c b/plugins/mac-capture/mac-audio.c index 0df347aec..bfe324ef1 100644 --- a/plugins/mac-capture/mac-audio.c +++ b/plugins/mac-capture/mac-audio.c @@ -81,6 +81,9 @@ static bool find_device_id_by_uid(struct coreaudio_data *ca) .mElement = kAudioObjectPropertyElementMaster }; + if (!ca->device_uid) + ca->device_uid = bstrdup(""); + /* have to do this because mac output devices don't actually exist */ if (astrcmpi(ca->device_uid, "default") == 0) { if (ca->input) { @@ -675,16 +678,24 @@ static void *coreaudio_create(obs_data_t settings, obs_source_t source, struct coreaudio_data *ca = bzalloc(sizeof(struct coreaudio_data)); if (os_event_init(&ca->exit_event, OS_EVENT_TYPE_MANUAL) != 0) { - blog(LOG_WARNING, "[coreaudio_create] failed to create " - "semephore: %d", errno); + blog(LOG_ERROR, "[coreaudio_create] failed to create " + "semephore: %d", errno); bfree(ca); return NULL; } + coreaudio_defaults(settings); + ca->device_uid = bstrdup(obs_data_getstring(settings, "device_id")); ca->source = source; ca->input = input; + if (!ca->device_uid) { + blog(LOG_ERROR, "[coreaudio_create] null device id"); + bfree(ca); + return NULL; + } + coreaudio_try_init(ca); return ca; }