CoreAudio: Set default audio settings on creation

device_id would end up being null, which would mess with the functions.
This commit is contained in:
jp9000 2014-03-11 19:42:04 -07:00
parent 74a3dfcf69
commit ae1fffef7a

View File

@ -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;
}