[FFmpeg-devel] [PATCH v06 0/5] KMSGrab, fbtile helpers, hwcontext_drm, hwdownload, fbdetilevf
hanishkvc
hanishkvc at gmail.com
Sat Jul 4 16:17:12 EEST 2020
Have split my changes into 5 patches, so that the concerned people/team
can decide whether to apply a given patch or not.
P1/4) kmsgrab format_modifier patch is independent of other patches
P2/5) fbtile helper routines is indepdent of other patches, and is
used by my hwcontext_drm, hwdownload and fbdetile patches. Equally
it could be used by any other logic if required.
P3/5) hwcontext_drm detile if required and possible.
This depends on the fbtile (P2/5) patches.
P4/5) hwdownload detile framebuffer patch. It is implemented such that
it gets used only if the actual hardware context doesnt detile the
underlying framebuffer and inturn if user requests detiling explicitly.
This depends on the fbtile (P2/5) patches.
NOTE: hwdownload patch is orthogonal to hwcontext_drm patch.
Detiling within hwcontext_drm, allows a bit more efficient detiling,
by avoiding a copy operation.
Detiling in hwdownload, provides a catch all detiling, where possible,
provided the user requests the same and the underlying hwcontext doesnt
output a linear layout.
P5/5) fbdetile video filter. Useful if a user wants to apply detiling as
a offline/seperate pass.
This depends on the fbtile (P2/5) patches.
I strongly feel ffmpeg should be a flexible toolkit, which gives the
freedom to the user to mix and match things as they see fit, rather than
enforcing things for them. Also ideally it should try and provide a sensible
fallback where possible. Keeping these in mind, this set of patches, tries
to put a skeleton in place to handle multiple possible usecases related to
tiled layouts.
Beyond this I leave it to the concerned people to decide, if they want to
provide the same freedom and flexibility to the users or not.
At a minimum apply P1/5, P2/5 and P3/5. Ideally apply all 5 patches, for
the best possible future flexibility.
hanishkvc (5):
KMSGrab: getfb2 format_modifier if user doesnt specify
fbtile helperRoutines cpu based framebuffer detiling
hwcontext_drm detile non linear layout, if possible
hwdownload detile framebuffer, if requested by user
fbdetile videofilter cpu based framebuffer detiling
Changelog | 4 +
doc/filters.texi | 97 ++++++++
libavdevice/kmsgrab.c | 22 +-
libavfilter/Makefile | 1 +
libavfilter/allfilters.c | 1 +
libavfilter/vf_fbdetile.c | 238 +++++++++++++++++++
libavfilter/vf_hwdownload.c | 74 +++++-
libavutil/Makefile | 2 +
libavutil/fbtile.c | 441 ++++++++++++++++++++++++++++++++++++
libavutil/fbtile.h | 228 +++++++++++++++++++
libavutil/hwcontext_drm.c | 32 ++-
11 files changed, 1135 insertions(+), 5 deletions(-)
create mode 100644 libavfilter/vf_fbdetile.c
create mode 100644 libavutil/fbtile.c
create mode 100644 libavutil/fbtile.h
--
2.25.1
More information about the ffmpeg-devel
mailing list