[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <AEAFD8D1-D7F4-470A-A84B-E18DD9FDA735@gmail.com>
Date: Tue, 21 Mar 2023 19:30:01 +0400
From: Christian Hewitt <christianshewitt@...il.com>
To: Hans Verkuil <hverkuil@...all.nl>
Cc: Neil Armstrong <neil.armstrong@...aro.org>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Kevin Hilman <khilman@...libre.com>,
Jerome Brunet <jbrunet@...libre.com>,
Martin Blumenstingl <martin.blumenstingl@...glemail.com>,
linux-media@...r.kernel.org,
AML <linux-amlogic@...ts.infradead.org>,
linux-staging@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
Maxime Jourdan <mjourdan@...libre.com>,
Benjamin Roszak <benjamin545@...il.com>
Subject: Re: [PATCH v3 2/2] media: meson: vdec: add HEVC decode codec
> On 21 Mar 2023, at 6:25 pm, Hans Verkuil <hverkuil@...all.nl> wrote:
>
> On 14/03/2023 12:43, Christian Hewitt wrote:
>> From: Maxime Jourdan <mjourdan@...libre.com>
>>
>> Add initial HEVC codec for the Amlogic GXBB/GXL/GXM SoCs using
>> the common "HEVC" decoder driver.
>>
>> Signed-off-by: Maxime Jourdan <mjourdan@...libre.com>
>> [codec alignment to upstream changes and frame handling improvements]
>> Signed-off-by: Benjamin Roszak <benjamin545@...il.com>
>> ---
>> drivers/staging/media/meson/vdec/Makefile | 2 +-
>> drivers/staging/media/meson/vdec/codec_hevc.c | 1463 +++++++++++++++++
>> drivers/staging/media/meson/vdec/codec_hevc.h | 13 +
>> drivers/staging/media/meson/vdec/esparser.c | 3 +-
>> drivers/staging/media/meson/vdec/hevc_regs.h | 1 +
>> .../staging/media/meson/vdec/vdec_platform.c | 37 +
>> 6 files changed, 1517 insertions(+), 2 deletions(-)
>> create mode 100644 drivers/staging/media/meson/vdec/codec_hevc.c
>> create mode 100644 drivers/staging/media/meson/vdec/codec_hevc.h
>>
>
> <snip>
>
>> diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c
>> index 88c9d72e1c83..ea2aa0e8cf0b 100644
>> --- a/drivers/staging/media/meson/vdec/vdec_platform.c
>> +++ b/drivers/staging/media/meson/vdec/vdec_platform.c
>> @@ -11,10 +11,23 @@
>> #include "vdec_hevc.h"
>> #include "codec_mpeg12.h"
>> #include "codec_h264.h"
>> +#include "codec_hevc.h"
>> #include "codec_vp9.h"
>>
>> static const struct amvdec_format vdec_formats_gxbb[] = {
>> {
>> + .pixfmt = V4L2_PIX_FMT_HEVC,
>> + .min_buffers = 4,
>> + .max_buffers = 24,
>> + .max_width = 3840,
>> + .max_height = 2160,
>> + .vdec_ops = &vdec_hevc_ops,
>> + .codec_ops = &codec_hevc_ops,
>> + .firmware_path = "meson/vdec/gxl_hevc.bin",
>> + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
>> + .flags = V4L2_FMT_FLAG_COMPRESSED |
>> + V4L2_FMT_FLAG_DYN_RESOLUTION,
>> + }, {
>> .pixfmt = V4L2_PIX_FMT_H264,
>> .min_buffers = 2,
>> .max_buffers = 24,
>> @@ -64,6 +77,18 @@ static const struct amvdec_format vdec_formats_gxl[] = {
>> .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
>> .flags = V4L2_FMT_FLAG_COMPRESSED |
>> V4L2_FMT_FLAG_DYN_RESOLUTION,
>> + }, {
>> + .pixfmt = V4L2_PIX_FMT_HEVC,
>> + .min_buffers = 4,
>> + .max_buffers = 24,
>> + .max_width = 3840,
>> + .max_height = 2160,
>> + .vdec_ops = &vdec_hevc_ops,
>> + .codec_ops = &codec_hevc_ops,
>> + .firmware_path = "meson/vdec/gxl_hevc.bin",
>> + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
>> + .flags = V4L2_FMT_FLAG_COMPRESSED |
>> + V4L2_FMT_FLAG_DYN_RESOLUTION,
>> }, {
>> .pixfmt = V4L2_PIX_FMT_H264,
>> .min_buffers = 2,
>> @@ -114,6 +139,18 @@ static const struct amvdec_format vdec_formats_gxm[] = {
>> .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
>> .flags = V4L2_FMT_FLAG_COMPRESSED |
>> V4L2_FMT_FLAG_DYN_RESOLUTION,
>> + }, {
>> + .pixfmt = V4L2_PIX_FMT_HEVC,
>> + .min_buffers = 4,
>> + .max_buffers = 24,
>> + .max_width = 3840,
>> + .max_height = 2160,
>> + .vdec_ops = &vdec_hevc_ops,
>> + .codec_ops = &codec_hevc_ops,
>> + .firmware_path = "meson/vdec/gxl_hevc.bin",
>
> Hmm, I don't see this firmware in any debian package. Is it made available to
> linux-firmware? This actually applies to *all* meson/vdec/ firmwares.
Yes, was upstreamed by Maxime in 2019 and updated 2020:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/meson/vdec
Christian
>> + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
>> + .flags = V4L2_FMT_FLAG_COMPRESSED |
>> + V4L2_FMT_FLAG_DYN_RESOLUTION,
>> }, {
>> .pixfmt = V4L2_PIX_FMT_H264,
>> .min_buffers = 2,
Powered by blists - more mailing lists