Sam Lantinga
2d4105ba8b
testffmpeg: only enable AV_PIX_FMT_VULKAN if we have a Vulkan renderer
2024-03-04 11:17:42 -08:00
Sam Lantinga
97f97109d1
testffmpeg: fixed Vulkan validation errors
...
The semaphores need to be submitted in order
2024-03-04 09:29:36 -08:00
Sam Lantinga
dbec2150d0
testffmpeg: added support for Vulkan rendering
2024-03-04 09:29:36 -08:00
Robert Edmonds
a4d7ff6751
testffmpeg: Use EGL_EXT_image_dma_buf_import_modifiers extension
...
If the `EGL_EXT_image_dma_buf_import_modifiers` extension is available, propagate the DRM format modifier from the AVDRMObjectDescriptor to eglCreateImage() on Linux. Some hardware will decode video into a non-linear DRM surface, and passing the DRM format modifier to eglCreateImage() is required in order to display something useful.
Fixes https://github.com/libsdl-org/SDL/issues/9075
2024-03-03 15:18:56 -08:00
Sam Lantinga
7f9ff6277c
Don't assume HDR headroom for HDR10 surfaces
...
Applications that support HDR will set the correct values for their content.
2024-03-02 15:02:17 -08:00
Sam Lantinga
24e021c67e
testffmpeg: refactored texture creation properties into a single function
2024-02-26 16:01:23 -08:00
Sam Lantinga
ff18d7cfa0
testffmpeg: added pixel format mapping for NV12 and NV21
2024-02-26 15:52:21 -08:00
Sam Lantinga
f99143f437
Don't quit testffmpeg when alt-tabbing away
2024-02-26 15:21:26 -08:00
Sam Lantinga
3a796c9722
Allow specifying the render driver in the environment for testffmpeg
2024-02-26 15:13:10 -08:00
Sam Lantinga
dc9a3c83e2
Use the mastering display metadata to do proper tone mapping for HDR content
2024-02-26 14:20:34 -08:00
Sam Lantinga
4ba6aeee9d
A second take on HDR support with an SDR white point and HDR headroom
...
This better reflects how HDR content is actually used, e.g. most content is in the SDR range, with specular highlights and bright details beyond the SDR range, in the HDR headroom.
This more closely matches how HDR is handled on Apple platforms, as EDR.
This also greatly simplifies application code which no longer has to think about color scaling. SDR content is rendered at the appropriate brightness automatically, and HDR content is scaled to the correct range for the display HDR headroom.
2024-02-21 19:25:49 -08:00
Sam Lantinga
202886f873
Make use of the HDR light range when playing HDR video
2024-02-16 20:05:11 -08:00
Sam Lantinga
d451fcd7a7
Fixed HDR video content being too bright on Apple platforms
...
This probably isn't the exact formula that we need, but it's much closer to correct.
2024-02-15 16:39:13 -08:00
Sam Lantinga
c09daf8388
Removed unused variables
2024-02-15 14:11:04 -08:00
Sam Lantinga
1c4c29b7ad
Fixed a swap chain leak and a double-free in testffmpeg.c
...
Also added more debug logging to the direct3d11 renderer
2024-02-06 21:33:57 -08:00
Sam Lantinga
8afba41aef
Added support for HDR10 video on Apple platforms
2024-02-06 15:40:47 -08:00
Sam Lantinga
2039c46d2c
Added support for creating an SDL texture from a CVPixelBufferRef
2024-02-06 15:40:47 -08:00
Sam Lantinga
30e176d6ba
Added HDR display properties and related event
...
Also added an HDR calibration stage to testcolorspace
2024-02-06 02:48:05 -08:00
Sam Lantinga
d4caef5b89
Generalize SDR white level handling into a color scale
...
This gives applications better control over how and when light levels are adjusted when working with HDR content and display.
2024-02-06 02:48:05 -08:00
Sam Lantinga
e74171b1ae
Added support for HDR10 video playback on direct3d11
...
Fixes https://github.com/libsdl-org/SDL/issues/8053
2024-02-05 09:45:39 -08:00
Sam Lantinga
50a805cdd1
Use YUV colorspaces instead of a global YUV conversion mode
...
Fixes https://github.com/libsdl-org/SDL/issues/8669
2024-02-03 07:36:18 -08:00
Sam Lantinga
3b55c7d1f4
Shortened SDL property names
2024-01-27 13:00:50 -08:00
Anonymous Maarten
31d133db40
Define SDL_PLATFORM_* macros instead of underscored ones ( #8875 )
2024-01-24 01:40:51 +00:00
Sam Lantinga
7eae08cfc4
Removed SDL_GL_BindTexture() and SDL_GL_UnbindTexture()
...
Now that we have the OpenGL texture properties, you can directly bind them yourself.
Fixes https://github.com/libsdl-org/SDL/issues/2124
2024-01-07 20:19:19 -08:00
Sam Lantinga
1a13dae219
Added constant definitions for SDL properties
...
Fixes https://github.com/libsdl-org/SDL/issues/8622
2024-01-07 16:59:41 -08:00
Sam Lantinga
5b3ee51c6c
Updated copyright for 2024
2024-01-01 13:15:26 -08:00
Ryan C. Gordon
447b508a77
error: SDL's allocators now call SDL_OutOfMemory on error.
...
This means the allocator's caller doesn't need to use SDL_OutOfMemory directly
if the allocation fails.
This applies to the usual allocators: SDL_malloc, SDL_calloc, SDL_realloc
(all of these regardless of if the app supplied a custom allocator or we're
using system malloc() or an internal copy of dlmalloc under the hood),
SDL_aligned_alloc, SDL_small_alloc, SDL_strdup, SDL_asprintf, SDL_wcsdup...
probably others. If it returns something you can pass to SDL_free, it should
work.
The caller might still need to use SDL_OutOfMemory if something that wasn't
SDL allocated the memory: operator new in C++ code, Objective-C's alloc
message, win32 GlobalAlloc, etc.
Fixes #8642 .
2023-11-30 00:14:27 -05:00
Sam Lantinga
0907f345cb
Added property types: pointer, string, number, float
2023-11-12 10:48:38 -08:00
Sam Lantinga
b374105975
Replaced SDL_GetTextureDXGIResource() with texture properties
...
Fixes https://github.com/libsdl-org/SDL/issues/8529
2023-11-10 20:38:13 -08:00
Sylvain
d8600f717e
Pointer as bool (libsdl-org#7214)
2023-11-09 14:18:36 -08:00
Sam Lantinga
aea6e6de6f
Simplified SDL_SetProperty() and added SDL_SetPropertyWithCleanup()
...
Most of the time people won't need to set a cleanup callback, so we can simplify the more commonly used API.
2023-11-08 12:01:48 -08:00
Sam Lantinga
a1941fad6c
Replaced SDL_RenderGetD3D11Device(), SDL_RenderGetD3D12Device(), and SDL_RenderGetD3D9Device() with renderer properties.
2023-11-08 12:01:48 -08: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
Sam Lantinga
d18f910248
testffmpeg: added the ability to specify audio and video codecs
2023-10-12 11:38:14 -07: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
Anonymous Maarten
ebfbd7327b
testffmpeg: use SDL_test to parse arguments and track memory
2023-10-10 21:58:10 +02: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
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
Sam Lantinga
d830cd140b
Added support for 0-copy decode and display using Apple VideoToolbox
2023-10-10 03:32:46 -07:00
Sam Lantinga
1bf913b29a
Added support for 0-copy decode and display using VAAPI and EGL
2023-10-10 03:32:46 -07:00
Sam Lantinga
ed6381b68d
Allow setting any number of sprites over the video
...
Default to no sprites over the video
2023-10-10 03:32:46 -07:00