From: Antoine Bouyer <antoine.bouyer@nxp.com>
To: Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
Hans Verkuil <hverkuil+cisco@kernel.org>
Cc: "Sakari Ailus" <sakari.ailus@linux.intel.com>,
"Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
"Keke Li" <keke.li@amlogic.com>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
"Daniel Scally" <dan.scally@ideasonboard.com>,
"Jai Luthra" <jai.luthra@ideasonboard.com>,
"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
"Ricardo Ribalda" <ribalda@chromium.org>,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/6] media: v4l2-isp: Add support for extensible statistics
Date: Tue, 9 Jun 2026 16:54:31 +0200 [thread overview]
Message-ID: <cb1b9fc5-1227-41b6-9ca4-6a99d3204019@nxp.com> (raw)
In-Reply-To: <aiA-jERhh0xgW2K3@zed>
On 6/3/26 4:53 PM, Jacopo Mondi wrote:
>
> Hi Hans
>
> On Wed, Jun 03, 2026 at 10:41:09AM +0200, Hans Verkuil wrote:
>> On 6/3/26 10:17, Jacopo Mondi wrote:
>>> Hi Antoine
>>>
>>> On Mon, Jun 01, 2026 at 03:29:54PM +0200, Antoine Bouyer wrote:
>>>> On 5/27/26 2:09 PM, Jacopo Mondi wrote:
>>>>>
>>>>>
>>>>> Hi Sakari,
>>>>>
>>>>> On Fri, May 15, 2026 at 03:11:18PM +0200, Jacopo Mondi wrote:
>>>>>> Hi Antoine, Keke
>>>>>>
>>>>>> On Wed, May 13, 2026 at 09:04:27AM +0800, Keke Li wrote:
>>>>>>>
>>>>>>> On 5/12/26 17:26, Antoine Bouyer wrote:
>>>>>>>> [ EXTERNAL EMAIL ]
>>>>>>>>
>>>>>>>> Le 05/05/2026 à 18:49, Antoine Bouyer a écrit :
>>>>>>>>> On 5/5/26 4:12 PM, Jacopo Mondi wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> This series breaks out from Antonie's
>>>>>>>>>> https://eur01.safelinks.protection.outlook.com/?
>>>>>>>>>> url=https%3A%2F%2Fpatchwork.linuxtv.org%2Fproject%2Flinux-
>>>>>>>>>> media%2Flist%2F%3Fseries%3D24043&data=05%7C02%7Cantoine.bouyer%40nxp.com%7Cd0e9f403856c4146996308deaab05cd1%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C639135871605732002%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=FXaz7QYQvS3s%2B4l9AFMrGgE7kmXlEil%2FKD6DibB0%2FJY%3D&reserved=0
>>>>>>>>>>
>>>>>>>>>> the extensible stats support and adds a few more patches on top to:
>>>>>>>>>>
>>>>>>>>>> - add support for per-block validation as suggested during the
>>>>>>>>>> review of
>>>>>>>>>> Ricardo's
>>>>>>>>>> https://eur01.safelinks.protection.outlook.com/?
>>>>>>>>>> url=https%3A%2F%2Fpatchwork.linuxtv.org%2Fproject%2Flinux-
>>>>>>>>>> media%2Fpatch%2F20260504-smatch-7-1-v3-6-
>>>>>>>>>> fda125c30058%40chromium.org%2F&data=05%7C02%7Cantoine.bouyer%40nxp.com%7Cd0e9f403856c4146996308deaab05cd1%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C639135871605751612%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=AiRH8MhIbXt3dr%2B2r3I6STE6TJAChylnH%2Fz3tLdS36k%3D&reserved=0
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> - add two helper functions to v4l2-isp to ease handling of extensible
>>>>>>>>>> statistics for drivers. An early user, based on a preliminary
>>>>>>>>>> version
>>>>>>>>>> of the patches is available here as a reference:
>>>>>>>>>> https://eur01.safelinks.protection.outlook.com/?
>>>>>>>>>> url=https%3A%2F%2Fpatchwork.linuxtv.org%2Fproject%2Flinux-
>>>>>>>>>> media%2Flist%2F%3Fseries%3D24703&data=05%7C02%7Cantoine.bouyer%40nxp.com%7Cd0e9f403856c4146996308deaab05cd1%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C639135871605763086%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=%2Fpsb7Z3lb8ingDILxc3LoEWKTojl5BGMbk6FiR%2FcO9I%3D&reserved=0
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Antonie: I took the liberty to fold in your patches changes to address
>>>>>>>>>> my comments on your v1. I pushed an un-squased version of the patches
>>>>>>>>>> here:
>>>>>>>>>> https://eur01.safelinks.protection.outlook.com/?
>>>>>>>>>> url=https%3A%2F%2Fgitlab.freedesktop.org%2Flinux-
>>>>>>>>>> media%2Fusers%2Fjmondi%2F-%2Ftree%2Fb4%2Fextensible-stats-
>>>>>>>>>> unsquashed&data=05%7C02%7Cantoine.bouyer%40nxp.com%7Cd0e9f403856c4146996308deaab05cd1%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C639135871605775020%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=iF2BE0GZ8HcVPmOJDhbmLsXQDOXV9JvqfMK6DRPPvrg%3D&reserved=0
>>>>>>>>>>
>>>>>>>>>> so you can easily get the diff from this and your version. Please feel
>>>>>>>>>> free to comment on these as you're the original author.
>>>>>>>>>
>>>>>>>>> Hi Jacopo
>>>>>>>>>
>>>>>>>>> Thanks for the rework and the links. I'm fine with your [SQUASH]
>>>>>>>>> commits.
>>>>>>>>>
>>>>>>>>> If there are no other comments, I assume I can reuse the common patches
>>>>>>>>> in my v2 then, and also apply the new helpers to neoisp driver changes.
>>>>>>>>> They look very useful (especially to prevent out-of-bounds crashes I
>>>>>>>>> observed when data_size was not set before filling stats :( ). I'll
>>>>>>>>> check in your user example.
>>>>>>>>>
>>>>>>>>> BR
>>>>>>>>> Antoine
>>>>>>>>
>>>>>>>> Hi Jacopo
>>>>>>>>
>>>>>>>> Do you think it would make sense to create a new generic V4L2_META_FMT
>>>>>>>> too ? which can be used by all user of v4l2-isp extensible params a/o
>>>>>>>> stats. To avoid each driver creating its own meta fmt with same purpose.
>>>>>>>>
>>>>>>>> Or do you think it could have side effects ?
>>>>>>>>
>>>>>>>> BR
>>>>>>>> Antoine
>>>>>>>>
>>>>>>>>>
>>>>>>> I think this proposal is excellent.
>>>>>>> 🙂
>>>>>>
>>>>>> To me, platform-specific formats mostly serve for documenting the ISP blocks.
>>>>>> In example
>>>>>> https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/metafmt-rkisp1.html
>>>>>>
>>>>>> There might be ways to handle it without defining a dedicated format
>>>>>> indeed.
>>>>>>
>>>>>> Sakari Laurent and Hans are in cc, what do they think ?
>>>>>>
>>>>>
>>>>> We briefly discussed it on irc and a few days ago again.
>>>>>
>>>>> Am I correct you think this is a good idea ?
>>>>>
>>>>> Antonie, do you plan to include the two new generic formts in your new
>>>>> version ? Should we have a single format for STATS and PARAMS too ? I
>>>>> see merit in both ways, to be hones two formats sound better to me as
>>>>> they apply to two different queue types (output for params and capture
>>>>> for stats)
>>>>
>>>> Hi Jacopo
>>>>
>>>> I would personally prefer using a single format for both params and stats.
>>>>
>>>> In my view, the format describes how the meta buffer is structured (header,
>>>> size, version, flags, etc.), and it should not depend on the queue type.
>>>> Since both stats and params will use the exact same structure, then it makes
>>>> sense to me to share a single format. Similar to how a pixel format applies
>>>> to both source and sink queues.
>>>
>>> You certainly have a point here!
>>
>> Even though how the content is structured in the buffer is the same for both
>> parameters and statistics, the actual content is quite different. So the format
>> description in v4l2_fmtdesc is also different. When you list available formats
>> for a video device it is nice if you can see what the format actually contains.
>>
>> A V4L2 format has always specified both the structure of the data and what the
>> content is (with the odd exception like V4L2_META_FMT_GENERIC_8), and I think
>> that should be done here as well.
>>
>> Interpreting the content of the buffers is quite different for parameters and
>> statistics, so just because the high-level structure is the same does IMHO not
>> make this a good enough reason to use a single pixelformat. So I recommend
>> sticking with two formats.
>>
>> Unless I'm missing something?
>
> To summarize the day-long discussions on irc (quoting here your
> messages)
>
> -------------------------------------------------------------------------------
> 1) I think we should have separate pixelformats for parameters and
> statistics (and whatever else we will need in the future). I think
> that makes sense. That way you can also give a sane pixelformat
> description.
>
> 2) If we go for a generic pixelformat rather than a per-platform one,
> then it has to be documented how the application discovers which
> driver it is. It is one of those things that I don't think is
> explicitly stated anywhere. Taking it from the media controller makes
> sense, but it needs to be documented. It also means that the media
> device driver name is part of the ABI. Changing it would break lots
> of things. That too must be documented.
> -------------------------------------------------------------------------------
>
> This seems to suggest we're fine with V4L2_META_FMT_ISP_PARAMS and
> one V4L2_META_FTM_ISP_STATS formats, provided we clearly tell
> userspace how to identify which platforms it is running on.
Hi Jacopo, Hans
Thanks for your inputs.
Then I will prepare a v3 of my series with these 2 meta formats, as
separated patches. Actually, I feel like main update is about
Documentation. So I created dedicated doc for these formats, but
MAINTAINER is impacted too. Please feel free to review/comment, or
cherry pick the patches in your own series with extended stats if you
prefer. I will always rebase anyway.
Best regards
Antoine
>
> I suggested that libcamera matches on the media device driver's name
> and from there we know on which platform we're on.
>
> However you made a good point on the fact we discussed about allowing
> multiple drivers to register in a single media graphs to support
> complex topologies. In this case we should clarify how this would
> work. If I'm not mistaken Ricardo had a similar point when talking
> about media device names ?
>
>>
>> Regards,
>>
>> Hans
>>
>>>
>>>>
>>>> That said, if there is a consensus in favor of defining 2 separate formats,
>>>> I am fine with following that direction.
>>>
>>> Let's see if we can get feedback from Sakari/Hans/Laurent.
>>> I'll re-ping them!
>>>
>>>>
>>>> For now, I don't plan to integrate the new generic format in my patch
>>>> series. I would prefer to wait for converging on a solution (1 or 2 formats)
>>>> first. Then, depending on timeline, yes I can integrate it.
>>>
>>> If you want to re-send a new version out quickly feel free to use any
>>> format. I hope we can sort this out quickly so you can rebase on
>>> easily.
>>>
>>> Thanks
>>> j
>>>
>>>>
>>>> BR
>>>> Antoine
>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
>>>>>>>>>> ---
>>>>>>>>>> Antoine Bouyer (2):
>>>>>>>>>> media: uapi: v4l2-isp: Add extensible statistics
>>>>>>>>>> media: Documentation: uapi: Update V4L2 ISP for extensible stats
>>>>>>>>>>
>>>>>>>>>> Jacopo Mondi (4):
>>>>>>>>>> media: v4l2-isp: Rename v4l2_isp_params_buffer_size
>>>>>>>>>> media: v4l2-isp: Add per-block validation callback
>>>>>>>>>> media: amlogic-c3: Implement per-block validation
>>>>>>>>>> media: v4l2-isp: Add helpers for stats buffer
>>>>>>>>>>
>>>>>>>>>> Documentation/userspace-api/media/v4l/v4l2-isp.rst | 45 ++++++--
>>>>>>>>>> .../media/platform/amlogic/c3/isp/c3-isp-params.c | 42 ++++++-
>>>>>>>>>> .../media/platform/arm/mali-c55/mali-c55-params.c | 12 +-
>>>>>>>>>> drivers/media/v4l2-core/v4l2-isp.c | 56 +++++++++
>>>>>>>>>> include/media/v4l2-isp.h | 94 +++++++++++
>>>>>>>>>> ++---
>>>>>>>>>> include/uapi/linux/media/v4l2-isp.h | 125 +++++++++++
>>>>>>>>>> ++--------
>>>>>>>>>> 6 files changed, 294 insertions(+), 80 deletions(-)
>>>>>>>>>> ---
>>>>>>>>>> base-commit: d9c8c4adf23d17549c0ec9c85b99d85a0ee6cf18
>>>>>>>>>> change-id: 20260504-extensible-stats-f2d6befcc1ce
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>> --
>>>>>>>>>> Jacopo Mondi <jacopo.mondi@ideasonboard.com>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>>>
>>
next prev parent reply other threads:[~2026-06-09 14:54 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-05 14:12 Jacopo Mondi
2026-05-05 14:12 ` [PATCH 1/6] media: uapi: v4l2-isp: Add " Jacopo Mondi
2026-05-15 18:17 ` Niklas Söderlund
2026-05-05 14:12 ` [PATCH 2/6] media: Documentation: uapi: Update V4L2 ISP for extensible stats Jacopo Mondi
2026-05-15 18:19 ` Niklas Söderlund
2026-05-05 14:12 ` [PATCH 3/6] media: v4l2-isp: Rename v4l2_isp_params_buffer_size Jacopo Mondi
2026-05-06 8:11 ` Antoine Bouyer
2026-05-06 8:35 ` Jacopo Mondi
2026-05-06 8:57 ` Antoine Bouyer
2026-05-15 18:21 ` Niklas Söderlund
2026-05-05 14:12 ` [PATCH 4/6] media: v4l2-isp: Add per-block validation callback Jacopo Mondi
2026-05-15 18:22 ` Niklas Söderlund
2026-05-05 14:12 ` [PATCH 5/6] media: amlogic-c3: Implement per-block validation Jacopo Mondi
2026-05-05 14:12 ` [PATCH 6/6] media: v4l2-isp: Add helpers for stats buffer Jacopo Mondi
2026-05-15 18:29 ` Niklas Söderlund
2026-06-03 8:13 ` Jacopo Mondi
2026-05-05 16:49 ` [PATCH 0/6] media: v4l2-isp: Add support for extensible statistics Antoine Bouyer
2026-05-12 9:26 ` Antoine Bouyer
2026-05-13 1:04 ` Keke Li
2026-05-15 13:11 ` Jacopo Mondi
2026-05-27 12:09 ` Jacopo Mondi
2026-06-01 13:29 ` Antoine Bouyer
2026-06-03 8:17 ` Jacopo Mondi
2026-06-03 8:41 ` Hans Verkuil
2026-06-03 14:53 ` Jacopo Mondi
2026-06-09 14:54 ` Antoine Bouyer [this message]
2026-06-10 9:43 ` Jacopo Mondi
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=cb1b9fc5-1227-41b6-9ca4-6a99d3204019@nxp.com \
--to=antoine.bouyer@nxp.com \
--cc=dan.scally@ideasonboard.com \
--cc=hverkuil+cisco@kernel.org \
--cc=jacopo.mondi@ideasonboard.com \
--cc=jai.luthra@ideasonboard.com \
--cc=keke.li@amlogic.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=niklas.soderlund@ragnatech.se \
--cc=ribalda@chromium.org \
--cc=sakari.ailus@linux.intel.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
all inboxes | Powered by JetHome®