Sam Lantinga
2f4919c6ff
Use 20 ms as the default audio buffer size on Android
...
It turns out that Android will not pick a low latency buffer size by default.
(cherry picked from commit c381b2bdfa )
2026-02-13 14:35:25 -08:00
Ryan C. Gordon
723b77ede8
wasapi: Patched to compile.
...
(cherry picked from commit 31404a9dcb )
2026-02-10 11:35:33 -05:00
Ryan C. Gordon
a806a9092b
wasapi: stop infinite loop in audio thread when recording device is unplugged.
2026-02-10 09:24:34 -05:00
Max Seidenstücker
576c2d2f2c
Merge all occurances of __func__ and __FUNCTION__ to SDL_FUNCTION
...
(cherry picked from commit 8f8880a8eb )
2026-02-08 11:56:12 -08:00
William Horvath
054bea938a
dummyaudio: Remove bitrotted support for __EMSCRIPTEN_PTHREADS__ code path.
...
In SDL_audio.c:OpenPhysicalAudioDevice, an attempt is made to SDL_CreateThread
if ProvidesOwnCallbackThread is false, but SDL_CreateThreadWithPropertiesRuntime
is not implemented for Emscripten, so this always fails. I'm not sure if/when
this ever worked, but it simply cannot work in its current state.
(cherry picked from commit 8ee7dc2f9f )
2026-02-08 09:32:18 -08:00
Ryan C. Gordon
d9bc9dda7a
emscripten: Cleanup some wasm32/wasm64 ifdefs.
...
Fixes #14066 .
(cherry picked from commit bb6ced6fc0 )
2026-02-02 19:23:33 -05:00
Ryan C. Gordon
f9bb023eeb
emscripten: Unify creation of Module['SDL3'] in at SDL_Init time.
...
(cherry picked from commit 7d093940a7 )
2026-02-02 19:23:28 -05:00
Eddy Jansson
ff2a43bfbf
Fix typos in comments.
...
(cherry picked from commit 23fec649c2 )
2026-01-30 07:25:35 -08:00
Sam Lantinga
80c6a5f8d9
Updated copyright for 2026
2026-01-01 09:48:19 -08:00
Ryan C. Gordon
7d66d3271b
emscriptenaudio: Don't force reset SDL3.audio_recording/audio_playback.
...
Otherwise, opening devices for recording and playback at the same time will
cause problems.
2025-12-30 15:40:25 -05:00
Ryan C. Gordon
b681862f14
emscripten: Don't pass an argument to MAIN_THREAD_EM_ASM_INT we don't use.
...
This upsets things, because you end up calling a javascript function with
more arguments than it expects, and if asserts are enabled, Emscripten notices
this and aborts the program when you hit this code.
Reference Issue #14670 .
2025-12-30 15:40:25 -05:00
Anonymous Maarten
9dd3e2305e
dlnote: embed trailing semicolon in SDL_ELF_NOTE_DLOPEN macro
2025-12-24 23:45:50 +03:00
Ryan C. Gordon
6f774908fe
audio: SDL_GetAudioDeviceName() now works with the default device IDs.
...
Fixes #14615 .
2025-12-08 11:25:15 -05:00
Ryan C. Gordon
c1db2b4bb0
Revert "hints: Added SDL_HINT_AUDIO_ENFORCE_MINIMUM_SPEC."
...
Revert "Sync SDL3 wiki -> header"
This reverts commits b7c8b2f29a and
29213efa65 .
2025-12-01 14:39:48 -05:00
unknown
b7c8b2f29a
hints: Added SDL_HINT_AUDIO_ENFORCE_MINIMUM_SPEC.
...
Fixes #14426 .
2025-11-30 23:26:02 -05:00
Ryan C. Gordon
7db0e48454
wasapi: Minor style tweaks.
2025-11-13 20:58:21 -05:00
unknown
b9c790949e
wasapi: Don't ignore device disconnect events on unopened devices.
...
Reference Issue #13317 .
2025-11-09 01:15:45 -05:00
Joshua T. Fisher
641deb9c0e
Initial port to SDL3 audio subsystem
2025-11-03 10:08:50 -05:00
Sam Lantinga
97e2951875
Removed redundant wait at shutdown in the ALSA audio driver
2025-11-02 18:30:12 -08:00
Sam Lantinga
0882623092
Clamp the audio drain delay to 100 ms
...
Fixes https://github.com/libsdl-org/SDL/issues/9829
2025-11-02 11:15:25 -08:00
Arkadiusz Hiler
0d2f081d41
pulseaudio: Match channel map to SDL's chosen order
...
pa_channel_map_init_auto() with PA_CHANNEL_MAP_WAVEEX does the wrong
thing as it just takes the lest significant bits of
WAVEFORMATEXTENSIBLE's dwChannelMask in order. This doesn't match SDL's
chosen channel ordering.
The implementation here mirrors what we do for PipeWire.
2025-10-30 13:32:43 -07:00
Sam Lantinga
a7147f327f
Temporarily disable WASAPI device roles
...
Setting AudioCategory_GameChat breaks audio on several devices, including Behringer U-PHORIA UM2 and RODE NT-USB Mini. We'll disable this for now until we understand more about what's happening.
2025-10-30 07:27:23 -07:00
Eddy Jansson
aaee09d6ed
Don't do NULL-checks before SDL_free()
...
Replaces the pattern
if (ptr) {
SDL_free(ptr);
}
with
SDL_free(ptr);
2025-10-20 00:13:09 -07:00
Sam Lantinga
a58ae3a94f
Added WASAPI support for SDL_HINT_AUDIO_DEVICE_STREAM_ROLE
...
Also added SDL_HINT_AUDIO_DEVICE_RAW_STREAM
Fixes https://github.com/libsdl-org/SDL/issues/14091
2025-10-13 14:20:19 -07:00
Ryan C. Gordon
0467c531fa
wasapi: Check for a NULL device during disconnect handling.
...
This is probably something we already cleaned up that has something running
in an unexpected order now that we've moved disconnect work to the main thread.
2025-10-03 09:36:31 -04:00
mccakit
d42bf59c66
wasm64 lto fix
2025-09-28 19:33:48 -04:00
Ryan C. Gordon
2676f23910
audio: fix crash in SDL_GetAudioStreamOutputChannelMap.
...
Fixes #14058 .
2025-09-27 13:31:29 -04:00
Ryan C. Gordon
e528d5bd9f
wasapi: Don't proxy device disconnect to the WASAPI management thread.
...
It gets proxied to the main thread, now.
Fixes deadlocks when unplugging a playing USB audio device.
2025-09-26 14:11:08 -04:00
Ryan C. Gordon
65e462a6f2
audio: Handle device disconnects on the main thread.
...
This avoids situations like:
- PulseAudio holds its own lock in the hotplug thread.
- The hotplug thread notices a device went away.
- The hotplug thread calls SDL_AudioDeviceDisconnected().
- SDL_AudioDeviceDisconnected() tries to grab the device lock.
- The device thread is holding the device lock...
- ...but is currently waiting on PulseAudio's lock to release.
In short: deadlock. It's better to queue this work to run on the main thread,
where we can guarantee a start with _none_ of the audio subsystem locks held.
2025-09-25 16:02:19 -04:00
Ryan C. Gordon
09ee8876b3
wav: Patched to compile on Visual Studio.
2025-09-22 10:37:52 -04:00
Ryan C. Gordon
44e4deab7c
wav: Clamp DATA chunk to size of file if possible.
...
Prevents a malicious file from malloc'ing multiple gigabytes.
Fixes #10052 .
2025-09-22 09:50:56 -04:00
Sam Lantinga
25b2d2c821
Use new parameter validation macro
2025-09-18 20:58:32 -07:00
nightmareci
2f5bc17ea6
Fix support for Windows XP and up ( #13904 )
2025-09-08 13:00:26 -07:00
Ryan C. Gordon
937bf4d789
alsa: Restart PCM devices after recovery from an overrun/underrun.
...
snd_pcm_recover() puts the device back in SND_PCM_STATE_PREPARED state; you
have to explicitly restart the device afterwards with snd_pcm_start().
Fixes #13761 .
2025-09-05 13:50:06 -04:00
Sam Lantinga
9abeeebad5
Fixed warning: no previous prototype for function
2025-09-03 11:23:55 -07:00
Ryan C. Gordon
7323104f97
openslES: Patched to compile.
...
(whoops.)
2025-09-01 11:10:02 -04:00
Ryan C. Gordon
0b2a003a35
openslES: OpenSL ES on Android only supports two formats, limit to that.
...
(Three with the floating point extension, which we use.)
This is according to:
https://developer.android.com/ndk/guides/audio/opensl/opensl-for-android
Previously, this would accept a request for Sint8 or Sint32 and disaster
would ensue.
Fixes #13779 .
2025-09-01 10:30:29 -04:00
Anonymous Maarten
0a6b80717c
Record dynamic dependencies in .note.dlopen elf section
2025-08-27 16:11:39 +00:00
Ryan C. Gordon
8f04e4af00
audio: Clean out all the bitshifting.
...
Hide the implementation details in something human-readable.
2025-08-25 13:10:51 -04:00
Ryan C. Gordon
01d94ca9de
audio: Renamed device_hash_lock to subsystem_rwlock.
...
It protects more than the device hashes!
2025-08-25 13:10:51 -04:00
Ryan C. Gordon
226fecff78
audio: Split current_audio.device_hash into two separate hashtables.
...
One for physical devices, one for logical devices.
Fixes #13032 .
2025-08-25 13:10:51 -04:00
ChaseKnowlden
a743fb578c
Use PulseAudio fragsize buffer correctly
...
Fixes broken microphone input in Sober
2025-08-13 17:36:44 -04:00
Sam Lantinga
4725213eef
Support the "ambient" value for SDL_HINT_AUDIO_CATEGORY
...
Fixes https://github.com/libsdl-org/SDL/issues/13732
2025-08-12 09:54:20 -07:00
Petar Popovic
23e08f7807
SDL_LoadWAV_IO(): On error, set *audio_buf to NULL and *audio_len to 0
2025-08-03 13:44:10 -04:00
Petar Popovic
1749aba641
Fixed a few "-Wredundant-decls" warnings
2025-08-01 18:35:02 +03:00
Wouter Wijsman
3d1a28ccf2
psp: fix audio not playing
2025-07-30 13:11:05 -07:00
Sam Lantinga
c663b6ec1f
Don't leave garbage in output parameters
2025-07-29 20:48:56 -07:00
Ozkan Sezer
9c54d686aa
arguably better wording..
2025-07-27 20:00:02 +03:00
Brenton Bostick
ed4de7aeed
Fix warning on Android arm-v7
...
Building SDL for armeabi-v7a gives this warning:
```
SDL/src/audio/SDL_audiotypecvt.c:541:14: warning: '#pragma FENV_ACCESS' is not supported on this target - ignored [-Wignored-pragmas]
541 | #pragma STDC FENV_ACCESS ON
```
2025-07-27 08:15:44 -07:00
Brenton Bostick
f361034ac3
fix typos
2025-07-27 08:10:03 -07:00