From: Detlev Casanova <detlev.casanova@collabora.com>
To: Jonas Karlman <jonas@kwiboo.se>,
Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Alex Bee <knaerzche@gmail.com>,
Nicolas Dufresne <nicolas.dufresne@collabora.com>,
linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 0/7] media: rkvdec: Add HEVC backend
Date: Tue, 9 Sep 2025 14:12:09 -0400 [thread overview]
Message-ID: <b1d79707-59b2-4dc0-9d15-49b5ec43364d@collabora.com> (raw)
In-Reply-To: <20250905161942.3759717-1-jonas@kwiboo.se>
Hi Jonas,
On 9/5/25 12:19, Jonas Karlman wrote:
> This series add a HEVC backend to the Rockchip Video Decoder driver.
>
> With the dependent H.264 High 10 and 4:2:2 profile support series
> finally merged there is finally time to send a v2 with minor changes and
> a suggested code style fix of this series. v1 of this series has been
> fully functional up until recent unstaging of the rkvdec driver.
>
> A version of this HEVC backend has been in use by the LibreELEC distro
> for the past 5+ years [1]. It was initially created based on a copy of
> the H264 backend, unstable HEVC uAPI controls and a cabac table + scaling
> matrix functions shamelessly copied 1:1 from the Rockchip mpp library.
>
> It has since then been extended to use the stable HEVC uAPI controls and
> improved opon e.g. to include support for rk3288 and fix decoding issues
> by Alex Bee and Nicolas Dufresne.
>
> The version submitted in this series is based on the code currently used
> by the LibreELEC distro, excluding hard/soft reset, and with cabac table
> and scaling matrix functions picked from Sebastian Fricke prior series
> to add a HEVC backend [2].
>
> Big thanks to Alex Bee, Nicolas Dufresne and Sebastian Fricke for making
> this series possible!
>
> Patch 1 add the new HEVC backend.
> Patch 2-3 add variants support to the driver.
> Patch 4 add support for a rk3288 variant.
> Patch 5 add a rk3328 variant to work around hw quirks.
> Patch 6-7 add device tree node for rk3288.
>
> This was tested on a ROCK Pi 4 (RK3399) and Rock64 (RK3328):
>
> v4l2-compliance 1.30.1, 64 bits, 64-bit time_t
> ...
> Total for rkvdec device /dev/video1: 49, Succeeded: 49, Failed: 0, Warnings: 0
>
> Running test suite JCT-VC-HEVC_V1 with decoder FFmpeg-H.265-v4l2request
> ...
> Ran 137/147 tests successfully
>
> Running test suite JCT-VC-MV-HEVC with decoder FFmpeg-H.265-v4l2request
> ...
> Ran 9/9 tests successfully
>
> And on a TinkerBoard (RK3288):
>
> v4l2-compliance 1.30.1, 32 bits, 32-bit time_t
> ...
> Total for rkvdec device /dev/video3: 49, Succeeded: 49, Failed: 0, Warnings: 0
>
> Running test suite JCT-VC-HEVC_V1 with decoder FFmpeg-H.265-v4l2request
> ...
> Ran 137/147 tests successfully
>
> Running test suite JCT-VC-MV-HEVC with decoder FFmpeg-H.265-v4l2request
> ...
> Ran 9/9 tests successfully
>
> The WPP_x_ericsson tests from test suite JCT-VC-HEVC_V1 has been showing
> a mix of both Success and/or Fail result for FFmpeg-H.265-v4l2request.
>
> Full summary of fluster run can be found at [3].
>
> Please note that there is a known issue with concurrent decoding,
> decoding errors in one decode session may affect a separate session.
> The only known mitigation to this is to pause decoding for some time
> and/or do a full HW reset, something to handle in future series.
I also tested on Rock Pi 4 SE (but with Gstreamer instead of FFmpeg) and
can
confirm the same results, so, for the whole series:
Tested-by: Detlev Casanova <detlev.casanova@collabora.com> # RK3399
Best regards,
Detlev
> Changes in v3:
> - Change to use file_to_rkvdec_ctx()
> - Rename assemble_hw_rps to assemble_sw_rps
> - Use a reference to rkvdec_variant instead of copying capabilities and
> quirks to rkvdec_dev
> - Add num_regs field to rkvdec_variant, currently not used for anything
> - Add and use rkvdec_quirks_disable_qos() helper to apply qos quirk
> - Collect t-b and r-b tags
> Link to v2: https://lore.kernel.org/linux-media/20250810212454.3237486-1-jonas@kwiboo.se
>
> Changes in v2:
> - Rabase after h264 high10/422 merge and unstaging of rkvdec driver
> - 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
> - Adjust code style in rkvdec_enum_coded_fmt_desc()
> - Collect a-b tag
> - Drop merged vdec node reg size patches
> Link to v1: https://lore.kernel.org/linux-media/20231105233630.3927502-1-jonas@kwiboo.se
>
> [1] https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Rockchip/patches/linux/default/linux-2000-v4l2-wip-rkvdec-hevc.patch
> [2] https://lore.kernel.org/linux-media/20230101-patch-series-v2-6-2-rc1-v2-0-fa1897efac14@collabora.com/
> [3] https://gist.github.com/Kwiboo/0ea22df1c9c3f3a48479d3f7ec28169d
>
> Alex Bee (4):
> media: rkvdec: Add variants support
> media: rkvdec: Add RK3288 variant
> media: rkvdec: Disable QoS for HEVC and VP9 on RK3328
> ARM: dts: rockchip: Add vdec node for RK3288
>
> Jonas Karlman (3):
> media: rkvdec: Add HEVC backend
> media: rkvdec: Implement capability filtering
> media: dt-bindings: rockchip,vdec: Add RK3288 compatible
>
> .../bindings/media/rockchip,vdec.yaml | 1 +
> arch/arm/boot/dts/rockchip/rk3288.dtsi | 17 +-
> .../media/platform/rockchip/rkvdec/Makefile | 2 +-
> .../rockchip/rkvdec/rkvdec-hevc-data.c | 1848 +++++++++++++++++
> .../platform/rockchip/rkvdec/rkvdec-hevc.c | 820 ++++++++
> .../platform/rockchip/rkvdec/rkvdec-regs.h | 4 +
> .../platform/rockchip/rkvdec/rkvdec-vp9.c | 4 +
> .../media/platform/rockchip/rkvdec/rkvdec.c | 198 +-
> .../media/platform/rockchip/rkvdec/rkvdec.h | 17 +
> 9 files changed, 2890 insertions(+), 21 deletions(-)
> create mode 100644 drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-data.c
> create mode 100644 drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c
>
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2025-09-09 18:12 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-05 16:19 [PATCH v3 0/7] media: rkvdec: Add HEVC backend Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 1/7] " Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 2/7] media: rkvdec: Add variants support Jonas Karlman
2025-09-08 18:32 ` Detlev Casanova
2025-09-09 8:41 ` Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 3/7] media: rkvdec: Implement capability filtering Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 4/7] media: rkvdec: Add RK3288 variant Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 5/7] media: rkvdec: Disable QoS for HEVC and VP9 on RK3328 Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 6/7] media: dt-bindings: rockchip,vdec: Add RK3288 compatible Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 7/7] ARM: dts: rockchip: Add vdec node for RK3288 Jonas Karlman
2025-09-09 18:12 ` Detlev Casanova [this message]
2025-09-13 14:51 ` [PATCH v3 0/7] media: rkvdec: Add HEVC backend Diederik de Haas
2025-12-15 11:47 ` (subset) " Heiko Stuebner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b1d79707-59b2-4dc0-9d15-49b5ec43364d@collabora.com \
--to=detlev.casanova@collabora.com \
--cc=devicetree@vger.kernel.org \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=jonas@kwiboo.se \
--cc=knaerzche@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mchehab@kernel.org \
--cc=nicolas.dufresne@collabora.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox