[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c0573db5-17df-4c8a-abfb-af7163f6b1b3@kwiboo.se>
Date: Sun, 17 Aug 2025 18:46:24 +0200
From: Jonas Karlman <jonas@...boo.se>
To: Detlev Casanova <detlev.casanova@...labora.com>
Cc: Ezequiel Garcia <ezequiel@...guardiasur.com.ar>,
Mauro Carvalho Chehab <mchehab@...nel.org>, Heiko Stuebner
<heiko@...ech.de>, Alex Bee <knaerzche@...il.com>,
Nicolas Dufresne <nicolas.dufresne@...labora.com>,
Sebastian Fricke <sebastian.fricke@...labora.com>,
linux-media@...r.kernel.org, linux-rockchip@...ts.infradead.org,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 1/7] media: rkvdec: Add HEVC backend
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@60 fps.
>>
>> Add the backend for HEVC format to the decoder.
>>
>> Signed-off-by: Alex Bee <knaerzche@...il.com>
>> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@...labora.com>
>> Signed-off-by: Sebastian Fricke <sebastian.fricke@...labora.com>
>> Signed-off-by: Jonas Karlman <jonas@...boo.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.
>
>
>
Powered by blists - more mailing lists