Ryan C. Gordon
b17151eb16
testaudio: Don't crash if renderer is NULL (happens during shutdown).
2023-10-14 13:43:22 -04:00
Ryan C. Gordon
7f408e57ee
audio: Keep all available devices in a hashtable instead of linked lists.
...
All devices are in a single hash, whether playback or capture, or physical
or logical. Lookups are keyed on device ID and map to either
`SDL_AudioDevice *` for physical devices or `SDL_LogicalAudioDevice *` for
logical devices (as an implementation detail, you can determine which object
type you have by checking a specific bit in the device ID).
This simplifies a bunch of code, makes some cases significantly more
efficient, and solves the problem of having to lock each physical
device while the device list rwlock is held to find logical devices by ID.
Device IDs hash perfectly evenly, too, being incrementing integers.
2023-10-14 13:34:42 -04:00
Ryan C. Gordon
0aba2c97db
hashtable: SDL_IterateHashTable might as well provide both key and value.
...
And SDL_IterateHashTableKey is only necessary for stackable hashtables, since
non-stackable ones can either iterate each unique key/value pair with
SDL_IterateHashTable, or get a specific key/value pair by using
SDL_FindInHashTable.
2023-10-14 13:23:03 -04:00
Ryan C. Gordon
95a9271dbf
audio: Never lock a device while holding the device_list_lock.
...
Fixes various not-necessarily-corner cases ending in deadlock.
2023-10-13 14:18:21 -04:00
kanjitalk755
9aeabb0b05
Fix macOS build error by #8269
2023-10-12 19:35:05 -07:00
Anonymous Maarten
382751c4b5
testffmpeg: print usage of options to change audio/video codec
2023-10-13 02:30:14 +02:00
Sam Lantinga
f91bde64d5
testffmpeg: Only enable blending if we're using a texture format that supports it
2023-10-12 14:26:46 -07:00
Sam Lantinga
516d6f9efc
testffmpeg: added support for YUVA formats using swscale
...
Fixes https://github.com/libsdl-org/SDL/issues/8377
2023-10-12 14:10:25 -07:00
Ryan C. Gordon
ac71831350
Sync wiki -> headers
2023-10-12 15:20:53 -04:00
Sam Lantinga
d18f910248
testffmpeg: added the ability to specify audio and video codecs
2023-10-12 11:38:14 -07:00
Frank Praznik
72034b9a07
wayland: Fix primary selection handling when the protocol isn't supported
...
The primary selection protocol is optional, so the function pointers to the internal Wayland functions should only be set if the protocol is supported. This allows graceful fall-back to the generic SDL implementation in other cases.
Fixes the clipboard tests under Weston.
2023-10-12 12:32:27 -04:00
kanjitalk755
e152129787
Fixes #8190 .
...
From #7249 , reverted the hunks other than #7239 .
2023-10-12 07:17:32 -07:00
Sam Lantinga
b79db0a6ea
Fixed potential wraparound issue with property IDs
2023-10-12 06:22:34 -07:00
Anonymous Maarten
c9ccf0670c
Add unsupported functions to dynapi
2023-10-12 14:00:47 +02:00
Anonymous Maarten
25ce87979d
Always provide an implementation for all SDL3 symbols
2023-10-12 14:00:47 +02:00
Anonymous Maarten
3a36433a3c
cmake: test -Wl,--version-script with minimal version script
...
Android ndk 26 errors when a symbol in the version script is not defined.
2023-10-12 14:00:47 +02:00
Anonymous Maarten
0efa196989
dynapi: implement SDL_DYNAPI_entry even when building SDL without dynapi support
2023-10-12 14:00:47 +02:00
Sam Lantinga
bf64fecf19
testffmpeg: allow resizing of the video window
2023-10-12 00:04:00 -07:00
Sam Lantinga
efa9a45048
Clarified that testffmpeg will resize the window to the video size
2023-10-11 23:38:08 -07:00
Sam Lantinga
4368f70ff9
Added properties to various SDL objects
...
The following objects now have properties that can be user modified:
* SDL_AudioStream
* SDL_Gamepad
* SDL_Joystick
* SDL_RWops
* SDL_Renderer
* SDL_Sensor
* SDL_Surface
* SDL_Texture
* SDL_Window
2023-10-11 22:38:00 -07:00
Sam Lantinga
973c8b3273
Added SDL properties API
...
Fixes https://github.com/libsdl-org/SDL/issues/7799
2023-10-11 22:38:00 -07:00
Ryan C. Gordon
2bca4671a6
audio: Allow audio streams to be created when the subsystem isn't initialized.
...
You are on your own to destroy them, though!
2023-10-11 22:43:53 -04:00
Anonymous Maarten
1ae33f6751
cmake: optionally install pdb's
2023-10-12 02:26:48 +02:00
Sam Lantinga
0d5cad91b1
We need audio converters initialized in SDL_InitAudio()
...
These are used separately from audio streams, e.g. SDL_OutputAudioThreadIterate(), so they should always be initialized when audio is initialized.
2023-10-11 15:11:34 -07:00
Ryan C. Gordon
1c3a0ade74
audio: Whoops, this stream format change is only for capture devices.
2023-10-11 15:11:20 -04:00
Ryan C. Gordon
10fab3a39e
pulseaudio: Stop the threaded mainloop before destroying the context.
...
Otherwise, we might trigger an assertion in libpulse.
Reference Issue #8348 .
2023-10-11 14:32:47 -04:00
Sam Lantinga
0b71898cb1
Make it clear that the string comparison isn't a boolean check
2023-10-11 10:18:12 -07:00
Sam Lantinga
6c8ad975c7
Like mutexes, operations on NULL rwlocks are no-ops
...
Fixes a crash when performing operations on a NULL rwlock before rwlock implementation is chosen
2023-10-11 09:49:44 -07:00
Sam Lantinga
c552cc6847
We don't require the audio system to be initialized for audio format conversion
...
This is helpful for tools pipelines where audio devices are never used.
2023-10-11 09:23:23 -07:00
Frank Praznik
9a5f7b17c6
Use SDL wrapped getenv function
2023-10-11 11:23:24 -04:00
Ryan C. Gordon
044046bc50
audio: Fixed assertions when capture devices have wrong audio formats.
...
Fixes #8376 .
2023-10-11 10:37:28 -04:00
Ryan C. Gordon
bb2f767f5d
testaudio: Make program usable without a 3-button mouse.
2023-10-11 10:02:07 -04:00
Ryan C. Gordon
321fc18417
README-migration.md: Added note about SDL_HasRDTSC removal.
...
Fixes #8374 .
2023-10-11 01:20:18 -04:00
Ryan C. Gordon
82f54af617
x11: Properly check for XInput2 support before using it.
...
This specifically fixes a crash in X11_WarpMouseInternal if XInput2 was
missing at runtime, but also cleans up a few other existing checks.
Fixes #8378 .
2023-10-11 01:01:07 -04:00
Sam Lantinga
b654427537
Added support for the PowerA Nintendo Switch Nano Wired Controller
2023-10-10 17:04:00 -07:00
Sam Lantinga
dc2a5f6ab2
Fixed error C2054: expected '(' to follow 'inline'
2023-10-10 16:38:12 -07:00
Sam Lantinga
a7ae1de9a6
Fixed warning C4028: formal parameter different from declaration
2023-10-10 16:37:17 -07:00
Sam Lantinga
3a47fb7208
The sensor and joystick instance ID generator isn't guarded by a lock.
2023-10-10 15:46:46 -07:00
Anonymous Maarten
aee4862958
ci: stop FreeBSD job after 30 minutes
2023-10-11 00:22:30 +02:00
Sam Lantinga
99fa0d6cae
Disable low latency audio by default when using AAudio on Android
...
Some devices have flat sounding audio when low latency mode is enabled. In particular this was reported on the Samsung SM-T290 running Android 11.
2023-10-10 15:17:58 -07:00
Anonymous Maarten
ebfbd7327b
testffmpeg: use SDL_test to parse arguments and track memory
2023-10-10 21:58:10 +02:00
Anonymous Maarten
ee53e4d319
cmake: check ffmpeg capability instead of version
2023-10-10 21:58:10 +02:00
Sam Lantinga
2d62c65a75
Fixed build warning
2023-10-10 12:37:38 -07:00
Simon McVittie
bf72704bfd
audio: Disable NEON sample conversion until test failures are fixed
...
We need to do this early in the file, so that it will be taken into
account when deciding whether to define NEED_SCALAR_CONVERTER_FALLBACKS
and therefore provide a non-SIMD fallback.
Mitigates: https://github.com/libsdl-org/SDL/issues/8352
Signed-off-by: Simon McVittie <smcv@collabora.com>
2023-10-10 13:12:55 -04:00
Ryan C. Gordon
0fe95cfba3
Sync wiki -> header
2023-10-10 10:49:24 -04:00
Sam Lantinga
adcace6f95
Added a "--software" option to testffmpeg
...
This allows easy performance comparison between hardware and software decoding
2023-10-10 04:07:22 -07:00
Ozkan Sezer
86ada8a9f0
fix testffmpeg.c build.
2023-10-10 14:02:40 +03:00
Sam Lantinga
303f4e965c
testffmpeg works with ffmpeg 5.1.3 and newer
2023-10-10 03:58:57 -07:00
Sam Lantinga
2bd478ae65
Added SDL_GetTextureDXGIResource() to get the DXGI resource associated with a render texture.
...
Also switched the D3D11 and D3D12 renderers to use real NV12 textures for NV12 data.
The combination of these two changes allows us to implement 0-copy video decode and playback for D3D11 in testffmpeg without any access to the renderer internals.
2023-10-10 03:32:46 -07:00
Sam Lantinga
a842446f62
Added support for 0-copy decode and display using D3D11
...
FIXME: We need a way to do this that doesn't involve reaching into the D3D11 texture internals
2023-10-10 03:32:46 -07:00