Sam Lantinga
aafbbe4ebc
Fixed warning C4090: 'function': different 'const' qualifiers
2024-07-19 15:38:41 -07:00
Sam Lantinga
02dceed760
Simpler pointer arithmetic
2024-07-19 13:06:54 -07:00
Sam Lantinga
68322ac851
Ensure that all functions that follow the SDL_GetStringRule return temporary memory
2024-07-19 12:22:03 -07:00
Sam Lantinga
01199469de
SDL_GetCameras() follows the SDL_GetStringRule
2024-07-19 12:22:03 -07:00
Sam Lantinga
0fe6603747
SDL_GetCameraSupportedFormats() follows the SDL_GetStringRule
...
Also changed the function to return an array of pointers and added example usage to testcamera
2024-07-19 12:22:03 -07:00
Sam Lantinga
bb96320cc4
Make sure we always copy the data returned using SDL_GetStringRule
...
This prevents race conditions where calling an API from one thread returns the data and it's freed by updates on another thread
2024-07-19 12:22:03 -07:00
Sam Lantinga
58270ef3f2
Finished renaming functions in SDL_system.h
2024-07-16 09:35:49 -07:00
Sam Lantinga
9797c5d0c0
Renamed CameraDevice to Camera
...
This is consistent with the rest of the SDL API
2024-07-14 13:01:53 -07:00
Sam Lantinga
5bf6bc4d7d
Renamed SDL_Get/SetProperty() to SDL_Get/SetPointerProperty()
...
This is consistent with the naming for the functions that affect other data types
Fixes https://github.com/libsdl-org/SDL/issues/10241
2024-07-12 10:41:02 -07:00
Sam Lantinga
bafbbbf7dd
Fixed V4L2 framerate request
...
V4L2 uses time interval instead of framerate
Fixes https://github.com/libsdl-org/SDL/issues/10234
2024-07-12 06:47:34 -07:00
Sam Lantinga
2ba76dbe80
Simplified SDL_Surface
...
SDL_Surface has been simplified and internal details are no longer in the public structure.
The `format` member of SDL_Surface is now an enumerated pixel format value. You can get the full details of the pixel format by calling `SDL_GetPixelFormatDetails(surface->format)`. You can get the palette associated with the surface by calling SDL_GetSurfacePalette(). You can get the clip rectangle by calling SDL_GetSurfaceClipRect().
SDL_PixelFormat has been renamed SDL_PixelFormatDetails and just describes the pixel format, it does not include a palette for indexed pixel types.
SDL_PixelFormatEnum has been renamed SDL_PixelFormat and is used instead of Uint32 for API functions that refer to pixel format by enumerated value.
SDL_MapRGB(), SDL_MapRGBA(), SDL_GetRGB(), and SDL_GetRGBA() take an optional palette parameter for indexed color lookups.
2024-07-10 00:48:18 -07:00
Sam Lantinga
4f71218e17
Allow for floating point error in matching framerates
...
Fixes https://github.com/libsdl-org/SDL/issues/10053
2024-07-05 09:23:41 -07:00
Ryan C. Gordon
bafd04ecdb
camera: small Media Foundation backend init tweak.
2024-07-02 15:16:10 -04:00
Aleksander
596c0af0f3
Camera: Bugfix: ChooseBestCameraSpec doesn't set camera colorspace
2024-06-25 07:03:22 -07:00
Hubert Maier
3acdb8a90b
JANITORIAL: Fix typos in comments in various files ( #10058 )
2024-06-19 07:13:46 -07:00
Sam Lantinga
d7391394d3
Switched the camera format to use framerate ratio instead of interval ratio
...
This is more intuitive for game developers and users.
Fixes https://github.com/libsdl-org/SDL/issues/9896
2024-06-18 07:39:52 -07:00
Sam Lantinga
aeea819494
Added colorspace to SDL_CameraSpec
2024-06-16 17:47:16 -07:00
Ryan C. Gordon
38f0214e8a
audio: Refer to audio devices to "playback" and "recording".
...
Fixes #9619 .
2024-06-15 01:08:12 -04:00
Ryan C. Gordon
5bc654aad3
camera: SDL_GetCameraDeviceName() now follows the SDL_GetStringRule.
2024-06-13 18:13:51 -04:00
Sam Lantinga
463984ec20
Make sure the output settings match the camera device format
2024-06-11 20:43:28 -07:00
Sam Lantinga
4ce4fc575a
Fixed mapping between Apple YUV formats and SDL formats
...
Fixes https://github.com/libsdl-org/SDL/issues/10001
2024-06-10 08:59:21 -07:00
Hunter Kvalevog
5387022855
camera: Initialize AVCaptureVideoDataOutput.videoSettings to zero
...
AVCaptureVideoDataOutput.videoSettings should be initialized to zero to
receive frames matching the device format.
See: https://developer.apple.com/documentation/avfoundation/avcapturevideodataoutput/1389945-videosettings?language=objc
2024-06-04 16:24:27 -07:00
Sam Lantinga
4d392bfc67
Fixed camera capture on iOS
...
My phone captured 1920x1080 images even though the highest reported format was higher resolution, so I adjusted testcamera to be able to handle different sized images than expected.
Fixes https://github.com/libsdl-org/SDL/issues/9930
2024-06-04 11:34:39 -07:00
Mathieu Eyraud
43c2b42517
Fix stack address escape in SDL_CameraDevicePermissionOutcome()
...
If allocation of 'p' fails, 'pending_tail' points to 'pending'.
2024-06-04 07:49:07 -07:00
Anonymous Maarten
a919774fe4
Build with -Wfloat-conversion + fix all warnings
2024-06-03 21:33:29 +00:00
Ryan C. Gordon
e23257307e
Introduce formal policy for APIs that return strings.
...
This declares that any `const char *` returned from SDL is owned by SDL, and
promises to be valid _at least_ until the next time the event queue runs, or
SDL_Quit() is called, even if the thing that owns the string gets destroyed
or changed before then.
This is noted in the headers as "the SDL_GetStringRule", so this will both be
greppable to find a detailed explaination in docs/README-strings.md and
wikiheaders will automatically turn it into a link we can point at the
appropriate documentation.
Fixes #9902 .
(and several FIXMEs, both known and yet-undocumented.)
2024-06-03 14:20:49 -04:00
Ozkan Sezer
dde9c10e79
SDL_camera_mediafoundation.c: hardcode MF_DEVSOURCE_ATTRIBUTE_* GUIDs
2024-05-29 15:33:42 -04:00
Sam Lantinga
df25e4022d
Removed short aliases for 16-bit pixel formats
...
These were potentially misleading in the same way the RGB888/BGR888 aliases were
Fixes https://github.com/libsdl-org/SDL/issues/4994
2024-05-27 07:24:46 -07:00
Ryan C. Gordon
0ec716819e
thread: Reworked SDL_CreateThread to be consistent across platforms.
...
Also documented missing and weird bits, rename typedefs to fit SDL standards.
2024-05-22 11:39:43 -04:00
Sam Lantinga
02ff85f2f3
Renamed SDL_SIMDGetAlignment() to SDL_GetSIMDAlignment()
2024-05-16 10:22:15 -07:00
Sam Lantinga
fd678ff50f
Fixed SDL capitalization
2024-05-15 14:53:52 -07:00
Green Sky
0ee874f02d
fix pipewire camera interval fraction inversion
...
SDL expects an interval fraction to be provided by the backend, but
pipewire provides a framerate fraction, we we just switch them.
2024-05-15 14:42:45 -07:00
Sylvain
7b252634fd
Fixed bug #9672 - v4l2/camera prevent deadlock when there is a delay between SDL_ReleaseCameraFrame and SDL_CloseCamera
2024-05-12 15:58:40 -07:00
Petar Popovic
9c6aa5066a
PipeWire: removing log message
2024-05-10 13:06:20 -07:00
Wim Taymans
f3d79ad75f
camera: make things work on older PipeWire
2024-05-09 13:19:27 -07:00
Wim Taymans
fb429f0dfe
camera: work around old PipeWire versions
2024-05-09 13:19:27 -07:00
Wim Taymans
8186e4b322
camera: don't use newer PipeWire cleanup features
2024-05-09 13:19:27 -07:00
Wim Taymans
2b9ac185cd
camera: improve PipeWire version checks
...
Remove the custom server version check. We can easily do this as part of
starting the hotplug loop. Check that we are at least running against a
1.0.0 server.
Log the compiled, linked, server and required versions.
Check that we are compiled and linked with the right version before using
the time symbol of a struct.
2024-05-09 13:19:27 -07:00
Wim Taymans
da06e67b1b
camera: PipeWire 24 bits formats are endianness independent
2024-05-09 13:19:27 -07:00
Wim Taymans
3c7bccfb2b
camera: clean up format table some more
...
Move the common formats outside of the ifdef
2024-05-09 13:19:27 -07:00
Wim Taymans
55d4b44441
camera: move PipeWire camera first in list
...
If it fails, we fall back to the next one, which is v4l2.
2024-05-09 13:19:27 -07:00
Wim Taymans
5d779153b2
camera: pipewire: only list formats with valid mapping
2024-05-09 13:19:27 -07:00
Wim Taymans
a340748c06
camera: add PipeWire camera support
...
The PipeWire camera will enumerate the pipewire Video/Source nodes with
their formats.
When capturing is started, a stream to the node will be created and
frames will be captured.
2024-05-09 13:19:27 -07:00
Ozkan Sezer
e909c0360f
remove most of SDL_OutOfMemory() calls where SDL is the allocator.
...
Since commit 447b508a77 , SDL_malloc,
SDL_calloc, and SDL_realloc already calls SDL_OutOfMemory().
2024-05-08 20:00:50 +03:00
Susko3
56feecc17d
Fix property cleanup callback not being called on error ( #9663 )
...
The documentation for `SDL_SetPropertyWithCleanup` mentions that the cleanup function
is called upon failure. But this wasn't working in the code.
2024-05-06 14:50:28 -07:00
Sam Lantinga
d4dc613559
Allow specifying only some SDL_CameraSpec fields when opening a camera
...
This allows setting the size without format, or FPS without size, etc.
2024-05-02 12:25:39 -07:00
Sam Lantinga
861815e51d
Fixed camera FPS matching
2024-05-02 12:12:20 -07:00
Sam Lantinga
da027ec3ee
Fixed signed/unsigned comparison warning
2024-03-19 17:00:46 -07:00
Sam Lantinga
33eaddc565
Cleaned up various type conversion issues
...
This makes sure SDL_PixelFormatEnum flows through the internal code correctly, as well as fixing a number of other minor issues.
2024-03-07 06:58:43 -08:00
Anonymous Maarten
279a650fae
mediafoundation: fix SDL_camera_mediafoundation MinGW compile warnings
2024-02-22 07:18:22 -05:00