From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
To: Jonas Karlman <jonas@kwiboo.se>,
Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Hans Verkuil <hverkuil-cisco@xs4all.nl>
Cc: Alex Bee <knaerzche@gmail.com>,
Sebastian Fricke <sebastian.fricke@collabora.com>,
Benjamin Gaignard <benjamin.gaignard@collabora.com>,
Christopher Obbard <chris.obbard@collabora.com>,
linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/9] media: rkvdec: Add HEVC backend
Date: Thu, 09 Nov 2023 12:45:14 -0500 [thread overview]
Message-ID: <27626e6685fccad44eaec3a50fd330094d5d72fe.camel@collabora.com> (raw)
In-Reply-To: <20231105233630.3927502-1-jonas@kwiboo.se>
Hi Jonas,
Le dimanche 05 novembre 2023 à 23:36 +0000, Jonas Karlman a écrit :
> This series add a HEVC backend to the Rockchip Video Decoder driver.
>
> A version of this HEVC backend has been in use by the LibreELEC distro
> for the past 3+ 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.
> Patch 8-9 extend vdec node reg size to include cache/perf registers.
>
> This was tested on a ROCK Pi 4 (RK3399) and Rock64 (RK3328):
>
> v4l2-compliance 1.24.1, 64 bits, 64-bit time_t
> ...
> Total for rkvdec device /dev/video1: 46, Succeeded: 46, Failed: 0, Warnings: 0
>
> Running test suite JCT-VC-HEVC_V1 with decoder FFmpeg-H.265-V4L2-request
> ...
> Ran 135/147 tests successfully
Just tested, same score on GStreamer. Failing are:
- DBLK_D_VIXS_2
- DSLICE_A_HHI_5
- EXT_A_ericsson_4
- PICSIZE* (all 4, resolution reason)
- SAODBLK_A_MainConcept_4
- SAODBLK_B_MainConcept_4
- TSUNEQBD_A_MAIN10_Technicolor_2
- WPP_D_ericsson_MAIN_2
To be noted that TSUNEQBD_A_MAIN10_Technicolor_2 has 10bit luma, and
9bit chroma. Works on Hantro G2, but I just tried waving your check,
and the results did not match the MD5. This is of low important though,
I have never seen such a stream in the wild and MTK VCODEC also does
not support it.
>
> Running test suite JCT-VC-MV-HEVC with decoder FFmpeg-H.265-V4L2-request
> ...
> Ran 9/9 tests successfully
Fails with GStreamer, but most likely a GStreamer issue, I'll have a
look later. JCT-VC-RExt and JCT-VC-SCC also fails. I know of a fact
that we did not implement SCC in the uAPI (and it may not be supported
by this hardware anyway).
Tested-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
>
> And on a TinkerBoard (RK3288):
>
> v4l2-compliance 1.24.1, 32 bits, 32-bit time_t
> ...
> Total for rkvdec device /dev/video3: 47, Succeeded: 47, Failed: 0, Warnings: 0
>
> Running test suite JCT-VC-HEVC_V1 with decoder FFmpeg-H.265-V4L2-request
> ...
> Ran 137/147 tests successfully
>
> Running test suite JCT-VC-MV-HEVC with decoder FFmpeg-H.265-V4L2-request
> ...
> Ran 9/9 tests successfully
>
> This series depend on the following series:
> - media: rkvdec: Add H.264 High 10 and 4:2:2 profile support [3]
>
> To fully runtime test this series you need above series and ffmpeg
> patches from [4], this series and its depends is also available at [5].
>
> Full summary of fluster run can be found at [6].
>
> [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://lore.kernel.org/linux-media/20231105165521.3592037-1-jonas@kwiboo.se/
> [4] https://github.com/Kwiboo/FFmpeg/commits/v4l2-request-n6.1-dev/
> [5] https://github.com/Kwiboo/linux-rockchip/commits/linuxtv-rkvdec-hevc-v1/
> [6] https://gist.github.com/Kwiboo/4c0ed87774dede44ce6838451a1ec93d
>
> Regards,
> Jonas
>
> Alex Bee (5):
> 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
> arm64: dts: rockchip: Expand reg size of vdec node for RK3399
>
> Jonas Karlman (4):
> media: rkvdec: Add HEVC backend
> media: rkvdec: Implement capability filtering
> media: dt-bindings: rockchip,vdec: Add RK3288 compatible
> arm64: dts: rockchip: Expand reg size of vdec node for RK3328
>
> .../bindings/media/rockchip,vdec.yaml | 4 +-
> arch/arm/boot/dts/rockchip/rk3288.dtsi | 17 +-
> arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 +-
> arch/arm64/boot/dts/rockchip/rk3399.dtsi | 6 +-
> drivers/staging/media/rkvdec/Makefile | 2 +-
> drivers/staging/media/rkvdec/TODO | 7 -
> .../staging/media/rkvdec/rkvdec-hevc-data.c | 1848 +++++++++++++++++
> drivers/staging/media/rkvdec/rkvdec-hevc.c | 823 ++++++++
> drivers/staging/media/rkvdec/rkvdec-regs.h | 3 +
> drivers/staging/media/rkvdec/rkvdec-vp9.c | 10 +
> drivers/staging/media/rkvdec/rkvdec.c | 180 +-
> drivers/staging/media/rkvdec/rkvdec.h | 15 +
> 12 files changed, 2886 insertions(+), 31 deletions(-)
> create mode 100644 drivers/staging/media/rkvdec/rkvdec-hevc-data.c
> create mode 100644 drivers/staging/media/rkvdec/rkvdec-hevc.c
>
prev parent reply other threads:[~2023-11-09 17:45 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-05 23:36 [PATCH 0/9] media: rkvdec: Add HEVC backend Jonas Karlman
2023-11-05 23:36 ` [PATCH 1/9] " Jonas Karlman
2024-01-18 10:24 ` Sebastian Fricke
2023-11-05 23:36 ` [PATCH 2/9] media: rkvdec: Add variants support Jonas Karlman
2023-11-05 23:36 ` [PATCH 3/9] media: rkvdec: Implement capability filtering Jonas Karlman
2023-11-05 23:36 ` [PATCH 4/9] media: rkvdec: Add RK3288 variant Jonas Karlman
2023-11-05 23:36 ` [PATCH 5/9] media: rkvdec: Disable QoS for HEVC and VP9 on RK3328 Jonas Karlman
2023-11-05 23:36 ` [PATCH 6/9] media: dt-bindings: rockchip,vdec: Add RK3288 compatible Jonas Karlman
2023-11-06 17:11 ` Conor Dooley
2024-09-30 14:46 ` Heiko Stübner
2024-09-30 15:28 ` Jonas Karlman
2023-11-05 23:36 ` [PATCH 7/9] ARM: dts: rockchip: Add vdec node for RK3288 Jonas Karlman
2023-11-05 23:36 ` [PATCH 8/9] arm64: dts: rockchip: Expand reg size of vdec node for RK3328 Jonas Karlman
2023-11-05 23:36 ` [PATCH 9/9] arm64: dts: rockchip: Expand reg size of vdec node for RK3399 Jonas Karlman
2023-11-06 9:22 ` [PATCH 0/9] media: rkvdec: Add HEVC backend Heiko Stübner
2023-11-09 16:55 ` Jonas Karlman
2023-11-06 9:41 ` (subset) " Heiko Stuebner
2023-11-07 13:49 ` Hans Verkuil
2023-11-09 17:44 ` Jonas Karlman
2023-11-22 15:23 ` Hans Verkuil
2023-11-22 15:25 ` Chen-Yu Tsai
2023-11-23 16:29 ` Nicolas Dufresne
2023-11-09 17:45 ` Nicolas Dufresne [this message]
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=27626e6685fccad44eaec3a50fd330094d5d72fe.camel@collabora.com \
--to=nicolas.dufresne@collabora.com \
--cc=benjamin.gaignard@collabora.com \
--cc=chris.obbard@collabora.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=hverkuil-cisco@xs4all.nl \
--cc=jonas@kwiboo.se \
--cc=knaerzche@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-staging@lists.linux.dev \
--cc=mchehab@kernel.org \
--cc=sebastian.fricke@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