[PATCH 0/5] media: meson: vdec: Add support for compressed framebuffer

From: Neil Armstrong
Date: Thu Jun 04 2020 - 09:53:31 EST

This patchset add support for compressed framebuffer while decoding VP9
8bit and 10bit streams.

First, it adds two generic Compressed Framebuffer pixel formats to be used
with a modifier when imported back in another subsystem like DRM/KMS.

These are aligned with the DRM_FORMAT_YUV420_8BIT and DRM_FORMAT_YUV420_10BIT
used to describe the underlying compressed buffers used for ARM Framebuffer
Compression. In the Amlogic case, the compression is different but the
underlying buffer components is the same.

Then, in order to handle Compressed Framebuffer support, we need to handle
the switch between 8bit and 10bit frame output.
Add the necessary changes to decode VP9 8bit and 10bit streams into
compressed buffers to be imported back into DRM/KMS using a modifier.

Finally, add the necessary to add support for negociating the compressed buffer
pixel format with the V4L2 M2M consumer, and allocating the right
buffers in this case.

Until a proper mechanism exists to pass a modifier along the pixel format,
only the generic V4L2_PIX_FMT_YUV420_8BIT and V4L2_PIX_FMT_YUV420_10BIT
format are passed in v4l2_pix_format_mplane struct for consumer.

Maxime Jourdan (5):
media: videodev2: add Compressed Framebuffer pixel formats
media: meson: vdec: handle bitdepth on source change
media: meson: vdec: update compressed buffer helpers
media: meson: vdec: add support for compressed output for VP9 decoder
media: meson: vdec: handle compressed output pixel format negociation
with consumer

drivers/media/v4l2-core/v4l2-ioctl.c | 2 +
drivers/staging/media/meson/vdec/codec_h264.c | 3 +-
.../media/meson/vdec/codec_hevc_common.c | 133 +++++++-----------
.../media/meson/vdec/codec_hevc_common.h | 13 +-
drivers/staging/media/meson/vdec/codec_vp9.c | 29 ++--
drivers/staging/media/meson/vdec/vdec.c | 46 ++++++
drivers/staging/media/meson/vdec/vdec.h | 4 +
.../staging/media/meson/vdec/vdec_helpers.c | 68 +++++++--
.../staging/media/meson/vdec/vdec_helpers.h | 11 +-
.../staging/media/meson/vdec/vdec_platform.c | 9 +-
include/uapi/linux/videodev2.h | 9 ++
11 files changed, 203 insertions(+), 124 deletions(-)