[{"id":19225,"web_url":"https://patchwork.libcamera.org/comment/19225/","msgid":"<YS6S6O67yud/jtC1@pendragon.ideasonboard.com>","date":"2021-08-31T20:36:56","subject":"Re: [libcamera-devel] [PATCH v3 2/3] android: camera_stream:\n\tSupport PostProcessorYuv in CameraStream","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Hiro,\n\nThank you for the patch.\n\nOn Tue, Aug 31, 2021 at 06:34:38PM +0900, Hirokazu Honda wrote:\n> CameraStream creates PostProcessorYuv if the destination format\n> is NV12.\n> \n> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/android/camera_stream.cpp | 14 +++++++++++---\n>  1 file changed, 11 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> index fb10bf06..49a2e336 100644\n> --- a/src/android/camera_stream.cpp\n> +++ b/src/android/camera_stream.cpp\n> @@ -9,13 +9,15 @@\n>  \n>  #include <sys/mman.h>\n>  \n> +#include <libcamera/formats.h>\n> +\n> +#include \"jpeg/post_processor_jpeg.h\"\n> +#include \"yuv/post_processor_yuv.h\"\n> +\n>  #include \"camera_buffer.h\"\n>  #include \"camera_capabilities.h\"\n>  #include \"camera_device.h\"\n>  #include \"camera_metadata.h\"\n> -#include \"jpeg/post_processor_jpeg.h\"\n> -\n> -#include <libcamera/formats.h>\n>  \n>  using namespace libcamera;\n>  \n> @@ -68,6 +70,12 @@ int CameraStream::configure()\n>  \t\tStreamConfiguration output = configuration();\n>  \t\toutput.pixelFormat = outFormat;\n>  \t\tswitch (outFormat) {\n> +\t\tcase formats::NV12:\n> +\t\t\tpostProcessor_ = std::make_unique<PostProcessorYuv>();\n> +\t\t\toutput.size.width = camera3Stream_->width;\n> +\t\t\toutput.size.height = camera3Stream_->height;\n\nShould we set this unconditionally before the switch() ? It applies to\nMJPEG too, and even if it's not used today, I think it's useful to keep\nthe output.size always valid for consistency.\n\nAs for 1/3, if you're fine with this change, I can make it when pushing.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> +\t\t\tbreak;\n> +\n>  \t\tcase formats::MJPEG:\n>  \t\t\tpostProcessor_ = std::make_unique<PostProcessorJpeg>(cameraDevice_);\n>  \t\t\tbreak;","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 8ED90BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 31 Aug 2021 20:37:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DBD7B6916A;\n\tTue, 31 Aug 2021 22:37:12 +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 33E5868890\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 31 Aug 2021 22:37:12 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9F89A24F;\n\tTue, 31 Aug 2021 22:37:11 +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=\"Ov3pw7gv\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630442231;\n\tbh=bohZVcC27zmcGZWghMhwFpzSD3PJK7W1lrXWaF1bIgU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Ov3pw7gv+Anqjdoe+R+mL8PX1Ap3uRAG3JKdSOegA8AatEKEzabCT3VgTcaOyRQXz\n\thQjfGwQzAD4xqZxpLUYKgfGjg18QHskHkKHTxrKWQduJiS3Fsj/F5lUr3B/K/7Pe9G\n\tqcajDa1sIkUakV3T1cQpALQxcIzIZPICCsKaDJng=","Date":"Tue, 31 Aug 2021 23:36:56 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<YS6S6O67yud/jtC1@pendragon.ideasonboard.com>","References":"<20210831093439.853586-1-hiroh@chromium.org>\n\t<20210831093439.853586-3-hiroh@chromium.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210831093439.853586-3-hiroh@chromium.org>","Subject":"Re: [libcamera-devel] [PATCH v3 2/3] android: camera_stream:\n\tSupport PostProcessorYuv in CameraStream","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19229,"web_url":"https://patchwork.libcamera.org/comment/19229/","msgid":"<CAO5uPHOmxO7spFuJdkUdwqQ_EKC5OP7TVbf1ZgVcz_mndgdgxw@mail.gmail.com>","date":"2021-08-31T20:46:50","subject":"Re: [libcamera-devel] [PATCH v3 2/3] android: camera_stream:\n\tSupport PostProcessorYuv in CameraStream","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Laurent,\n\nOn Wed, Sep 1, 2021 at 5:37 AM Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi Hiro,\n>\n> Thank you for the patch.\n>\n> On Tue, Aug 31, 2021 at 06:34:38PM +0900, Hirokazu Honda wrote:\n> > CameraStream creates PostProcessorYuv if the destination format\n> > is NV12.\n> >\n> > Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/android/camera_stream.cpp | 14 +++++++++++---\n> >  1 file changed, 11 insertions(+), 3 deletions(-)\n> >\n> > diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> > index fb10bf06..49a2e336 100644\n> > --- a/src/android/camera_stream.cpp\n> > +++ b/src/android/camera_stream.cpp\n> > @@ -9,13 +9,15 @@\n> >\n> >  #include <sys/mman.h>\n> >\n> > +#include <libcamera/formats.h>\n> > +\n> > +#include \"jpeg/post_processor_jpeg.h\"\n> > +#include \"yuv/post_processor_yuv.h\"\n> > +\n> >  #include \"camera_buffer.h\"\n> >  #include \"camera_capabilities.h\"\n> >  #include \"camera_device.h\"\n> >  #include \"camera_metadata.h\"\n> > -#include \"jpeg/post_processor_jpeg.h\"\n> > -\n> > -#include <libcamera/formats.h>\n> >\n> >  using namespace libcamera;\n> >\n> > @@ -68,6 +70,12 @@ int CameraStream::configure()\n> >               StreamConfiguration output = configuration();\n> >               output.pixelFormat = outFormat;\n> >               switch (outFormat) {\n> > +             case formats::NV12:\n> > +                     postProcessor_ = std::make_unique<PostProcessorYuv>();\n> > +                     output.size.width = camera3Stream_->width;\n> > +                     output.size.height = camera3Stream_->height;\n>\n> Should we set this unconditionally before the switch() ? It applies to\n> MJPEG too, and even if it's not used today, I think it's useful to keep\n> the output.size always valid for consistency.\n>\n> As for 1/3, if you're fine with this change, I can make it when pushing.\n>\n\nThat makes sense. It should work although I haven't tested it.\n\nThanks,\n-Hiro\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>\n> > +                     break;\n> > +\n> >               case formats::MJPEG:\n> >                       postProcessor_ = std::make_unique<PostProcessorJpeg>(cameraDevice_);\n> >                       break;\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 101B4BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 31 Aug 2021 20:47:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C0C196916A;\n\tTue, 31 Aug 2021 22:47:03 +0200 (CEST)","from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com\n\t[IPv6:2a00:1450:4864:20::52b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8315568890\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 31 Aug 2021 22:47:01 +0200 (CEST)","by mail-ed1-x52b.google.com with SMTP id g21so502025edw.4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 31 Aug 2021 13:47:01 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"eobD+r7R\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=gAta+bGIgyzmlDzgS/Zgt4bsoZOIzF+h2T98pU/o/tY=;\n\tb=eobD+r7R4xHwhsqSitRajGg29ds2ynRTPFgY74shEy7OpgZmSbw+uIvuAA8X52SiaR\n\tbonfxwBkxKtbAGwPi0rXPuLWgxD5/ZciYmh7+HNNyPC7OPYRiTulR2e0lFlo7yey3cea\n\t0VlDOzITKWutVdhPVazWl7PKhVtWkcSlfFOiI=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=gAta+bGIgyzmlDzgS/Zgt4bsoZOIzF+h2T98pU/o/tY=;\n\tb=DzwjX8qAyDODCoXsyyMH07yfTdeQWIH3Fp8QSIL1yQVCHdvhpBlJVbuYW8YeUD48xu\n\t5DUL5HvHA5L9Elb1TeS3ZjnlfqBu3mPFpHMWmKjy9rwWgjkWs6byVEqoHPedV1d7LfR0\n\t2NRP3lLlbDxtyG9VT5BB8nfDH4hbF0r3stYRKmBSeBPfmMt0tXG7dbg3lwLLYn9Nuyv1\n\tMvyNTRJ3x7rSHCdJknuMf1rKmAI8xYGRYEjJeDcIMmtviPkXEQGJBMbajS3vv2M70FyP\n\tlGRgjJBueNI5oK2gny0A5HjegMRVn5GiJ4/gT1KTbKBYAlWWkuGBNK7TojHDsHMESDNh\n\tWs0A==","X-Gm-Message-State":"AOAM531YvjSXLUbd1IGToRRXv22haidhReiLQ0N0CugU2bXOu4GlBwIJ\n\tmgHrWZTXa09F0l++cFZF32Cnlwjmsq5N5WnD+V3660sZDcg=","X-Google-Smtp-Source":"ABdhPJytjGpKf4yCeBsZN2cacqRZ528XsTMXix3IL81T8AVoUJ+enTtlJdAzh9gSNGSrKisOjkVc3jaSTVfCv4FvXS8=","X-Received":"by 2002:a50:998c:: with SMTP id\n\tm12mr27028230edb.327.1630442821203; \n\tTue, 31 Aug 2021 13:47:01 -0700 (PDT)","MIME-Version":"1.0","References":"<20210831093439.853586-1-hiroh@chromium.org>\n\t<20210831093439.853586-3-hiroh@chromium.org>\n\t<YS6S6O67yud/jtC1@pendragon.ideasonboard.com>","In-Reply-To":"<YS6S6O67yud/jtC1@pendragon.ideasonboard.com>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Wed, 1 Sep 2021 05:46:50 +0900","Message-ID":"<CAO5uPHOmxO7spFuJdkUdwqQ_EKC5OP7TVbf1ZgVcz_mndgdgxw@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v3 2/3] android: camera_stream:\n\tSupport PostProcessorYuv in CameraStream","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19314,"web_url":"https://patchwork.libcamera.org/comment/19314/","msgid":"<202e7ab9-8b6e-f963-5f83-d1de39a36c12@ideasonboard.com>","date":"2021-09-03T06:47:56","subject":"Re: [libcamera-devel] [PATCH v3 2/3] android: camera_stream:\n\tSupport PostProcessorYuv in CameraStream","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi,\n\nOn 9/1/21 2:06 AM, Laurent Pinchart wrote:\n> Hi Hiro,\n>\n> Thank you for the patch.\n>\n> On Tue, Aug 31, 2021 at 06:34:38PM +0900, Hirokazu Honda wrote:\n>> CameraStream creates PostProcessorYuv if the destination format\n>> is NV12.\n>>\n>> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n>> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n>> ---\n>>   src/android/camera_stream.cpp | 14 +++++++++++---\n>>   1 file changed, 11 insertions(+), 3 deletions(-)\n>>\n>> diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n>> index fb10bf06..49a2e336 100644\n>> --- a/src/android/camera_stream.cpp\n>> +++ b/src/android/camera_stream.cpp\n>> @@ -9,13 +9,15 @@\n>>   \n>>   #include <sys/mman.h>\n>>   \n>> +#include <libcamera/formats.h>\n>> +\n>> +#include \"jpeg/post_processor_jpeg.h\"\n>> +#include \"yuv/post_processor_yuv.h\"\n>> +\n>>   #include \"camera_buffer.h\"\n>>   #include \"camera_capabilities.h\"\n>>   #include \"camera_device.h\"\n>>   #include \"camera_metadata.h\"\n>> -#include \"jpeg/post_processor_jpeg.h\"\n>> -\n>> -#include <libcamera/formats.h>\n>>   \n>>   using namespace libcamera;\n>>   \n>> @@ -68,6 +70,12 @@ int CameraStream::configure()\n>>   \t\tStreamConfiguration output = configuration();\n>>   \t\toutput.pixelFormat = outFormat;\n>>   \t\tswitch (outFormat) {\n>> +\t\tcase formats::NV12:\n>> +\t\t\tpostProcessor_ = std::make_unique<PostProcessorYuv>();\n>> +\t\t\toutput.size.width = camera3Stream_->width;\n>> +\t\t\toutput.size.height = camera3Stream_->height;\n> Should we set this unconditionally before the switch() ? It applies to\n> MJPEG too, and even if it's not used today, I think it's useful to keep\n> the output.size always valid for consistency.\n\n\nthis is my thought process as well. so +1\n\n>\n> As for 1/3, if you're fine with this change, I can make it when pushing.\n>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n\n>\n>> +\t\t\tbreak;\n>> +\n>>   \t\tcase formats::MJPEG:\n>>   \t\t\tpostProcessor_ = std::make_unique<PostProcessorJpeg>(cameraDevice_);\n>>   \t\t\tbreak;","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 26B89BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  3 Sep 2021 06:48:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 88CCD6916B;\n\tFri,  3 Sep 2021 08:48:02 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F2ECC69166\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  3 Sep 2021 08:48:00 +0200 (CEST)","from [192.168.1.104] (unknown [103.251.226.107])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C7201BBE;\n\tFri,  3 Sep 2021 08:47:59 +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=\"KUw2U1Uk\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630651680;\n\tbh=BmxNrcsTo4h90n1e3+NzfwAWWdhfFkilcWLIY1Cc5BQ=;\n\th=Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=KUw2U1UkaHPyWtACf2YZrqFmhfO1EVO/WAlVGdCadS8qLZJbYljEr9odFajqMhQxs\n\ti85cyLzOQDT9H0xGYsKzmec/OeC2tOR6ch/TVjTz3L7fATIXN2+T9u1pO5GJSV8s6j\n\tmoBe4lgb3dXqRaVcBzTw0ILV83+EqQpNeuoin4jQ=","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tHirokazu Honda <hiroh@chromium.org>","References":"<20210831093439.853586-1-hiroh@chromium.org>\n\t<20210831093439.853586-3-hiroh@chromium.org>\n\t<YS6S6O67yud/jtC1@pendragon.ideasonboard.com>","From":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<202e7ab9-8b6e-f963-5f83-d1de39a36c12@ideasonboard.com>","Date":"Fri, 3 Sep 2021 12:17:56 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.10.2","MIME-Version":"1.0","In-Reply-To":"<YS6S6O67yud/jtC1@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Transfer-Encoding":"7bit","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v3 2/3] android: camera_stream:\n\tSupport PostProcessorYuv in CameraStream","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]