Re: [PATCH v2 1/7] media: rkvdec: Add HEVC backend
From: Detlev Casanova
Date: Tue Aug 12 2025 - 16:11:09 EST
Hi Jonas,
On Sunday, 10 August 2025 17:24:31 EDT Jonas Karlman wrote:
> The Rockchip VDEC supports the HEVC codec with the Main and Main10
> Profile up to Level 5.1 High tier: 4096x2304@60 fps.
>
> Add the backend for HEVC format to the decoder.
>
> Signed-off-by: Alex Bee <knaerzche@xxxxxxxxx>
> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@xxxxxxxxxxxxx>
> Signed-off-by: Sebastian Fricke <sebastian.fricke@xxxxxxxxxxxxx>
> Signed-off-by: Jonas Karlman <jonas@xxxxxxxxx>
> ---
> Changes in v2:
> - Use new_value in transpose_and_flatten_matrices()
> - Add NULL check for ctrl->new_elems in rkvdec_hevc_run_preamble()
> - Set RKVDEC_WR_DDR_ALIGN_EN for RK3328
> ---
> .../media/platform/rockchip/rkvdec/Makefile | 2 +-
> .../rockchip/rkvdec/rkvdec-hevc-data.c | 1848 +++++++++++++++++
> .../platform/rockchip/rkvdec/rkvdec-hevc.c | 817 ++++++++
> .../platform/rockchip/rkvdec/rkvdec-regs.h | 2 +
> .../media/platform/rockchip/rkvdec/rkvdec.c | 76 +
> .../media/platform/rockchip/rkvdec/rkvdec.h | 1 +
> 6 files changed, 2745 insertions(+), 1 deletion(-)
> create mode 100644
> drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-data.c create mode
> 100644 drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c
>
[snip]
> diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c
> b/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c new file mode 100644
> index 000000000000..1994ea24f0be
> --- /dev/null
> +++ b/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c
[snip]
> +
> +static enum rkvdec_image_fmt rkvdec_hevc_get_image_fmt(struct rkvdec_ctx
> *ctx, + struct
v4l2_ctrl *ctrl)
> +{
> + const struct v4l2_ctrl_hevc_sps *sps = ctrl->p_new.p_hevc_sps;
> +
> + if (ctrl->id != V4L2_CID_STATELESS_HEVC_SPS)
> + return RKVDEC_IMG_FMT_ANY;
> +
> + if (sps->bit_depth_luma_minus8 == 0) {
> + if (sps->chroma_format_idc == 2)
> + return RKVDEC_IMG_FMT_422_8BIT;
Is 4:2:2 really supported ? It is not on rk3588 and likely neither on rk3576.
You also mention later that Only 4:0:0 and 4:2:0 are supported.
> + else
> + return RKVDEC_IMG_FMT_420_8BIT;
> + } else if (sps->bit_depth_luma_minus8 == 2) {
> + if (sps->chroma_format_idc == 2)
> + return RKVDEC_IMG_FMT_422_10BIT;
Same here.
--
Detlev.