From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
To: Michael Bommarito <michael.bommarito@gmail.com>,
Hans Verkuil <hverkuil@kernel.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Nicolas Dufresne <nicolas.dufresne@collabora.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Detlev Casanova <detlev.casanova@collabora.com>,
Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
Yunfei Dong <yunfei.dong@mediatek.com>,
Jonas Karlman <jonas@kwiboo.se>, Heiko Stuebner <heiko@sntech.de>,
Kees Cook <kees@kernel.org>,
linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 3/9] media: hevc: add bounded tile-count helpers
Date: Thu, 3 Sep 2026 08:51:14 +0200 [thread overview]
Message-ID: <92f2fa35-aff2-4c14-b617-0884f90af44f@collabora.com> (raw)
In-Reply-To: <20260617021906.2746743-4-michael.bommarito@gmail.com>
Le 17/06/2026 à 04:19, Michael Bommarito a écrit :
> The stateless HEVC decoders compute the number of tile columns and rows
> from num_tile_columns_minus1 / num_tile_rows_minus1 and clamp it to the
> column_width_minus1[] / row_height_minus1[] capacity before using it as a
> loop bound. Add shared helpers in a new <media/v4l2-hevc.h> so the rkvdec
> and hantro drivers do not each open-code the min_t() clamp.
>
> Assisted-by: Claude:claude-opus-4-8
> Signed-off-by: Michael Bommarito <michael.bommarito@gmail.com>
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> ---
> include/media/v4l2-hevc.h | 41 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
> create mode 100644 include/media/v4l2-hevc.h
>
> diff --git a/include/media/v4l2-hevc.h b/include/media/v4l2-hevc.h
> new file mode 100644
> index 0000000000000..973c96be16be4
> --- /dev/null
> +++ b/include/media/v4l2-hevc.h
> @@ -0,0 +1,41 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * Helper functions for HEVC stateless codecs.
> + */
> +
> +#ifndef _MEDIA_V4L2_HEVC_H
> +#define _MEDIA_V4L2_HEVC_H
> +
> +#include <linux/minmax.h>
> +#include <media/v4l2-ctrls.h>
> +
> +/**
> + * v4l2_hevc_pps_num_tile_columns - number of HEVC tile columns, bounded
> + * @pps: the V4L2 HEVC PPS control
> + *
> + * Return the number of tile columns (num_tile_columns_minus1 + 1) clamped to
> + * the capacity of column_width_minus1[]. The control validation already
> + * rejects out-of-range counts; this keeps the consuming drivers bounded too.
> + */
> +static inline unsigned int
> +v4l2_hevc_pps_num_tile_columns(const struct v4l2_ctrl_hevc_pps *pps)
> +{
> + return min_t(unsigned int, pps->num_tile_columns_minus1 + 1,
> + ARRAY_SIZE(pps->column_width_minus1));
> +}
> +
> +/**
> + * v4l2_hevc_pps_num_tile_rows - number of HEVC tile rows, bounded
> + * @pps: the V4L2 HEVC PPS control
> + *
> + * Return the number of tile rows (num_tile_rows_minus1 + 1) clamped to the
> + * capacity of row_height_minus1[].
> + */
> +static inline unsigned int
> +v4l2_hevc_pps_num_tile_rows(const struct v4l2_ctrl_hevc_pps *pps)
> +{
> + return min_t(unsigned int, pps->num_tile_rows_minus1 + 1,
> + ARRAY_SIZE(pps->row_height_minus1));
> +}
> +
> +#endif /* _MEDIA_V4L2_HEVC_H */
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
To: Michael Bommarito <michael.bommarito@gmail.com>,
Hans Verkuil <hverkuil@kernel.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Nicolas Dufresne <nicolas.dufresne@collabora.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Detlev Casanova <detlev.casanova@collabora.com>,
Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
Yunfei Dong <yunfei.dong@mediatek.com>,
Jonas Karlman <jonas@kwiboo.se>, Heiko Stuebner <heiko@sntech.de>,
Kees Cook <kees@kernel.org>,
linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 3/9] media: hevc: add bounded tile-count helpers
Date: Thu, 3 Sep 2026 08:51:14 +0200 [thread overview]
Message-ID: <92f2fa35-aff2-4c14-b617-0884f90af44f@collabora.com> (raw)
In-Reply-To: <20260617021906.2746743-4-michael.bommarito@gmail.com>
Le 17/06/2026 à 04:19, Michael Bommarito a écrit :
> The stateless HEVC decoders compute the number of tile columns and rows
> from num_tile_columns_minus1 / num_tile_rows_minus1 and clamp it to the
> column_width_minus1[] / row_height_minus1[] capacity before using it as a
> loop bound. Add shared helpers in a new <media/v4l2-hevc.h> so the rkvdec
> and hantro drivers do not each open-code the min_t() clamp.
>
> Assisted-by: Claude:claude-opus-4-8
> Signed-off-by: Michael Bommarito <michael.bommarito@gmail.com>
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> ---
> include/media/v4l2-hevc.h | 41 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
> create mode 100644 include/media/v4l2-hevc.h
>
> diff --git a/include/media/v4l2-hevc.h b/include/media/v4l2-hevc.h
> new file mode 100644
> index 0000000000000..973c96be16be4
> --- /dev/null
> +++ b/include/media/v4l2-hevc.h
> @@ -0,0 +1,41 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * Helper functions for HEVC stateless codecs.
> + */
> +
> +#ifndef _MEDIA_V4L2_HEVC_H
> +#define _MEDIA_V4L2_HEVC_H
> +
> +#include <linux/minmax.h>
> +#include <media/v4l2-ctrls.h>
> +
> +/**
> + * v4l2_hevc_pps_num_tile_columns - number of HEVC tile columns, bounded
> + * @pps: the V4L2 HEVC PPS control
> + *
> + * Return the number of tile columns (num_tile_columns_minus1 + 1) clamped to
> + * the capacity of column_width_minus1[]. The control validation already
> + * rejects out-of-range counts; this keeps the consuming drivers bounded too.
> + */
> +static inline unsigned int
> +v4l2_hevc_pps_num_tile_columns(const struct v4l2_ctrl_hevc_pps *pps)
> +{
> + return min_t(unsigned int, pps->num_tile_columns_minus1 + 1,
> + ARRAY_SIZE(pps->column_width_minus1));
> +}
> +
> +/**
> + * v4l2_hevc_pps_num_tile_rows - number of HEVC tile rows, bounded
> + * @pps: the V4L2 HEVC PPS control
> + *
> + * Return the number of tile rows (num_tile_rows_minus1 + 1) clamped to the
> + * capacity of row_height_minus1[].
> + */
> +static inline unsigned int
> +v4l2_hevc_pps_num_tile_rows(const struct v4l2_ctrl_hevc_pps *pps)
> +{
> + return min_t(unsigned int, pps->num_tile_rows_minus1 + 1,
> + ARRAY_SIZE(pps->row_height_minus1));
> +}
> +
> +#endif /* _MEDIA_V4L2_HEVC_H */
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2026-09-03 6:51 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-17 2:18 [PATCH v3 0/9] media: bound stateless HEVC/AV1 tile counts Michael Bommarito
2026-06-17 2:18 ` Michael Bommarito
2026-06-17 2:18 ` [PATCH v3 1/9] media: v4l2-ctrls: validate HEVC " Michael Bommarito
2026-06-17 2:18 ` Michael Bommarito
2026-09-03 6:50 ` Benjamin Gaignard
2026-09-03 6:50 ` Benjamin Gaignard
2026-06-17 2:18 ` [PATCH v3 2/9] media: v4l2-ctrls: validate AV1 " Michael Bommarito
2026-06-17 2:18 ` Michael Bommarito
2026-09-03 6:50 ` Benjamin Gaignard
2026-09-03 6:50 ` Benjamin Gaignard
2026-06-17 2:19 ` [PATCH v3 3/9] media: hevc: add bounded tile-count helpers Michael Bommarito
2026-06-17 2:19 ` Michael Bommarito
2026-09-03 6:51 ` Benjamin Gaignard [this message]
2026-09-03 6:51 ` Benjamin Gaignard
2026-06-17 2:19 ` [PATCH v3 4/9] media: rkvdec: bound HEVC tile loops and PPS id to the array capacity Michael Bommarito
2026-06-17 2:19 ` Michael Bommarito
2026-06-17 2:19 ` [PATCH v3 5/9] media: verisilicon: hantro: bound G2 HEVC tile loop to the buffer capacity Michael Bommarito
2026-06-17 2:19 ` Michael Bommarito
2026-09-03 6:51 ` Benjamin Gaignard
2026-09-03 6:51 ` Benjamin Gaignard
2026-06-17 2:19 ` [PATCH v3 6/9] media: verisilicon: rockchip: guard VPU981 AV1 divisor and tile buffer Michael Bommarito
2026-06-17 2:19 ` Michael Bommarito
2026-09-03 6:52 ` Benjamin Gaignard
2026-09-03 6:52 ` Benjamin Gaignard
2026-06-17 2:19 ` [PATCH v3 7/9] media: verisilicon: rockchip: reject AV1 frames exceeding the tile capacity Michael Bommarito
2026-06-17 2:19 ` Michael Bommarito
2026-09-03 6:53 ` Benjamin Gaignard
2026-09-03 6:53 ` Benjamin Gaignard
2026-06-17 2:19 ` [PATCH v3 8/9] media: mediatek: vcodec: bound AV1 tile-start copy to the array capacity Michael Bommarito
2026-06-17 2:19 ` Michael Bommarito
2026-06-17 2:19 ` [PATCH v3 9/9] media: v4l2-ctrls: add KUnit tests for compound control tile validation Michael Bommarito
2026-06-17 2:19 ` Michael Bommarito
2026-07-16 1:03 ` [PATCH v3 0/9] media: bound stateless HEVC/AV1 tile counts Nicolas Dufresne
2026-07-16 1:03 ` Nicolas Dufresne
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=92f2fa35-aff2-4c14-b617-0884f90af44f@collabora.com \
--to=benjamin.gaignard@collabora.com \
--cc=detlev.casanova@collabora.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=heiko@sntech.de \
--cc=hverkuil@kernel.org \
--cc=jonas@kwiboo.se \
--cc=kees@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mchehab@kernel.org \
--cc=michael.bommarito@gmail.com \
--cc=nicolas.dufresne@collabora.com \
--cc=sakari.ailus@linux.intel.com \
--cc=yunfei.dong@mediatek.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.