New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't seem to get Mac OS X Audio working with FreeRDP #6882
Comments
Note that my system has a lot of sound devices, including every single monitor connected to it (over DisplayPort) -- Does FreeRDP make sure it's correctly reporting to the right sound device? Is there a way to double check that? |
@Nexarian I´d start with a test without |
I also have it working on my Mac now, but there are still problems. I have my macbook attached to a CalDigit TS3+ docking station, and the audio only outputs through that. If I switch to the native MacBook speakers, it goes silent. I suspect it's defaulting to whatever device "0" is, and ignoring the default Mac OS X selection. This also means that bluetooth headphones are also silent. I think the problem is definitely device redirection. I'm not sure what FreeRDP intends to support here, but one hacky solution might be to have a CLI option that causes FreeRDP to output the list of devices and what they correspond to, and then give you a command line flag that's appropriate for redirection to the proper device. The other weird thing, is I have to select the CalDigit device as the default output on Mac OS to hear anything from FreeRDP. You'd think that sound would play through the CalDigit regardless of what is selected if FreeRDP is hard-outputting to it. For those who may be wondering how exactly to get it working though, these are the build flags I used. If cmake throws an error for missing headers, I used Homebrew to install the proper package. Note: Don't use Homebrew itself to install FreeRDP as it doesn't have the WITH_MACAUDIO option enabled.
|
After digging into the code more, the code here https://github.com/FreeRDP/FreeRDP/blob/master/channels/rdpsnd/client/mac/rdpsnd_mac.m#L147 Specifies not the default output the device, but instead the "Play sound effects through" device, see this Stackoverflow link: Indeed, I tested this. When I change to I'm guessing the |
After further testing, this works, but it's not complete. This doesn't adapt to changes in the Mac OS X default system output device. FreeRDP should probably default to that behavior unless a device ID is explicitly set for sound, which should probably also be supported. I don't fully understand the way the AVAudioEngine for Mac OS X is supposed to work here, and examples on the web seem strangely scarce. Here are some breadcrumbs: https://stackoverflow.com/questions/26070058/how-to-get-notification-if-system-preferences-default-sound-changed |
(cherry picked from commit b09d204)
(cherry picked from commit b09d204)
Naxarian... quick question.. I followed your build instructions and they worked for me too.... but I am getting a display error not defined now... also how do you verify freerdp is working and on what port. Lastly can you change the port to something different? |
Describe the bug
MACAUDIO backend seems to be broken on Mac OS X (Catalina 10.15.7). I can clearly see the audio buffer being received in the logs, but there is no sound period. This happens with both an XRDP backend (Where the Mac OS Remote Desktop client has sound) as well as when I connect to an up-to-date Windows 10 installation (Where also, the Microsoft client has working sound).
I've tried changing the device (/sound:dev:1-6), as well as playing with multiple
sys
options. No sound. Sometimes, and very rarely, I'll hear the sound but it's very scattered and jittery and not good.To Reproduce
Build with the following:
When I add /log-level:debug, it's clear there was a lot of buffering as I see a lot of sound messages, like the following:
But no sound plays
The text was updated successfully, but these errors were encountered: