Linux-Rockchip Archive on lore.kernel.org
 help / color / mirror / Atom feed
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

  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