Cameron Gutman
|
514a8575a2
|
Use the viewport size for computing the overlay position
|
2020-05-07 18:56:53 -07:00 |
|
Cameron Gutman
|
f30c11ddf4
|
Properly fix SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH on macOS VTRenderer
|
2020-05-06 22:20:21 -07:00 |
|
Cameron Gutman
|
dfa63297fc
|
Fix incorrectly scaled output from the SDL renderer on macOS
|
2020-05-04 17:48:32 -07:00 |
|
Cameron Gutman
|
1852f74e8b
|
Add missing return statement
|
2020-04-26 20:42:01 -07:00 |
|
Cameron Gutman
|
55e3e16860
|
Try radeonsi if other VAAPI drivers fail
|
2020-04-26 20:18:46 -07:00 |
|
Cameron Gutman
|
7cf2a55b43
|
Allow radeonsi to direct render on XWayland
|
2020-04-26 20:13:00 -07:00 |
|
Cameron Gutman
|
c41cbbd2da
|
Allow the radeonsi VAAPI driver on XWayland
|
2020-04-26 20:06:53 -07:00 |
|
Cameron Gutman
|
aaa112c3f3
|
Don't use VAAPI drivers that lack VPP support
intel-media-va-driver (free) is one example of such a driver which
is apparently missing the shaders to perform colorspace conversion.
|
2020-04-26 15:38:05 -07:00 |
|
Cameron Gutman
|
8cf7f3ac08
|
Fix absolute mouse positioning on SDL renderer
|
2020-04-24 19:37:15 -07:00 |
|
Cameron Gutman
|
e56329d05a
|
Don't render with vaPutSurface() on XWayland
|
2020-03-27 19:11:03 -07:00 |
|
Cameron Gutman
|
2452e80e57
|
Add VDPAU driver path fallbacks for AppImage
|
2020-03-26 19:06:24 -07:00 |
|
Cameron Gutman
|
b9019831a9
|
Fix failure to try the default VAAPI driver with the modified LIBVA_DRIVERS_PATH
|
2020-03-26 18:25:52 -07:00 |
|
Cameron Gutman
|
b3b49b440e
|
Add VAAPI driver path fallbacks for AppImage
|
2020-03-24 00:09:03 -07:00 |
|
Cameron Gutman
|
ba2488b6e2
|
Try the iHD VA driver as a fallback to fix Comet Lake and later
|
2020-03-18 18:39:43 -07:00 |
|
Cameron Gutman
|
4e7e0d67e5
|
Add a workaround for Mesa Iris returning the wrong VA driver
|
2020-03-17 17:34:35 -07:00 |
|
Cameron Gutman
|
81221336f4
|
Rec 601 seems to be a bit more accurate on macOS
|
2020-03-10 23:21:00 -07:00 |
|
Cameron Gutman
|
ecfc758ce4
|
Attach colorspace data to CVPixelBuffer. Fixes #323
|
2020-03-10 22:21:09 -07:00 |
|
Cameron Gutman
|
7ee323f0d5
|
Fix deprecation warning on macOS
|
2020-02-29 15:54:10 -08: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
|
46bcbda972
|
MMAL is always full-screen
|
2020-02-23 00:25:01 -08:00 |
|
Cameron Gutman
|
43bdc353fb
|
Fix 720p streaming on MMAL
|
2020-02-23 00:22:44 -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
|
77386f8dfc
|
Reduce buffering for MMAL to avoid requiring 128 MB VRAM split
|
2020-02-08 17:56:30 -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
|
956e6e3638
|
Avoid slicing for hardware decoders that use SDL as the renderer
|
2020-01-26 14:13:42 -08:00 |
|
Cameron Gutman
|
a0151fbc04
|
Fix memory leak if 10-bit color is not supported
|
2020-01-15 17:56:11 -08:00 |
|
Cameron Gutman
|
c6638a7154
|
Add support for 10-bit output in full-screen with DXVA2
|
2020-01-14 17:12:55 -08:00 |
|
Cameron Gutman
|
e1603f0808
|
Explicitly use Rec 601 for VDPAU
|
2019-12-16 18:02:28 -08:00 |
|
Cameron Gutman
|
d4c2350d63
|
Fix DXVA2 rendering with the wrong colorspace on AMD GPUs
|
2019-12-15 13:29:19 -08:00 |
|
Cameron Gutman
|
6230a99360
|
Fix colorspace conversion with SDL as frontend renderer
|
2019-12-14 17:17:29 -08:00 |
|
Cameron Gutman
|
801adb6af7
|
Add colorspace support to VAAPI renderer
|
2019-12-14 16:58:04 -08:00 |
|
Cameron Gutman
|
8b9b96f422
|
Only enable slicing when CPU decoding
|
2019-12-14 15:34:48 -08:00 |
|
Cameron Gutman
|
160684f23e
|
Allow decoders to choose a desired colorspace
|
2019-12-14 15:25:56 -08:00 |
|
Cameron Gutman
|
af6b8c9b88
|
Update common-c with colorspace configuration support
|
2019-12-14 14:40:02 -08:00 |
|
Cameron Gutman
|
de7b973239
|
Plumb presentation time from server into AVFrame.pts field
|
2019-11-11 18:03:47 -08:00 |
|
Cameron Gutman
|
c20daa8867
|
Add compatibility checks for HEVC Main10 in VT backend
|
2019-11-05 18:36:43 -08:00 |
|
Cameron Gutman
|
5e57a7d5c0
|
Prevent SDL renderer from trying to render 10-bit output
|
2019-11-05 17:29:21 -08:00 |
|
Cameron Gutman
|
7c8d27700e
|
Add 10-bit output support to VDPAU renderer
|
2019-11-05 17:09:44 -08:00 |
|
Cameron Gutman
|
ca26fa2dd0
|
Add basic HEVC Main10 support in DXVA2 renderer
|
2019-11-04 22:57:12 -08:00 |
|
Cameron Gutman
|
dbf98ce3a6
|
Require keyframes even for software H.264 decoding
|
2019-08-07 22:38:31 -07:00 |
|
Cameron Gutman
|
bcbd1a5b4b
|
Fix subsystem print in VAAPI
|
2019-07-07 15:41:26 -07:00 |
|
Cameron Gutman
|
6468efd7e4
|
Add VAAPI DRM support
|
2019-07-07 15:32:38 -07:00 |
|
Cameron Gutman
|
612b738968
|
Use the preferred sw_format when reading frames back
|
2019-06-26 21:25:41 -07:00 |
|
Cameron Gutman
|
87356ef594
|
Add CUDA acceleration support
|
2019-06-26 21:02:33 -07:00 |
|
Cameron Gutman
|
4f74fd5354
|
Fix uninitialized variables and a race condition with CVDisplayLinkStart()
|
2019-05-21 09:09:16 -07:00 |
|
Cameron Gutman
|
97fb30cdf1
|
Fix a few bugs in CVDisplayLink integration in VTRenderer
|
2019-05-19 09:52:59 -07:00 |
|
Cameron Gutman
|
c2b12868bb
|
Move DisplayLinkVsyncSource back into VTRenderer to reduce latency
|
2019-05-11 18:33:12 -07:00 |
|
Cameron Gutman
|
53138d7c16
|
Name threads for easier debugging
|
2019-05-03 21:18:58 -07:00 |
|
Cameron Gutman
|
99d9de35de
|
Add NV21 pixel format support to SDL renderer
|
2019-05-02 22:51:28 -07:00 |
|
Cameron Gutman
|
4e936193c7
|
Request a test frame for MMAL decoder
|
2019-04-24 21:31:52 -07:00 |
|
Cameron Gutman
|
8878c4a136
|
Use VAAPI decoder for AMD on Wayland
|
2019-04-21 15:33:21 -07:00 |
|
Cameron Gutman
|
00926bac81
|
Fix build warning in SDL renderer
|
2019-04-21 11:09:11 -07:00 |
|
Cameron Gutman
|
dba479774b
|
Add DRM renderer for Rockchip devices
|
2019-04-21 05:22:37 +00:00 |
|
Cameron Gutman
|
5c8a1e632b
|
Add support for rendering NV12 hwframes with SDL
|
2019-04-19 22:16:06 -07:00 |
|
Cameron Gutman
|
9c76700f74
|
Add MMAL renderer for Raspberry Pi
|
2019-04-16 01:20:21 -07: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
|
6783cf57da
|
TTF_OpenFontRW retains the SDL_RWops on success, so we must keep the font data around to back it
|
2019-04-09 21:26:47 -07:00 |
|
Cameron Gutman
|
54383b84ec
|
Fix random deadlocks on window resize with the software decoder due to processing window messages off the render thread
|
2019-04-03 20:44:50 -07:00 |
|
Cameron Gutman
|
cabbba2448
|
Move status update overlay to bottom left for SDL
|
2019-03-23 21:14:21 -07:00 |
|
Cameron Gutman
|
c48ed7bb0d
|
Fix undefined variable usage after 2703efedef
|
2019-03-23 20:25:19 -07:00 |
|
Cameron Gutman
|
c313f1a20b
|
Embed our data files inside the binary with QRC
|
2019-03-23 10:45:44 -07:00 |
|
Cameron Gutman
|
e95ff989b1
|
Allow DXVA2 renderer blacklists to be bypassed
|
2019-03-21 20:44:30 -07:00 |
|
Cameron Gutman
|
018e8999e2
|
Add connection status overlay for the VT renderer
|
2019-03-18 20:56:53 -07:00 |
|
Cameron Gutman
|
202a643e5a
|
Fix size of the status update overlay on DXVA2
|
2019-03-17 15:12:25 -07:00 |
|
Cameron Gutman
|
c75b9c9221
|
Add connection status overlay for DXVA2 and SDL
|
2019-03-17 15:08:21 -07:00 |
|
Cameron Gutman
|
052194714a
|
Adjust thread priorities based on recent refactoring
|
2019-03-17 00:45:31 -07:00 |
|
Cameron Gutman
|
bf5d43d0cf
|
Use SDL_HINT_OVERRIDE for critical hints
|
2019-03-17 00:18:15 -07:00 |
|
Cameron Gutman
|
f2ac570949
|
Rebuild SDL2 (5dc13016cf) with USE_D3D9EX
|
2019-03-16 23:52:40 -07:00 |
|
Cameron Gutman
|
e5a8b49c93
|
Limit the number of queued frames in Pacer to prevent excessive memory consumption if the renderer gets blocked for a while
|
2019-02-18 12:13:45 -08:00 |
|
Cameron Gutman
|
80a40ac5f9
|
Increase frame drop threshold
|
2019-02-16 23:13:35 -08:00 |
|
Cameron Gutman
|
ab4127f940
|
Use presence of a frame after rendering rather than render time for frame dropping
|
2019-02-15 22:44:52 -08:00 |
|
Cameron Gutman
|
f03d12b677
|
Use a separate render thread even with a V-Sync source
|
2019-02-15 22:09:50 -08:00 |
|
Cameron Gutman
|
81c6202582
|
Rename renderFrameAtVsync() to renderFrame() in preparation for further refactoring
|
2019-02-15 21:07:02 -08:00 |
|
Cameron Gutman
|
6cab2bec61
|
Don't trust VT to tell us whether decode is supported
|
2019-02-15 19:10:21 -08:00 |
|
Cameron Gutman
|
b1799009b3
|
Use the Path class to lookup ModeSeven.ttf
|
2019-02-15 18:13:36 -08:00 |
|
Cameron Gutman
|
aba806bc32
|
Implement debug overlay for VideoToolbox renderer
|
2019-02-13 20:55:52 -08:00 |
|
Cameron Gutman
|
f83853c2fb
|
OverlayManager now manages font size for the overlays
|
2019-02-12 22:36:56 -08:00 |
|
Cameron Gutman
|
46bd8ad83d
|
Add debug overlay for SDL renderer
|
2019-02-12 21:55:15 -08:00 |
|
Cameron Gutman
|
5788fa7204
|
Make OverlayManager own the overlay color setting
|
2019-02-12 20:39:10 -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
|
1fd099db70
|
Log when StretchRect() fails
|
2019-02-09 18:47:57 -08:00 |
|
Cameron Gutman
|
8bb6d4d0d9
|
Fix VDPAU scaling on AMD cards. Fixes #171
|
2019-01-29 20:52:41 -08:00 |
|
Cameron Gutman
|
21aad643f3
|
Use 32 pixel alignment for HEVC to fix Intel green line issue
|
2019-01-28 21:26:27 -08:00 |
|
Cameron Gutman
|
8687448966
|
Use StretchRect() on Intel GPUs or if VideoProcessBlt() fails
|
2019-01-28 19:18:43 -08:00 |
|
Cameron Gutman
|
4471a858db
|
Fix miscounted pacer dropped frames in non-pacing mode
|
2019-01-22 21:21:29 -08:00 |
|
Cameron Gutman
|
9799b82d53
|
Improve long render time logic
|
2019-01-22 20:55:35 -08:00 |
|
Cameron Gutman
|
78915e0b99
|
Use a separate render thread when not using frame pacing
|
2019-01-22 20:31:31 -08:00 |
|
Cameron Gutman
|
1f972b1828
|
Require several consecutive long render times to drop a frame
|
2019-01-21 17:58:42 -08:00 |
|
Cameron Gutman
|
c064f87889
|
Drop a frame if the rendering time exceeds the v-sync period
|
2019-01-20 19:59:29 -08:00 |
|
Cameron Gutman
|
d6b4c8e7da
|
Avoid blocking decoding operations during Present calls
|
2019-01-20 14:08:53 -08:00 |
|
Cameron Gutman
|
b19c4bfc5d
|
Add performance overlay for DXVA2 renderer
|
2019-01-19 23:05:56 -08:00 |
|
Cameron Gutman
|
cfabaf334e
|
Add frame pacing toggle
|
2018-12-25 12:57:00 -08:00 |
|
Cameron Gutman
|
c054536fab
|
Count Pacer delay in frame stats
|
2018-12-25 12:09:45 -08:00 |
|
Cameron Gutman
|
d5a1189053
|
Avoid VAAPI on AMD drivers due to a bad memory leak
|
2018-10-14 20:37:13 -07:00 |
|
Cameron Gutman
|
a0249b4337
|
Add video stats for performance overlay
|
2018-09-25 00:47:59 -07:00 |
|
Cameron Gutman
|
b1de66d878
|
Directly use the AVBufferSampleDisplayLayer as the rendering view's layer to increase efficiency
|
2018-09-22 18:34:15 -07:00 |
|
Cameron Gutman
|
af9fb0e091
|
Fix GetVideoProcessorCaps() failure handling
|
2018-09-21 17:29:53 -07:00 |
|
Cameron Gutman
|
f96911e1ba
|
Use DXVA2_VideoProcProgressiveDevice since we don't need any fancy image processing or deinterlacing
|
2018-09-21 17:07:28 -07:00 |
|
Cameron Gutman
|
8a0089eb81
|
Print driver information in VDPAU and VAAPI renderers
|
2018-09-20 21:23:16 -07:00 |
|
Cameron Gutman
|
8002c65693
|
Block Intel drivers earlier than 4836 from using HEVC due to artifacting issues. Fixes #32
|
2018-09-14 20:20:47 -07:00 |
|
Cameron Gutman
|
7ca2ca8045
|
Print the GPU driver version on Windows
|
2018-09-13 14:54:30 -07:00 |
|
Cameron Gutman
|
12496e4432
|
Refactor audio rendering into a separate class
|
2018-09-13 06:23:06 -07:00 |
|
Cameron Gutman
|
9dcd856099
|
Blacklist Kepler GPUs for HEVC due to hybrid decode support present in some drivers
|
2018-09-09 10:48:01 -07:00 |
|
Cameron Gutman
|
c9a7c15f98
|
Improve unsupported FPS options and performance
|
2018-09-08 15:09:46 -07:00 |
|
Cameron Gutman
|
475a39cb73
|
Recreate the decoder when moving to a new display to allow Pacer to get the new refresh rate
|
2018-09-06 19:42:53 -07:00 |
|
Cameron Gutman
|
4dba74e2f9
|
Fix handling of undefined and non-matching refresh rate
|
2018-09-06 19:16:59 -07:00 |
|
Cameron Gutman
|
9aa487418f
|
Force V-Sync enabled for DXVA2 windowed with DWM composition enabled
|
2018-09-03 23:34:15 -07:00 |
|
Cameron Gutman
|
dae21f2638
|
Detect native panel resolution on Retina displays. Fixes #59
|
2018-09-04 00:21:37 -04:00 |
|
Cameron Gutman
|
af6e99cbac
|
Select the highest full-screen refresh rate that our stream FPS evenly divides
|
2018-09-03 22:54:41 -04: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
|
fa93364ddd
|
Ensure the CVDisplayLink is synchronized to the display that our window is on
|
2018-09-03 20:19:24 -04:00 |
|
Cameron Gutman
|
9b1eef3f63
|
Pass AV_HWACCEL_FLAG_IGNORE_LEVEL for VDPAU per FFmpeg documentation recommendation
|
2018-09-03 17:06:21 -04:00 |
|
Cameron Gutman
|
b7cbec0b1c
|
Pass RFI flags to decoder
|
2018-08-25 13:36:54 -07:00 |
|
Cameron Gutman
|
9be9934b8c
|
Add reference frame invalidation for the software decoder
|
2018-08-25 12:38:04 -07:00 |
|
Cameron Gutman
|
7e560aa09e
|
Use MMCSS when streaming with the DXVA renderer
|
2018-08-21 00:53:41 -07:00 |
|
Cameron Gutman
|
7d9478b774
|
Fix FlipEx on Windows 7
|
2018-08-21 00:49:29 -07:00 |
|
Cameron Gutman
|
0fa0ab43c9
|
Fix broken Alt+Tab behavior on Windows
|
2018-08-20 22:48:48 -07:00 |
|
Cameron Gutman
|
9e9fe2a2cf
|
Work around DWM bug on Windows 7 causing horrible performance
|
2018-08-20 21:17:25 -07:00 |
|
Cameron Gutman
|
5bf88cfe96
|
Fix Mac build
|
2018-08-20 18:57:11 -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
|
6b395c816f
|
Allow Pacer to wait for frames up until a few ms before v-sync for better smoothness and lower latency
|
2018-08-20 17:53:35 -07:00 |
|
Cameron Gutman
|
d6e7173af0
|
Add a VsyncSource for renderers that already block for V-sync
|
2018-08-20 17:24:47 -07:00 |
|
Cameron Gutman
|
1a60484abc
|
Use hardware vertex processing if available
|
2018-08-19 22:45:17 -07:00 |
|
Cameron Gutman
|
62f765b2b4
|
Switch DXVA2 to IDirect3D9Ex APIs for more detailed control of rendering
|
2018-08-19 21:53:39 -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
|
c1b1719914
|
Recreate the VT decoder if the display layer fails. Minor fix to Path class.
|
2018-08-16 23:09:40 -07:00 |
|
Cameron Gutman
|
9fbdd794b9
|
Improve support for full-screen exclusive mode
|
2018-08-16 22:25:14 -07:00 |
|
Cameron Gutman
|
345e800abd
|
Always submit frames to Pacer if it's using a frame queue
|
2018-08-16 17:59:33 -07:00 |
|
Cameron Gutman
|
404eaa44e4
|
Implement frame pacing for Windows using D3DKMTWaitForVerticalBlankEvent
|
2018-08-16 01:29:53 -07:00 |
|
Cameron Gutman
|
8e257ab241
|
Remove unused function
|
2018-08-16 00:04:28 -07:00 |
|
Cameron Gutman
|
fabbad5370
|
Fix build error on Windows and warnings
|
2018-08-16 00:02:43 -07:00 |
|
Cameron Gutman
|
7d61acb2a8
|
Use Pacer to drive all rendering
|
2018-08-15 23:57:03 -07:00 |
|
Cameron Gutman
|
f6a451d6e7
|
Add PoC VsyncSource for Windows using DwmFlush(). Soon to be replaced with D3DKMTWaitForVerticalBlankEvent().
|
2018-08-15 23:20:56 -07:00 |
|
Cameron Gutman
|
e68a15c825
|
Move the Vsync logic from VTRenderer into a VsyncSource
|
2018-08-15 22:02:15 -07:00 |
|
Cameron Gutman
|
f929cffce7
|
Let Pacer know what the display Hz and stream FPS are so it can make better drop decisions
|
2018-08-15 21:10:35 -07:00 |
|
Cameron Gutman
|
f171588616
|
Pass the maximum frame rate into FFmpeg renderers
|
2018-08-15 20:41:19 -07:00 |
|
Cameron Gutman
|
f714a5d0cb
|
Refactor frame pacing from VT renderer into a separate class for sharing with other renderers
|
2018-08-14 19:13:17 -07:00 |
|
Cameron Gutman
|
611d9ac1ba
|
Pass the chroma type to the VDPAU video mixer
|
2018-08-13 20:02:55 -07:00 |
|
Cameron Gutman
|
d3c2f50b20
|
Remove custom VAAPI logging functions
|
2018-08-11 20:32:28 -07:00 |
|
Cameron Gutman
|
f1ee1eeb63
|
Avoid using window systems that SDL wasn't compiled to support
|
2018-08-11 20:19:20 -07:00 |
|
Cameron Gutman
|
bb18519e44
|
WIP Wayland rendering code for VAAPI
|
2018-08-11 19:43:36 -07:00 |
|
Cameron Gutman
|
b6763bb9f0
|
Fix VDPAU rendering at 4K
|
2018-08-05 16:33:08 -07:00 |
|
Cameron Gutman
|
6d9c0c96c9
|
Fix streaming with non-aligned resolutions with DXVA2 on my Quadro P400
|
2018-08-05 15:25:40 -07:00 |
|
Cameron Gutman
|
b04bc5117d
|
Fix scaling logic in the Linux renderers using the new helper function
|
2018-08-04 22:31:14 -07:00 |
|