host: cross-platform audio decode (Android has sound)
Replace the macOS-only AudioToolbox decoder with mt_host::decode_audio: a RIFF/WAVE PCM parser plus vendored dr_mp3, resampled/remixed to 44.1 kHz stereo float with SDL_ConvertAudioSamples. macOS and Android now share one path; the AudioToolbox link is gone. BGM is no longer cached in clips_ (a 5-minute track is ~100 MB of float): only the playing track is kept, and a new one decodes on a worker thread (the pack read stays on the main thread) so map changes do not stall. host.audio_decode test: synthetic wav layouts + all 1578 pack .wav, 9 pack .mp3 and 25 Client/BGM .mp3 decode (7060 s of audio in ~3.6 s on M2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
75d2dd8545
commit
eab5938072
+1
-1
@@ -54,7 +54,7 @@ vendored `stb_image.h` is upstream v2.30 (SHA-256
|
||||
|
||||
### Interactive Playable Modes
|
||||
|
||||
Run the full 40250 client interactively (infinite frame loop until window close, resizable SDL3 window with automatic Vulkan swapchain recreation and `PythonBoot::SetUISize` sync, full keyboard/IME text input, SDL hardware cursor built from the original cursor images, and SDL3 + `AudioToolbox` `.wav`/`.mp3` audio):
|
||||
Run the full 40250 client interactively (infinite frame loop until window close, resizable SDL3 window with automatic Vulkan swapchain recreation and `PythonBoot::SetUISize` sync, full keyboard/IME text input, SDL hardware cursor built from the original cursor images, and SDL3 `.wav`/`.mp3` audio via `audio_decode.cpp` + dr_mp3, the same on every platform):
|
||||
|
||||
```sh
|
||||
# Interactive outdoor map session (auto-login via loopback FakeLoginServer)
|
||||
|
||||
Reference in New Issue
Block a user