[FFmpeg-devel] [RFC PATCH 0/2] fftools/ffplay: Add hardware decoding and rendering support

Zhao Zhili quinkblack at foxmail.com
Sun Oct 15 16:05:13 EEST 2023


From: Zhao Zhili <zhilizhao at tencent.com>

Since we have hwaccel vulkan and vulkan decoders, now it's possible to
add a renderer to ffplay to interoperate with multiple hardware decoders.
This is a good opportinuity to add hardware decoding support to ffplay.
I'm not meant to reinvent the wheel and duplicate the work of mpv or VLC,
but enhance a simple test tool.

The following patches

1. With minimum effort to add hardware decoding and rendering support.
2. Do render with libplacebo.
3. Works with cuda/nvdec, vaapi and vulkan decoder without CPU copy.

   I have tested cuda and vulkan decoders. I don't have devices with vaapi, it
   should work I guess. For example,
	ffplay -hwaccel cuda -enable_vulkan 8k.mp4

4. It can fallback to CPU copy but with less values.

Known issues:
1. Doesn't take filters into consideration yet.
2. Doesn't suppport subtitles without subtitle filter.

Zhao Zhili (2):
  fftools/ffplay: add vulkan renderer via libplacebo
  fftools/ffplay: add hwaccel decoding support

 configure                 |   2 +-
 fftools/Makefile          |   2 +
 fftools/ffplay.c          |  75 +++++++-
 fftools/ffplay_renderer.c | 364 ++++++++++++++++++++++++++++++++++++++
 fftools/ffplay_renderer.h |  36 ++++
 5 files changed, 473 insertions(+), 6 deletions(-)
 create mode 100644 fftools/ffplay_renderer.c
 create mode 100644 fftools/ffplay_renderer.h

-- 
2.34.1



More information about the ffmpeg-devel mailing list