[{"id":35882,"web_url":"https://patchwork.libcamera.org/comment/35882/","msgid":"<175819349628.2127323.12103349788182920594@neptunite.rasen.tech>","date":"2025-09-18T11:04:56","subject":"Re: [RFC PATCH v2 15/22] guides: application: Document\n\tCamera::metadataAvailable","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Quoting Barnabás Pőcze (2025-07-21 19:46:15)\n> From: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> \n> Document the Camera::metadataAvailable signal in the application\n> developer guide as an opt-in feature to receive early metadata\n> notifications.\n> \n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> ---\n> Original: https://patchwork.libcamera.org/patch/22228/\n> ---\n>  Documentation/guides/application-developer.rst | 8 ++++++++\n>  1 file changed, 8 insertions(+)\n> \n> diff --git a/Documentation/guides/application-developer.rst b/Documentation/guides/application-developer.rst\n> index 6501345a9..2d7c29010 100644\n> --- a/Documentation/guides/application-developer.rst\n> +++ b/Documentation/guides/application-developer.rst\n> @@ -357,6 +357,14 @@ Signals and Slots`_) to connect events with callbacks to handle them.\n>  The ``Camera`` device emits two signals that applications can connect to in\n>  order to execute callbacks on frame completion events.\n\nI think we should add to this \", and one signal that reports partial metadata\",\nor something along those lines. The two signals that this refers to are\nbufferCompleted and requestCompleted, and even thogh it's optional we are now\nadding a third.\n\n>  \n> +The ``Camera::metadataAvailable`` signal notifies applications of the\n> +availability of metadata results before a request completes. Receiving\n> +notification about metadata availability allows application to fast-track\n> +handling of metadata results before all the image buffers in a request are\n> +ready. The full list of metadata results associated with a Request is anyway\n\ns/anyway/also/ I think is more appropriate, since \"anyway\" makes it feel like\nwe're trying to defend the existence of the metadataAvailable signal.\n\n\nThanks,\n\nPaul\n\n> +available at request complete time, and receiving notifications for early\n> +metadata availability is an optional feature for applications.\n> +\n>  The ``Camera::bufferCompleted`` signal notifies applications that a buffer with\n>  image data is available. Receiving notifications about the single buffer\n>  completion event allows applications to implement partial request completion\n> -- \n> 2.50.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id F0266C328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 18 Sep 2025 11:05:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AAE0D6936A;\n\tThu, 18 Sep 2025 13:05:04 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9AE2862C3B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Sep 2025 13:05:02 +0200 (CEST)","from neptunite.rasen.tech (unknown\n\t[IPv6:2404:7a81:160:2100:7cf2:5f58:dd2a:9ec1])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 4B007C6E;\n\tThu, 18 Sep 2025 13:03:42 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"G4ozkNUC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1758193422;\n\tbh=uWqz6QQnA5gr7PnnDXqdsftQMAzLUDX8w7j1BpiVsWo=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=G4ozkNUCKFLR3tHvESyw6bYBAyB+pLq2Z8qgkl/k48c13afQ5phaHKIAHTB7Jjmut\n\tYRkwUzPB5jX8KA3sx+9XtTFgfZVkgHRZdtcgCSbePVK1dZpDeNmhcPD2RhOpLDFWcC\n\tYkaIg63sUb+AuPfO711I1XF3vmrPFHVdmd/VZwNg=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250721104622.1550908-16-barnabas.pocze@ideasonboard.com>","References":"<20250721104622.1550908-1-barnabas.pocze@ideasonboard.com>\n\t<20250721104622.1550908-16-barnabas.pocze@ideasonboard.com>","Subject":"Re: [RFC PATCH v2 15/22] guides: application: Document\n\tCamera::metadataAvailable","From":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 18 Sep 2025 20:04:56 +0900","Message-ID":"<175819349628.2127323.12103349788182920594@neptunite.rasen.tech>","User-Agent":"alot/0.0.0","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":35949,"web_url":"https://patchwork.libcamera.org/comment/35949/","msgid":"<135fa6f9-46ac-44de-bca6-d69e55b19a67@ideasonboard.com>","date":"2025-09-22T11:53:25","subject":"Re: [RFC PATCH v2 15/22] guides: application: Document\n\tCamera::metadataAvailable","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2025. 09. 18. 13:04 keltezéssel, Paul Elder írta:\n> Quoting Barnabás Pőcze (2025-07-21 19:46:15)\n>> From: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n>>\n>> Document the Camera::metadataAvailable signal in the application\n>> developer guide as an opt-in feature to receive early metadata\n>> notifications.\n>>\n>> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>> ---\n>> Original: https://patchwork.libcamera.org/patch/22228/\n>> ---\n>>   Documentation/guides/application-developer.rst | 8 ++++++++\n>>   1 file changed, 8 insertions(+)\n>>\n>> diff --git a/Documentation/guides/application-developer.rst b/Documentation/guides/application-developer.rst\n>> index 6501345a9..2d7c29010 100644\n>> --- a/Documentation/guides/application-developer.rst\n>> +++ b/Documentation/guides/application-developer.rst\n>> @@ -357,6 +357,14 @@ Signals and Slots`_) to connect events with callbacks to handle them.\n>>   The ``Camera`` device emits two signals that applications can connect to in\n>>   order to execute callbacks on frame completion events.\n> \n> I think we should add to this \", and one signal that reports partial metadata\",\n> or something along those lines. The two signals that this refers to are\n> bufferCompleted and requestCompleted, and even thogh it's optional we are now\n> adding a third.\n\nSince the signals are described directly under that sentence, maybe something\nlike this:\n\n   The ``Camera`` device emits three types of signals (while it is running and\n   processing requests), as described below.\n\n\nthoughts?\n\n\nRegards,\nBarnabás Pőcze\n\n> \n>>   \n>> +The ``Camera::metadataAvailable`` signal notifies applications of the\n>> +availability of metadata results before a request completes. Receiving\n>> +notification about metadata availability allows application to fast-track\n>> +handling of metadata results before all the image buffers in a request are\n>> +ready. The full list of metadata results associated with a Request is anyway\n> \n> s/anyway/also/ I think is more appropriate, since \"anyway\" makes it feel like\n> we're trying to defend the existence of the metadataAvailable signal.\n> \n> \n> Thanks,\n> \n> Paul\n> \n>> +available at request complete time, and receiving notifications for early\n>> +metadata availability is an optional feature for applications.\n>> +\n>>   The ``Camera::bufferCompleted`` signal notifies applications that a buffer with\n>>   image data is available. Receiving notifications about the single buffer\n>>   completion event allows applications to implement partial request completion\n>> -- \n>> 2.50.1\n>>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 09EBFBDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 22 Sep 2025 11:53:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E21826B5F3;\n\tMon, 22 Sep 2025 13:53:49 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 45C7B62C35\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 22 Sep 2025 13:53:48 +0200 (CEST)","from [192.168.33.12] (185.221.142.115.nat.pool.zt.hu\n\t[185.221.142.115])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 93DF622E;\n\tMon, 22 Sep 2025 13:52:25 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"o3IZ5iuY\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1758541945;\n\tbh=s3A2X90lSYTBxqRjSVfc1DBZqZSjuwYLWhhDpfaiZ5g=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=o3IZ5iuYwmRKUXsB2jWXJuNI45yvHM5SzhVoE+UUS2n7XcZ+QnsAOVb5KxwYZhknP\n\tX+N/Ny7MdMsFpAh9JQ2XNk7bxlmsENtqzt9yKczGaJ1IYKIg7y3iPeV1/c/z2/7Bf+\n\tYZuzgRPpfVr5w4xPbGoObVN6HzCiDrV1hbhzeiNA=","Message-ID":"<135fa6f9-46ac-44de-bca6-d69e55b19a67@ideasonboard.com>","Date":"Mon, 22 Sep 2025 13:53:25 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [RFC PATCH v2 15/22] guides: application: Document\n\tCamera::metadataAvailable","To":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","References":"<20250721104622.1550908-1-barnabas.pocze@ideasonboard.com>\n\t<20250721104622.1550908-16-barnabas.pocze@ideasonboard.com>\n\t<175819349628.2127323.12103349788182920594@neptunite.rasen.tech>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<175819349628.2127323.12103349788182920594@neptunite.rasen.tech>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]