Commit graph

77 commits

Author SHA1 Message Date
Cameron Gutman
055cae90b8 Only apply the AMD color range workaround to new drivers
Applying it to older drivers introduces the very same issues it's meant to fix
2022-03-30 22:43:08 -05:00
Cameron Gutman
9add6b3696 Add DXVA2 quirk for AMD GPUs to fix color range on the latest drivers 2022-02-17 00:35:33 -06:00
Cameron Gutman
be2af1d17a Add environment variables to configure DXVA2 and D3D11VA options 2022-02-08 22:27:27 -06:00
Cameron Gutman
67612f607e WIP: D3D11VA support
Overlays work, but drawing the actual video is unimplemented
2022-02-03 19:45:07 -06:00
Cameron Gutman
12ad75a6b0 Move hybrid decode detection logic into a central location 2022-01-23 15:41:33 -06:00
Cameron Gutman
a58649fd10 Update Windows and macOS to FFmpeg 5.0 2022-01-22 13:44:05 -06:00
Cameron Gutman
56a5fbf63b Fix get_buffer2() thread-safety warning with FFmpeg 4.4 2021-11-29 19:45:28 +03:00
Cameron Gutman
0455063854 Fix driver version check for Intel's updated version schema in 100 and newer drivers
Fixes #673
2021-11-13 20:44:10 -06:00
Cameron Gutman
3defccb6e2 Work around poor video scaling quality on Qualcomm GPUs 2020-12-21 21:00:55 -06:00
Cameron Gutman
5f4975ca5c Fix DXVA2 overlay rendering quality issus 2020-12-20 17:30:06 -06:00
Cameron Gutman
6a54fb649c Fix synchronization issues between render and overlay update threads in DXVA2 2020-12-18 20:23:52 -06:00
Cameron Gutman
94b46a2173 Use a vertex buffer for rendering the DXVA2 overlays 2020-12-16 18:16:35 -06:00
Cameron Gutman
1e7cb7f13e Replace D3DX9 with SDL_ttf for overlay rendering 2020-12-13 23:43:31 -06:00
Cameron Gutman
59a73817c8 Don't use AntiHooking.dll or use D3DX9 on ARM64 2020-12-12 13:59:47 -06:00
Cameron Gutman
38b59aa1a9 Fix DXVA2 renderer compilation with Qt 6.0 2020-11-21 11:12:40 -06:00
Cameron Gutman
8d2cbf806d Improve message for broken Intel drivers to indicate that users should update their driver 2020-07-12 15:26:38 -07:00
Cameron Gutman
51e9ab83ad Send a null AVFrame to indicate end of stream to allow renderers to do render thread cleanup 2020-05-13 18:55:21 -07:00
Cameron Gutman
529fdf0341 Add decoder options dictionary to prepareDecoderContext() 2020-02-08 17:47:26 -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
d4c2350d63 Fix DXVA2 rendering with the wrong colorspace on AMD GPUs 2019-12-15 13:29:19 -08:00
Cameron Gutman
ca26fa2dd0 Add basic HEVC Main10 support in DXVA2 renderer 2019-11-04 22:57:12 -08: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
e95ff989b1 Allow DXVA2 renderer blacklists to be bypassed 2019-03-21 20:44:30 -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
bf5d43d0cf Use SDL_HINT_OVERRIDE for critical hints 2019-03-17 00:18:15 -07:00
Cameron Gutman
81c6202582 Rename renderFrameAtVsync() to renderFrame() in preparation for further refactoring 2019-02-15 21:07:02 -08:00
Cameron Gutman
f83853c2fb OverlayManager now manages font size for the overlays 2019-02-12 22:36:56 -08:00
Cameron Gutman
5788fa7204 Make OverlayManager own the overlay color setting 2019-02-12 20:39:10 -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
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
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
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
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
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
9aa487418f Force V-Sync enabled for DXVA2 windowed with DWM composition enabled 2018-09-03 23:34:15 -07: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
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