Cameron Gutman
e6c4332445
Revert "Use Rec 2020 colorspace for WCG support even if HDR is off on the host"
...
Rec 2020 conversion causes colors to be blown out in SDR
This reverts commit 472e8ee92e
.
2022-10-13 01:19:49 -05:00
Cameron Gutman
472e8ee92e
Use Rec 2020 colorspace for WCG support even if HDR is off on the host
2022-10-13 00:14:10 -05:00
Cameron Gutman
c55af7fff3
Add a decoder/renderer callback to specify the desired color range
2022-10-12 23:59:01 -05:00
Cameron Gutman
439e8fe33f
Constify frame colorspace helper functions
2022-09-24 18:37:51 -05:00
Cameron Gutman
99885f5b4b
Centralize colorspace and color range handling
2022-09-24 12:28:23 -05:00
Cameron Gutman
be2f4433db
Avoid hardcoding VIDEO_FORMAT_H265_MAIN10 for HDR/10-bit color
2022-06-26 16:22:05 -05:00
Cameron Gutman
2bb2745f91
Enhance frame pacing logic for HDR renderers
2022-05-07 16:21:17 -05:00
Cameron Gutman
220f50ebe4
Revert "Allow renderers to apply size and display changes seamlessly"
...
This reverts commit c989133d27
.
2022-04-24 16:12:12 -05:00
Cameron Gutman
c989133d27
Allow renderers to apply size and display changes seamlessly
2022-04-24 15:42:08 -05:00
Cameron Gutman
ef23a80b16
Fix EGL build when using EGL 1.4 or earlier headers
2022-04-21 21:13:39 -05:00
Cameron Gutman
cf16c31d38
Improve performance and latency of D3D11VA renderer
2022-04-14 22:46:13 -05:00
Cameron Gutman
e3a7b54f90
Use EGL fences to reduce video latency
2022-04-08 19:28:22 -05:00
Cameron Gutman
6d3d51553b
Wait on our D3D11 swapchain before rendering to reduce latency
2022-04-07 21:46:48 -05:00
Cameron Gutman
474591c6a5
Use a separate callback to indicate EOS instead of renderFrame()
2022-04-07 21:30:20 -05:00
Cameron Gutman
6a0cf4bfd3
Fix some #if -> #ifdefs
2022-04-05 00:26:13 -05:00
Cameron Gutman
f256407789
Implement D3D11VA video rendering
2022-02-04 21:51:34 -06:00
Cameron Gutman
cf089fdfe9
Add support for HDR with VAAPI using DRM frontend renderer
2022-01-29 18:16:39 -06:00
Cameron Gutman
1cbdd0e675
Display the HDR option if the platform has a decoder that supports it
2022-01-29 00:59:04 -06:00
Cameron Gutman
254526a213
Plumb HDR mode information to the decoders
2022-01-28 22:10:50 -06:00
Cameron Gutman
4de3aa96b6
Add YUV colorspace and color range attributes to EGLImage
2021-11-19 01:15:33 -06:00
Cameron Gutman
e74753bec1
Allow fallback from EGL to direct on EGLImage export failure
2021-03-22 22:51:29 -05:00
Cameron Gutman
4a8c9ad17f
Add support for 4-plane frames
2021-03-22 00:46:04 -05:00
Cameron Gutman
579f25c1ba
Add missing EGL_DMA_BUF_PLANE2 definitions
2021-03-22 00:02:03 -05:00
Cameron Gutman
d5eb5c8816
Fix build with EGL 1.4 headers
2021-03-21 23:59:35 -05:00
Cameron Gutman
c3895f06c0
Fix handling of preferred/compatible pixel formats with EGLRenderer and VAAPI/DRM backends
2021-02-04 19:39:18 -06:00
Cameron Gutman
c3cea0238e
Fix build with old EGL 1.5 headers without EGL_EGL_PROTOTYPES
2021-01-31 21:42:56 -06:00
Cameron Gutman
5bf4266973
Fix build with old Mesa EGL headers
2021-01-31 18:41:53 -06:00
Cameron Gutman
ed57c54d06
Move EGL definitions into renderer.h to try to fix build on Armbian
2021-01-31 17:01:11 -06:00
Antoine Damhet
0a396f3112
Introduce a new FFMPEG frontend renderer: EGLRenderer
...
Right now this renderer works on X11 & Wayland with VAAPI as a backend.
Some rendering latency benchmarks on my `i7-10510U` (with
`intel-media-driver` 20.1.1 which cause a *huge* regression with the
SDL_Renderer):
| | X11 | Wayland |
| Before | 6.78ms | 22.50ms |
| EGLRenderer | 0.76ms | 00.77ms |
Signed-off-by: Antoine Damhet <antoine.damhet@lse.epita.fr>
2020-05-12 11:11:35 +02:00
Cameron Gutman
979de190dc
Cap resolution options at 1080p on Steam Link and Raspberry Pi due to hardware limitations
2020-02-23 00:43:43 -08:00
Cameron Gutman
57a1c5eb76
Disable the window mode options for always full-screen renderers
2020-02-09 11:35:05 -08:00
Cameron Gutman
529fdf0341
Add decoder options dictionary to prepareDecoderContext()
2020-02-08 17:47:26 -08:00
Cameron Gutman
b9463b3c0e
Allow NV12 and NV21 to be selected for non-hwaccel decoders using the SDL renderer
2020-01-26 15:02:29 -08:00
Cameron Gutman
160684f23e
Allow decoders to choose a desired colorspace
2019-12-14 15:25:56 -08:00
Cameron Gutman
ca26fa2dd0
Add basic HEVC Main10 support in DXVA2 renderer
2019-11-04 22:57:12 -08:00
Cameron Gutman
773b1af6f1
Minor refactoring in preparation for non-hwaccel decoder support
2019-04-15 21:56:01 -07:00
Cameron Gutman
b8b633a6cc
Use SDL to render on Wayland for VAAPI
2019-04-12 22:54:21 -07:00
Cameron Gutman
ada2270bd1
Reduce code duplication in renderers
2019-04-12 22:12:53 -07:00
Cameron Gutman
25e5175c54
Refactor parameter passing to decoders and split backend/decode-only and frontend renderers
2019-04-11 22:27:20 -07:00
Cameron Gutman
859a5a5e0c
Allow a renderer to opt-out of the render thread and use that for SDL on OGL
2019-04-09 21:46:14 -07:00
Cameron Gutman
81c6202582
Rename renderFrameAtVsync() to renderFrame() in preparation for further refactoring
2019-02-15 21:07:02 -08:00
Cameron Gutman
d077c6450f
Split SdlRenderer from renderer.h
2019-02-12 19:58:36 -08:00
Cameron Gutman
6ed512e762
Provide a renderer callback when the overlay data changes
2019-02-12 18:43:38 -08:00
Cameron Gutman
cfabaf334e
Add frame pacing toggle
2018-12-25 12:57:00 -08:00
Cameron Gutman
2c068a99a3
Allow FFmpeg renderers to enforce V-sync being enabled or disabled
2018-09-03 20:57:09 -04:00
Cameron Gutman
9be9934b8c
Add reference frame invalidation for the software decoder
2018-08-25 12:38:04 -07:00
Cameron Gutman
f7d3c10c9d
Plumb the ability to disable V-sync through the video renderers
2018-08-20 18:19:42 -07:00
Cameron Gutman
845e84adb7
Avoid the test frame for DXVA2 and VT APIs to address flickering in full-screen on Win7
2018-08-19 00:59:04 -07:00
Cameron Gutman
7d61acb2a8
Use Pacer to drive all rendering
2018-08-15 23:57:03 -07:00
Cameron Gutman
f171588616
Pass the maximum frame rate into FFmpeg renderers
2018-08-15 20:41:19 -07:00