[PATCH v2 1/7] media: rkvdec: Add HEVC backend

Detlev Casanova detlev.casanova at collabora.com
Tue Aug 12 13:10:12 PDT 2025


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 at 60 fps.
> 
> Add the backend for HEVC format to the decoder.
> 
> Signed-off-by: Alex Bee <knaerzche at gmail.com>
> Signed-off-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> Signed-off-by: Sebastian Fricke <sebastian.fricke at collabora.com>
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> ---
> 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.






More information about the linux-arm-kernel mailing list