-
Notifications
You must be signed in to change notification settings - Fork 323
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
PA/CoreAudio uses some "deprecated" APIs which fail on Mac OS 11.0 #218
Comments
@hoolrory assigned to you as requested. |
Just to clarify: portaudio fails in runtime on macOS 11 only if the program is built against macOS SDK 11. |
Thanks for the clarification. It seems we are on the edge of PortAudio not working but have not yet fallen off the edge. I will lower the priority to P2. |
I can confirm this. We are building PortAudio with the macOS 10.15 SDK for Mixxx and users have not reported issues with PortAudio using our builds on macOS 11. |
Actually, users on macOS 11 are having issues accessing audio hardware. I am not sure if this is due to this PortAudio issue or the macOS Hardened Runtime. I have enabled both the |
The latest stable PortAudio uses a deprecated API which has been removed on macOS 11. PortAudio/portaudio#356 PortAudio/portaudio#218
The latest stable PortAudio uses a deprecated API which has been removed on macOS 11. PortAudio/portaudio#356 PortAudio/portaudio#218
The latest stable PortAudio uses a deprecated API which has been removed on macOS 11. PortAudio/portaudio#356 PortAudio/portaudio#218
The latest stable PortAudio uses a deprecated API which has been removed on macOS 11. PortAudio/portaudio#356 PortAudio/portaudio#218
The latest stable PortAudio uses a deprecated API which has been removed on macOS 11. PortAudio/portaudio#356 PortAudio/portaudio#218
I was wrong about this. GitHub Actions is now using the macOS 11.0 SDK and users have been having issues with it. |
Fixed by #356. |
Closing hits. The deprecated calls have been replaced. The crash when building with Mac SDK 11 seems to be a different problem. |
Reopening because Gestalt() is still used in PaMacCore_Initialize(). |
We are very close to closing this. About |
@jmelas I thought that we already removed support for 10.5 |
We removed support for 10.4 but kept 10.5 |
Resolved by #511 which removes OSX 10.5 compatibility. |
||PaMacCore (AUHAL)|| AUHAL component not found.I am still facing this issue. By reading the whole discussion in this thread and other threads, I came to the understanding that now it works for Mac OS Big Sur, but clearly this is not the case. I have checked the version of portaudio as well. I am running the latest version 19.6 but I am still facing this error. Kindly suggest a workaround. |
Hey i am having the same problem with BigSur. To fix this shall i download Xcode 12.1 or Xcode 12.1.1 Release Candidate? |
Hello All I have the same problem trying porting portaudio to IOS Any idea? |
Issue created by @RossBencina
We are using a number of APIs that Apple have marked as deprecated. Some were deprecated in OS X 10.5, OS X 10.6, others in OS X 10.8.
We are using the old APIs for compatibility with older OS X versions. At this stage we wish to continue to support OS X 10.4 and later, so upgrading to APIs added in 10.5 and later is not an option.
The use of deprecated APIs presents two minor issues:
At this stage there are no obvious technical advantages to moving to the newer APIs. Our plan is to deal with these either when the deprecated APIs are removed completely or when we stop supporting older OS X versions for other reasons. The API functions are listed below along with comments on the migration path.
Core Audio Property Accessor APIs
We use the following old-style HAL Property Accessor functions:
Since OSX 10.5 these Core Audio HAL APIs have newer direct replacements.
See http://developer.apple.com/library/mac/#technotes/tn2223/_index.html
Audio Converter Services AudioConverterFillBuffer
Since OS X 10.5 AudioConverterFillBuffer is deprecated in favor of AudioConverterFillComplexBuffer.
See https://developer.apple.com/library/mac/#documentation/MusicAudio/Reference/AudioConverterServicesReference/Reference/reference.html
Component Manager APIs for instantiating Audio Units (requires Carbon.framework)
These Component Manager functions are used for instantiating Audio Units. They require linking with Carbon.framework.
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
Since OS X 10.6 they are superseded by functions in Audio Component Services. The new functions reportedly have the same signatures. We could potentially dynamically load the old or new functions depending on availability (as we do for DirectSound APIs on Windows).
See https://developer.apple.com/library/mac/#documentation/AudioUnit/Reference/AudioComponentServicesReference/Reference/reference.html
Gestalt function (requires Carbon.framework)
We use the Gestalt function to check the OS version to execute some code for OSX10.6 and later.
Since OS X 10.8 the Gestalt function is deprecated. It requires linking with Carbon.framework.
See https://developer.apple.com/library/mac/#documentation/Carbon/Reference/Gestalt_Manager/Reference/reference.html#//apple_ref/doc/uid/TP30000036-CH202-SW1
A thread on Stackoverflow proposes several alternatives to Gestalt(), none of which seem great while Gestalt() is still available: http://stackoverflow.com/questions/11072804/mac-os-x-10-8-replacement-for-gestalt-for-testing-os-version-at-runtime
Note on CF* CoreFoundation APIs
We use a number of Core Foundation functions such as CFString functions, CFRelease etc. These are not deprecated. However, we are currently linking against Carbon.framework for these. We should be linking against CoreFoundation.framework
The text was updated successfully, but these errors were encountered: