From 2eb5a2288a221cc17ddf497d22f1732e8a3057e9 Mon Sep 17 00:00:00 2001 From: Daniel Lopez Date: Fri, 8 Jun 2018 19:03:53 -0500 Subject: [PATCH 1/3] libobs: Fix Monitoring devices showing input devices This bug fix is to show output devices in the Advanced Audio Settings configuration, where currently on macOS it shows erroneously input devices. --- libobs/audio-monitoring/osx/coreaudio-enum-devices.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libobs/audio-monitoring/osx/coreaudio-enum-devices.c b/libobs/audio-monitoring/osx/coreaudio-enum-devices.c index 52be3f462..e7227b511 100644 --- a/libobs/audio-monitoring/osx/coreaudio-enum-devices.c +++ b/libobs/audio-monitoring/osx/coreaudio-enum-devices.c @@ -32,7 +32,7 @@ static bool obs_enum_audio_monitoring_device(obs_enum_audio_device_cb cb, /* check to see if it's a mac input device */ if (!allow_inputs) { AudioObjectGetPropertyDataSize(id, &addr, 0, NULL, &size); - if (!size) + if (size) return true; } From ceac83e4994572a5ac975f0b5005014e12b6e818 Mon Sep 17 00:00:00 2001 From: Daniel Lopez Date: Fri, 8 Jun 2018 19:05:23 -0500 Subject: [PATCH 2/3] libobs: Add check for cf_uid pointer free This little change skips returning true immediately when a call to CoreAudio fails. Instead, it uses similar behavior as further 3 calls below this change, just checking for unfreed pointers before also returning true. --- libobs/audio-monitoring/osx/coreaudio-enum-devices.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libobs/audio-monitoring/osx/coreaudio-enum-devices.c b/libobs/audio-monitoring/osx/coreaudio-enum-devices.c index e7227b511..22842ed88 100644 --- a/libobs/audio-monitoring/osx/coreaudio-enum-devices.c +++ b/libobs/audio-monitoring/osx/coreaudio-enum-devices.c @@ -41,7 +41,7 @@ static bool obs_enum_audio_monitoring_device(obs_enum_audio_device_cb cb, addr.mSelector = kAudioDevicePropertyDeviceUID; stat = AudioObjectGetPropertyData(id, &addr, 0, NULL, &size, &cf_uid); if (!success(stat, "get audio device UID")) - return true; + goto fail; addr.mSelector = kAudioDevicePropertyDeviceNameCFString; stat = AudioObjectGetPropertyData(id, &addr, 0, NULL, &size, &cf_name); From 4cebbcc23b3cdcaebf3719f85f8e03fd73c58a6a Mon Sep 17 00:00:00 2001 From: Daniel Lopez Date: Fri, 8 Jun 2018 19:06:23 -0500 Subject: [PATCH 3/3] libobs: Fix compilation issue on case-sensitive filesystems When using a macOS running on a case-sensitive filesystem, the project build fails due to AudioToolBox/AudioQueue.h not being found. The correct path is AudioToolbox/AudioQueue.h. Since macOS comes with a case-insensitive filesystem by default, this is a rare ocurrence among developers who change it to be case-sensitive. --- libobs/audio-monitoring/osx/coreaudio-output.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libobs/audio-monitoring/osx/coreaudio-output.c b/libobs/audio-monitoring/osx/coreaudio-output.c index 3e2bcd1cd..458b23cc2 100644 --- a/libobs/audio-monitoring/osx/coreaudio-output.c +++ b/libobs/audio-monitoring/osx/coreaudio-output.c @@ -1,5 +1,5 @@ #include -#include +#include #include #include