Cameron Gutman
254526a213
Plumb HDR mode information to the decoders
2022-01-28 22:10:50 -06:00
Cameron Gutman
d6cfbdb273
Rewrite FFmpeg decoder to use pull model
...
This allows us to keep asynchronous decoders like MMAL and V4L2M2M fed
while we're waiting for output frames. Behavior for synchronous decoders
should be identical.
Continuing to feed new data while waiting for output frames is crucial for
acceptable performance on 1080p video on the Raspberry Pi using V4L2M2M,
since it allows the decode and copy operations to be pipelined.
2022-01-17 15:06:12 -06:00
Cameron Gutman
5a32992497
Try to learn if decoders support retrying avcodec_receive_frame()
2021-12-14 20:41:27 -06:00
Cameron Gutman
56119eebae
Adapt to constification of AVCodec in FFmpeg master
2021-05-24 23:27:31 -05:00
Cameron Gutman
e74753bec1
Allow fallback from EGL to direct on EGLImage export failure
2021-03-22 22:51:29 -05:00
Cameron Gutman
96f79688dd
Use av_packet_alloc() instead of av_init_packet()
...
sizeof(AVPacket) may be deprecated from ABI in the near future
2021-03-05 17:47:04 -06:00
Cameron Gutman
88391b0274
Use the decoder's supported pix_fmts to select a suitable renderer
2021-02-02 19:05:27 -06: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
4794f44a6d
Charge decoders for time spent holding on to frames
2020-01-26 20:15:11 -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
f8621be5ee
Add an HEVC Main10 test frame
2019-11-05 17:08:25 -08:00
Cameron Gutman
1c225ed04d
Use CUDA acceleration if other hwaccels are unavailable
2019-06-26 21:54:29 -07:00
Cameron Gutman
1dfca525cf
Refactor renderer initialization to reduce duplication and inconsistency
2019-04-18 20:02:14 -07:00
Cameron Gutman
773b1af6f1
Minor refactoring in preparation for non-hwaccel decoder support
2019-04-15 21:56:01 -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
947970e07b
Shortcut decoder initialization when only using it for capability testing
2019-02-12 18:42:53 -08:00
Cameron Gutman
a4edd9d202
Submit frame directly from the decoder thread to avoid interference from the main thread
2019-01-21 20:27:37 -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
4f84843b00
Fixup H.264 SPS for VideoToolbox compatibility. Fixes #98
2018-10-12 17:59:53 -07:00
Cameron Gutman
a0249b4337
Add video stats for performance overlay
2018-09-25 00:47:59 -07: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
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
Cameron Gutman
c61182bcb2
Allow FFmpeg decoder to self-heal in cases of UAC dialogs and other unexpected loss of hardware state
2018-08-09 18:39:38 -07:00
Cameron Gutman
0c18bcdd5e
Fix DXVA 2 regression on Windows
2018-08-02 22:28:59 -07:00
Cameron Gutman
624578f286
Fix decoder reinitialization after test frame
2018-08-02 21:57:16 -07:00
Cameron Gutman
c18e99c9ec
Validate that the codec is functional before using it. Fixes streaming failure with VAAPI if hardware lacks codec support
2018-08-02 21:37:46 -07:00
Cameron Gutman
faaf9dfa07
Fix crashes when restarting streaming with DXVA2 renderer due to leaked surface references
2018-07-20 13:10:54 -07:00
Cameron Gutman
a89cadc520
Separate FFmpeg decoder from the Session class ( #4 )
2018-07-17 20:00:16 -07:00