Ozkan Sezer
f0e7000f92
alsa: fix signatures of snd_pcm_info_free and snd_pcm_hw_params_get_rate
...
Reference issue: https://github.com/libsdl-org/SDL/issues/13845 .
2025-09-02 17:02:32 +03:00
Ozkan Sezer
d2ab01b8bb
openslES: really fix build..
2025-09-01 20:38:37 +03:00
Ozkan Sezer
f5246d0181
openslES: fix build
2025-09-01 20:25:28 +03:00
Ryan C. Gordon
b8c802632b
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 .
(cherry picked from commit 0b2a003a35 )
(cherry picked from commit 7323104f97 )
2025-09-01 11:37:10 -04:00
Sam Lantinga
5e85a29e75
Support the "ambient" value for SDL_HINT_AUDIO_CATEGORY
...
Fixes https://github.com/libsdl-org/SDL/issues/13732
(cherry picked from commit 4725213eef )
2025-08-12 09:54:57 -07:00
Ryan C. Gordon
afc1d9122b
pipewire: Report correct device default formats instead of hardcoding Float32.
...
The comment in the source wasn't true; PipeWire doesn't _have_ to work in
float format. It presumably does if it has to mix, but if a game is the only
thing making noise on the system--a common scenario--then it might be able to
pass, say, Sint16 data straight through to the hardware without conversion.
Fixes #12129 .
(cherry picked from commit 943c4abcb4 )
2025-07-29 18:21:01 -04:00
Ozkan Sezer
ead4a032d3
sun audio: remove ifdefs, always include sys/audioio.h and sys/ioctl.h
2025-07-27 00:10:02 +03:00
vanfanel
34691de22b
SDL2: Fill the SDL_AudioSpec in add_device()
2025-07-20 23:47:25 -04:00
vanfanel
874ca5a678
SDL2: Add missing symbol loading for SDL_GetDefaultAudioInfo() implementation on ALSA.
2025-07-17 13:08:52 -04:00
vanfanel
8d5984464e
SDL2: Implement SDL_GetDefaultAudioInfo() on the ALSA backend.
2025-07-17 13:08:52 -04:00
Neal Gompa
6be87ceb33
pipewire: Ensure that the correct struct is used for enumeration APIs
...
PipeWire now requires the correct struct type is used, otherwise
it will fail to compile.
Reference: 188d920733
Fixes: https://github.com/libsdl-org/SDL/issues/12224
(cherry picked from commit d35bef64e9 )
2025-03-06 14:36:44 -05:00
Petter Reinholdtsen
24693ac285
Changed PULSEAUDIO_FlushRecording() to only flush audio present when called.
...
When the flushing is not able to keep up with the audio stream coming in,
it will end up flushing forever and block API clients from getting any audio.
Fixes #9706
2025-02-24 07:31:06 -08:00
Sam Clegg
aa00738a21
Fix SDL_emscriptenaudio.c under wasm64
...
Verified locally by running `browser64.test_sdl2_mixer_wav` in
emscripten.
2025-02-18 13:53:58 -08:00
Ryan C. Gordon
20574c016a
coreaudio: Workaround for crash when disconnecting a bluetooth audio device.
...
Our understanding of what's going on here might be incorrect, but it seems
like we're getting this callback at a point where we shouldn't be able to,
with a device we've already closed.
If we're on the wrong track, this code should still be harmless; it just
verifies a device is still in the open list before dereferencing it.
Reference Issue #10432 .
2025-01-04 00:30:31 -05:00
Joshua Root
6024c2731f
prepare_audioqueue: legacy OS compatibility fix
2025-01-02 14:16:33 -08:00
Sam Lantinga
2b5b8fdbd5
Updated copyright for 2025
2025-01-01 07:47:53 -08:00
Sam Lantinga
348bb53cc1
Corrected CoreAudio surround sound channel layouts
...
Fixes https://github.com/libsdl-org/SDL/issues/11709
(cherry picked from commit b2178857dc )
2024-12-24 15:10:35 -08:00
Ryan C. Gordon
ad93f50ee6
emscriptenaudio: Removed comment about Firefox not supporting userActivation.
...
It does now, and has since Firefox 120 (around November 2023).
(cherry picked from commit e0cee83a3a )
2024-12-12 10:52:49 -05:00
staphen
a4ec0b1531
Fix order of events in case audio buffer size changes
2024-11-28 22:28:24 +03:00
Ryan C. Gordon
17b9ed7d82
audio: Favor OpenSL ES over AAudio.
...
There are low-latency fixes in SDL3 that really need to be backported to SDL2
before AAudio will be nicer across a range of devices, so OpenSL ES is safer
in SDL2 at the moment. At least, we suspect as such.
Fixes #11457 .
2024-11-13 18:22:59 -05:00
Sam Lantinga
d2b9ecd281
Revert "aaudio: Set low-latency audio mode."
...
This reverts commit 1e016fd5ea .
In order to use low latency mode, you need to set low latency callbacks. This has always been recommended and is apparently required on Android 15. SDL3 has these implemented correctly but SDL2 does not, so we should revert this for now.
Fixes https://github.com/libsdl-org/SDL/issues/11376
2024-10-29 22:32:59 -07:00
Ryan C. Gordon
5b0e838a74
wasapi: Deal with device buffer sizes changing.
...
Otherwise, it would fill the previous size's worth of data into the current
size's buffer.
Fixes #11122 .
2024-10-28 13:43:48 -04:00
Sam Clegg
3deb07ea39
[emscripten] Fixes for data addresses above 2gb
...
This includes both wasm64 and wasm32 when addressing more than 2gb of
memory.
Fixes : #9052
2024-10-08 16:35:58 -04:00
Ryan C. Gordon
58f2586b44
pulseaudio: Hotplug thread fixes.
...
This used a tiny stack, which apparently upsets Blender for various
technical reasons. Instead, just use the default stack size, which should
give it plenty of space to work.
If the thread failed to create, we would then wait on a semaphore that would
never trigger, so don't do that anymore!
Fixes #10806 .
(cherry-picked from commit b7dc30ca24 )
2024-09-12 18:00:58 -04:00
Anonymous Maarten
248cb3ca9c
Fix -Wdeclaration-after-statement warnings
2024-08-14 10:35:43 +00:00
Anonymous Maarten
11c0dfbdfe
Fix UWP build in non-UNICODE mode
2024-07-19 10:20:11 +00:00
Amir
ccade50587
Fix warning for Android NDK compiler: "function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]"
...
https://stackoverflow.com/questions/42125/warning-error-function-declaration-isnt-a-prototype
In C int foo() and int foo(void) are different functions. int foo() accepts an arbitrary number of arguments, while int foo(void) accepts 0 arguments. In C++ they mean the same thing.
2024-07-17 10:51:30 -07:00
Ryan C. Gordon
510f413bb8
coreaudio: simplify memory leak fix.
...
I _did_ appreciate the explanation, but it doesn't have to live in the
source code; also we can just release `devuid` and then check for error with
the usual macro, since SDL is done with it either way at this point.
(cherry picked from commit 17af09f3a9 )
2024-06-15 11:47:27 -04:00
obeecodes
a9da8dd22d
Addressed memory leak in SDL_coreaudio.m
...
(cherry picked from commit 3b5dce10c4 )
2024-06-15 08:09:14 -07:00
Ryan C. Gordon
4316c5ec02
audio: fix SSE conversion of Sint8 audio to Float32.
...
Fixes #9099 .
2024-02-21 15:16:08 -05:00
Wohlstand
ca01016577
SDL_audiotypecvt.c: Fixed memory corruption when resampling S16 t F32
2024-02-03 08:20:04 -05:00
Ryan C. Gordon
ec25d6b1e8
aaudio: Backport headphone hotplugging support from SDL3.
...
Fixes #4985 .
2024-01-28 00:19:48 -05:00
Ryan C. Gordon
f931b25f4c
wasapi: If GetDeviceBuf can't get a full buffer, go back to waiting.
...
Reference Issue #8924 .
2024-01-26 23:25:43 -05:00
Ryan C. Gordon
1e06a3614f
wasapi: Clamp device->spec.samples to the hardware buffer size.
...
Reference Issue #8924 .
(cherry picked from commit ad1a11164c )
2024-01-26 13:59:46 -05:00
Ryan C. Gordon
1e016fd5ea
aaudio: Set low-latency audio mode.
...
Note that apparently this has caused some weird-sounding audio
on some Android devices, so we might wrap this in a hint later,
or try to check for specific devices.
Fixes #8888 .
2024-01-22 18:23:14 -05:00
pionere
61821bd876
fix audio conversion from S16 to F32 using SSE2
2024-01-22 10:45:58 -05:00
Ryan C. Gordon
1e13aa2c98
androidaudio: same fix as AAudio for pausing thread when backgrounding app.
...
Reference Issue #8748 .
2024-01-19 22:15:27 -05:00
Ryan C. Gordon
910e040e9e
aaudio: Block the audio device thread when in the background.
...
Fixes #8748 .
2024-01-19 15:10:43 -05:00
Ryan C. Gordon
c69e858e7a
audio: Patched to compile (mixed declarations and code).
2024-01-16 10:07:14 -05:00
Ryan C. Gordon
1e2f311811
audio: backport SDL3's audio datatype converters.
...
These are faster and more precise.
This did not change the Uint16 versions (as SDL3 dropped them, and honestly
no one should be using them in SDL2), nor the NEON converters (as this was
not changed in SDL3, so far).
Fixes #8786 .
2024-01-16 10:04:09 -05:00
Sam Lantinga
b6e97d9ff0
Fixed Xcode warnings
2024-01-13 08:15:41 -08:00
jfmu
eb1b9b418c
SDL_audio.c: Fix crash if we switch from direct output to streaming, and if the buffersizes change.
2024-01-04 19:41:38 -05:00
Sam Lantinga
0fc3574464
Updated copyright for 2024
2024-01-01 13:19:49 -08:00
Ryan C. Gordon
c331b64d79
audio: Tighten up possession of detectionLock during device open.
...
We don't need it for most of the time, and holding it during the backend's
OpenDevice upsets ThreadSanitizer vs our PulseAudio code.
Fixes #7427 .
2023-11-20 01:01:49 -05:00
Ryan C. Gordon
e51760e111
audio: Wait for device thread to set device->threadid before continuing.
...
This fixes a (likely harmless) race condition in `is_in_audio_device_thread`.
Reference Issue #7427 .
2023-11-19 12:26:51 -05:00
Ryan C. Gordon
42d979a231
audio: Just use the system default stack size for the device thread.
...
Fixes #7367 .
2023-11-19 11:10:29 -05:00
Anonymous Maarten
d81d986858
cmake: fix uses of undefined macro identifiers (-Wundef)
2023-11-17 03:06:26 +00:00
Sylvain Becker
f3419d8c04
Re-add SDL_assert() with non boolean ptr syntax ( #8531 )
2023-11-11 12:29:05 +03:00
Sylvain Becker
a14b948b6c
[SDL2] pointer boolean ( #8523 )
2023-11-10 06:30:56 -08:00
Ryan C. Gordon
9d7feaaf9e
coreaudio: If paused, clear any pending stream data.
...
This makes sure stuff that was still pending for conversion/resampling doesn't
pop in later when the device is unpaused again.
Fixes #8485 .
2023-11-06 09:57:00 -05:00