[PATCH v2 1/7] media: rkvdec: Add HEVC backend
Jonas Karlman
jonas at kwiboo.se
Sun Aug 17 09:46:24 PDT 2025
Hi Detlev,
On 8/12/2025 10:10 PM, Detlev Casanova wrote:
> 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.
On the older rkvdec it is not, and I was unsure about the newer SoCs at
the time of initial re-work of this. Regardless this is more correct
when only looking at this function, it does not include 4:4:4 but is
correct for all currently known RKVDEC_IMG_FMT. Also to keep this
function in sync with the h264 variant for more easy compare and less
confusion about the two down the line.
Regards,
Jonas
>
>> + 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