mirror of
https://github.com/yattee/yattee.git
synced 2026-07-20 14:22:02 +00:00
afa73e6bcb997089e154a9d9edb2f49bafeb7ee2
On macOS 27 beta, mpv's coreaudio AO fails to initialize (channel layout set rejected with paramErr -50). The existing ao=coreaudio,avfoundation fallback restored audio, but exposed an mpv bug: init() registers a HAL hotplug listener (AudioObjectAddPropertyListener on the system object, with the raw ao pointer as user data) before the step that fails, and the coreaudio_error path never unregisters it. mpv then frees the ao and falls back to avfoundation, leaving a dangling listener per playback start. The next audio device change (AirPods connect, sleep/wake device republish) invokes the listener with the freed pointer and crashes with a use-after-free SIGSEGV on the HALC_ProxyNotification Call Listener Queue (observed in build 262; faulting address was reused "texture_" shader string memory). Gate the AO order by OS version: on macOS 27+ use avfoundation,coreaudio so the failing coreaudio init never runs; older macOS keeps the native coreaudio first with avfoundation as fallback. Update the read-only defaults mirror in MPV options settings to match.
Yattee 2 is in the works! A new version of the app is being built with a refreshed experience. It pairs with the new Yattee Server — a self-hosted backend powered by yt-dlp that supports 1000+ sites. Join the TestFlight beta to try early builds, and check the new documentation site at docs.yattee.stream for guides, roadmap and changelog.
Features
- Native user interface built with SwiftUI with customization settings
- Player queue and history
- Player component with custom controls, gestures and support for 4K playback
- Fullscreen, Picture in Picture and background audio playback
- SponsorBlock, configurable categories to skip
License
Yattee and its components is shared on AGPL v3 license.
Languages
Swift
96.1%
Ruby
3.4%
C
0.4%
Shell
0.1%