Cameron Gutman
1616d237ae
Avoid h264_v4l2m2m by default on RPi builds
2021-12-28 16:28:04 -06:00
Cameron Gutman
d8acf24af0
Don't use SdlRenderer with MMAL
2021-12-19 20:58:50 -06:00
Cameron Gutman
1e6ca18193
Fix error checking in decode test
2021-12-15 17:33:28 -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
9999ded933
Quiet down log spam for asynchronous decoders
2021-12-11 18:37:39 -06:00
Cameron Gutman
80128e8293
Properly support asynchronous decoders that return multiple frames at a time
2021-12-11 18:15:49 -06:00
Cameron Gutman
3e9aea1f7a
Optimize CUDA support to avoid roundtrip to CPU memory
2021-12-06 18:23:40 -06:00
Cameron Gutman
56119eebae
Adapt to constification of AVCodec in FFmpeg master
2021-05-24 23:27:31 -05:00
Cameron Gutman
c17c8e2a2c
Remove receive time from performance overlay
...
It is largely superseded by network latency
2021-05-22 13:59:14 -05:00
Cameron Gutman
e45a60f2ed
Save RTT in VIDEO_STATS so it can be logged on disconnect
2021-05-22 13:57:12 -05:00
Cameron Gutman
581c9438ca
Add network latency to stats overlay
2021-05-15 14:40:31 -05:00
Cameron Gutman
8fcef63890
Don't waste time performing extra decoder initializations for EGL when it's not supported
2021-04-30 20:52:09 -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
d63a1b0eb0
Handle custom hwaccel decoders
2021-02-02 19:45:22 -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
cedba501ee
Query the frontend renderer to determine fullscreen-only limitations
2021-01-30 17:57:34 -06:00
Cameron Gutman
541784382a
Add support for AV_HWDEVICE_TYPE_DRM hwaccels
2021-01-30 10:00:01 -06:00
Cameron Gutman
2a7fae2c82
Revert "Add logic to try LibreELEC's out-of-tree stateless V4L2 decoders"
...
v4l2request is a hwaccel not a decoder
This reverts commit ed3a5448b1
.
2021-01-29 20:30:01 -06:00
Cameron Gutman
ed3a5448b1
Add logic to try LibreELEC's out-of-tree stateless V4L2 decoders
2021-01-29 20:19:27 -06:00
Cameron Gutman
390544cd9a
Charge time spent in the decode unit queue to the decoder rather than receive time
2020-12-31 16:10:01 -06:00
Cameron Gutman
5a7a49d1d5
Display resolution and codec in OSD
2020-08-20 20:52:05 -07:00
Cameron Gutman
586a93d7aa
Use the new EGL renderer for VAAPI by default
2020-06-13 20:21:54 -07:00
Cameron Gutman
728377cba3
Set AV_PKT_FLAG_KEY for key frames
2020-05-25 18:31:19 -07: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
4794f44a6d
Charge decoders for time spent holding on to frames
2020-01-26 20:15:11 -08:00
Cameron Gutman
f0119b1231
Add support for the out-of-tree Jetson FFmpeg NVMPI decoders
...
https://github.com/jocover/jetson-ffmpeg
2020-01-26 19:16:03 -08:00
Cameron Gutman
4c579aa826
Provide another frame if avcodec_receive_frame() returns EAGAIN
2020-01-26 15:36:22 -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
cede6ce8a9
Add H264_DECODER_HINT and HEVC_DECODER_HINT envvars to specify a decoder manually
2020-01-26 14:40:48 -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
2e0bd2ec28
Invoke avcodec_receive_frame() during decoder testing
2020-01-15 18:09:59 -08:00
Cameron Gutman
5aed8f928a
Add V4L2M2M support using SDL renderer
...
Note: This requires FFmpeg master to work, since it depends on:
https://github.com/FFmpeg/FFmpeg/commit/d61cf1b1ebc2477749d7d7825a072400ed24af9
2020-01-10 20:52:16 -08:00
Cameron Gutman
160684f23e
Allow decoders to choose a desired colorspace
2019-12-14 15:25:56 -08:00
Cameron Gutman
de7b973239
Plumb presentation time from server into AVFrame.pts field
2019-11-11 18:03:47 -08:00
Cameron Gutman
f8621be5ee
Add an HEVC Main10 test frame
2019-11-05 17:08:25 -08:00
Cameron Gutman
5db5a088ea
Fix NVDEC artifacts if the renderer is delayed for a bit
2019-08-01 20:25:58 -07:00
Cameron Gutman
1c225ed04d
Use CUDA acceleration if other hwaccels are unavailable
2019-06-26 21:54:29 -07:00
Cameron Gutman
18d1d35104
Use QByteArray::reserve() rather than reallocating each time we must resize
2019-05-02 22:54:18 -07:00
Cameron Gutman
dba479774b
Add DRM renderer for Rockchip devices
2019-04-21 05:22:37 +00:00
Cameron Gutman
d65e29111f
Fix some codec selection bugs
2019-04-19 20:57:21 -07:00
Cameron Gutman
1dfca525cf
Refactor renderer initialization to reduce duplication and inconsistency
2019-04-18 20:02:14 -07:00
Cameron Gutman
e51ad1a68a
Fix use-after-free due to stale m_FrontendRenderer pointer. Fixes #214
2019-04-18 19:26:13 -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
25e5175c54
Refactor parameter passing to decoders and split backend/decode-only and frontend renderers
2019-04-11 22:27:20 -07:00