[{"id":24180,"web_url":"https://patchwork.libcamera.org/comment/24180/","msgid":"<f2327127-6636-7498-a4e7-9fb19b038726@ideasonboard.com>","date":"2022-07-27T08:54:53","subject":"Re: [libcamera-devel] [PATCH v3 5/9] ipu3: Update\n\tIPAIPU3Interface::fillParamsBuffer with captureBufferId","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Harvey,\n\nOn 6/29/22 16:00, Harvey Yang via libcamera-devel wrote:\n> From: Harvey Yang <chenghaoyang@chromium.org>\n>\n> This patch updates the ipa interface |IPAIPU3Interface::fillParamsBuffer|\n> with additional |captureBufferId| to fill the param buffer for the\n> StillCapture stream as well.\n\n\nWhenever the IPAIPU3 Interface is updated,\n\n     https://git.libcamera.org/libcamera/ipu3-ipa.git/tree/ (closed \nsource IPA IPU3 wrapper)\n\nwill need corresponding updates as well (Just mentioning for the records)\n\n>\n> Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n> ---\n>   include/libcamera/ipa/ipu3.mojom     |  2 +-\n>   src/ipa/ipu3/ipu3.cpp                | 21 ++++++++++++++++++---\n>   src/libcamera/pipeline/ipu3/ipu3.cpp |  3 ++-\n>   3 files changed, 21 insertions(+), 5 deletions(-)\n>\n> diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom\n> index d1b1c6b8..d94c344e 100644\n> --- a/include/libcamera/ipa/ipu3.mojom\n> +++ b/include/libcamera/ipa/ipu3.mojom\n> @@ -31,7 +31,7 @@ interface IPAIPU3Interface {\n>   \tunmapBuffers(array<uint32> ids);\n>   \n>   \t[async] queueRequest(uint32 frame, libcamera.ControlList controls);\n> -\t[async] fillParamsBuffer(uint32 frame, uint32 bufferId);\n> +\t[async] fillParamsBuffer(uint32 frame, uint32 bufferId, uint32 captureBufferId);\n>   \t[async] processStatsBuffer(uint32 frame, int64 frameTimestamp,\n>   \t\t\t\t   uint32 bufferId, libcamera.ControlList sensorControls);\n>   };\n> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\n> index dd6cfd79..149a3958 100644\n> --- a/src/ipa/ipu3/ipu3.cpp\n> +++ b/src/ipa/ipu3/ipu3.cpp\n> @@ -146,7 +146,8 @@ public:\n>   \tvoid unmapBuffers(const std::vector<unsigned int> &ids) override;\n>   \n>   \tvoid queueRequest(const uint32_t frame, const ControlList &controls) override;\n> -\tvoid fillParamsBuffer(const uint32_t frame, const uint32_t bufferId) override;\n> +\tvoid fillParamsBuffer(const uint32_t frame, const uint32_t bufferId,\n> +\t\t\t      const uint32_t captureBufferId) override;\n>   \tvoid processStatsBuffer(const uint32_t frame, const int64_t frameTimestamp,\n>   \t\t\t\tconst uint32_t bufferId,\n>   \t\t\t\tconst ControlList &sensorControls) override;\n> @@ -508,12 +509,14 @@ void IPAIPU3::unmapBuffers(const std::vector<unsigned int> &ids)\n>   /**\n>    * \\brief Fill and return a buffer with ISP processing parameters for a frame\n>    * \\param[in] frame The frame number\n> - * \\param[in] bufferId ID of the parameter buffer to fill\n> + * \\param[in] bufferId ID of the video parameter buffer to fill\n> + * \\param[in] captureBufferId ID of the capture parameter buffer to fill\n>    *\n>    * Algorithms are expected to fill the IPU3 parameter buffer for the next\n>    * frame given their most recent processing of the ImgU statistics.\n>    */\n> -void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)\n> +void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId,\n\n\nSince now there are couple of parameter buffers to fill, this can be \nrenamed to depict plural buffers:\n\n     IPAIPU3::fillParamsBuffers(const uint32_t frame, const uint32_t \nbufferId,\n\n> +\t\t\t       const uint32_t captureBufferId)\n>   {\n>   \tauto it = buffers_.find(bufferId);\n>   \tif (it == buffers_.end()) {\n> @@ -536,6 +539,18 @@ void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)\n>   \t */\n>   \tparams->use = {};\n>   \n> +\tfor (auto const &algo : algorithms_)\n> +\t\talgo->prepare(context_, params);\n> +\n> +\t// TODO: use different algorithms to set StillCapture params.\n\n\nCan you provide a brief summary here, specific to algorithms targetting \nStillCapture use-case? How would they differ (and I wonder if they \nwork/need statistics from Imgu1).\n\n> +\tit = buffers_.find(captureBufferId);\n> +\tif (it == buffers_.end()) {\n> +\t\tLOG(IPAIPU3, Error) << \"Could not find capture param buffer!\";\n> +\t\treturn;\n> +\t}\n> +\tmem = it->second.planes()[0];\n> +\tparams = reinterpret_cast<ipu3_uapi_params *>(mem.data());\n> +\tparams->use = {};\n>   \tfor (auto const &algo : algorithms_)\n>   \t\talgo->prepare(context_, params);\n>   \n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index a201c5ca..a13fb881 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -1424,7 +1424,8 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)\n>   \tif (request->findBuffer(&rawStream_))\n>   \t\tpipe()->completeBuffer(request, buffer);\n>   \n> -\tipa_->fillParamsBuffer(info->id, info->paramBuffer->cookie());\n> +\tipa_->fillParamsBuffer(info->id, info->paramBuffer->cookie(),\n> +\t\t\t       info->captureParamBuffer->cookie());\n>   }\n>   \n>   void IPU3CameraData::paramBufferReady(FrameBuffer *buffer)","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 D1D23C3275\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Jul 2022 08:55:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3437D63312;\n\tWed, 27 Jul 2022 10:55:02 +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 67C7F603EC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Jul 2022 10:55:00 +0200 (CEST)","from [IPV6:2401:4900:1f3e:f7a:bc8f:12ed:b45f:c35d] (unknown\n\t[IPv6:2401:4900:1f3e:f7a:bc8f:12ed:b45f:c35d])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C7EDA835;\n\tWed, 27 Jul 2022 10:54:58 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658912102;\n\tbh=vKmOj3B6XhsYEH/Yw2ARqM8aErPBz7cBMcxXVdG40rk=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=Y1QEfI3fMQbXOOt4B3NowC101+52T07LGEmosSReZqWxYLMDoQ6mmegsOA0Hu5MVk\n\tdG7sxlvr/b5TD06078o3OHtC0EWr0DQpNr52+dZetbL/z54p+W7MQfM9WF0zJ4KkfP\n\tEwYeyB80TEj21xJFkPU0NYbyOYMgDIQuifsryvCriA7IhB4KoLOQkJu6ytbOvIWaDc\n\trQtVLW9z1MMOqLwx2isRH+qyIZR4OTDTK7f7Qq97XlDoRxjn7SmtzJzlSGP6aFP+nA\n\t56q9UVLV9JQXzR1huiNSksoKdy9lGUyNhhyILpaRRQrxnoy9cRj7+4ousavf5Pubin\n\tDq5GlWG0kKaaQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1658912100;\n\tbh=vKmOj3B6XhsYEH/Yw2ARqM8aErPBz7cBMcxXVdG40rk=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=E3Z62ofISZxGk8Zx51N8adD1/XpFNNKFFC+hxOdW8sGIRG9JdwnZxtudX6VOhQG+H\n\tRIhSCwYO4G8kIjRVEjpAC79+B92EnisE2iJol61nuYuBocta0vQ9FE1LlXo9fL3GIB\n\tA9ESeVpyho8/6+07iMQ7MMF/ig9mVQtbnPqSiwJ8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"E3Z62ofI\"; dkim-atps=neutral","Message-ID":"<f2327127-6636-7498-a4e7-9fb19b038726@ideasonboard.com>","Date":"Wed, 27 Jul 2022 14:24:53 +0530","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.4.1","Content-Language":"en-US","To":"Harvey Yang <chenghaoyang@chromium.org>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20220629103018.4025635-1-chenghaoyang@google.com>\n\t<20220629103018.4025635-6-chenghaoyang@google.com>","In-Reply-To":"<20220629103018.4025635-6-chenghaoyang@google.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v3 5/9] ipu3: Update\n\tIPAIPU3Interface::fillParamsBuffer with captureBufferId","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>","From":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24298,"web_url":"https://patchwork.libcamera.org/comment/24298/","msgid":"<CAEB1ahsmPPMwSuYo+Uy_1p-qOEs6-moPxNCc6Zw_opSzzjnX9g@mail.gmail.com>","date":"2022-08-02T10:31:02","subject":"Re: [libcamera-devel] [PATCH v3 5/9] ipu3: Update\n\tIPAIPU3Interface::fillParamsBuffer with captureBufferId","submitter":{"id":117,"url":"https://patchwork.libcamera.org/api/people/117/","name":"Cheng-Hao Yang","email":"chenghaoyang@chromium.org"},"content":"Hi Umang,\n\nOn Wed, Jul 27, 2022 at 4:55 PM Umang Jain <umang.jain@ideasonboard.com>\nwrote:\n\n> Hi Harvey,\n>\n> On 6/29/22 16:00, Harvey Yang via libcamera-devel wrote:\n> > From: Harvey Yang <chenghaoyang@chromium.org>\n> >\n> > This patch updates the ipa interface |IPAIPU3Interface::fillParamsBuffer|\n> > with additional |captureBufferId| to fill the param buffer for the\n> > StillCapture stream as well.\n>\n>\n> Whenever the IPAIPU3 Interface is updated,\n>\n>      https://git.libcamera.org/libcamera/ipu3-ipa.git/tree/ (closed\n> source IPA IPU3 wrapper)\n>\n> will need corresponding updates as well (Just mentioning for the records)\n>\n>\nWill try later.\n\n\n> >\n> > Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n> > ---\n> >   include/libcamera/ipa/ipu3.mojom     |  2 +-\n> >   src/ipa/ipu3/ipu3.cpp                | 21 ++++++++++++++++++---\n> >   src/libcamera/pipeline/ipu3/ipu3.cpp |  3 ++-\n> >   3 files changed, 21 insertions(+), 5 deletions(-)\n> >\n> > diff --git a/include/libcamera/ipa/ipu3.mojom\n> b/include/libcamera/ipa/ipu3.mojom\n> > index d1b1c6b8..d94c344e 100644\n> > --- a/include/libcamera/ipa/ipu3.mojom\n> > +++ b/include/libcamera/ipa/ipu3.mojom\n> > @@ -31,7 +31,7 @@ interface IPAIPU3Interface {\n> >       unmapBuffers(array<uint32> ids);\n> >\n> >       [async] queueRequest(uint32 frame, libcamera.ControlList controls);\n> > -     [async] fillParamsBuffer(uint32 frame, uint32 bufferId);\n> > +     [async] fillParamsBuffer(uint32 frame, uint32 bufferId, uint32\n> captureBufferId);\n> >       [async] processStatsBuffer(uint32 frame, int64 frameTimestamp,\n> >                                  uint32 bufferId, libcamera.ControlList\n> sensorControls);\n> >   };\n> > diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\n> > index dd6cfd79..149a3958 100644\n> > --- a/src/ipa/ipu3/ipu3.cpp\n> > +++ b/src/ipa/ipu3/ipu3.cpp\n> > @@ -146,7 +146,8 @@ public:\n> >       void unmapBuffers(const std::vector<unsigned int> &ids) override;\n> >\n> >       void queueRequest(const uint32_t frame, const ControlList\n> &controls) override;\n> > -     void fillParamsBuffer(const uint32_t frame, const uint32_t\n> bufferId) override;\n> > +     void fillParamsBuffer(const uint32_t frame, const uint32_t\n> bufferId,\n> > +                           const uint32_t captureBufferId) override;\n> >       void processStatsBuffer(const uint32_t frame, const int64_t\n> frameTimestamp,\n> >                               const uint32_t bufferId,\n> >                               const ControlList &sensorControls)\n> override;\n> > @@ -508,12 +509,14 @@ void IPAIPU3::unmapBuffers(const\n> std::vector<unsigned int> &ids)\n> >   /**\n> >    * \\brief Fill and return a buffer with ISP processing parameters for\n> a frame\n> >    * \\param[in] frame The frame number\n> > - * \\param[in] bufferId ID of the parameter buffer to fill\n> > + * \\param[in] bufferId ID of the video parameter buffer to fill\n> > + * \\param[in] captureBufferId ID of the capture parameter buffer to fill\n> >    *\n> >    * Algorithms are expected to fill the IPU3 parameter buffer for the\n> next\n> >    * frame given their most recent processing of the ImgU statistics.\n> >    */\n> > -void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t\n> bufferId)\n> > +void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t\n> bufferId,\n>\n>\n> Since now there are couple of parameter buffers to fill, this can be\n> renamed to depict plural buffers:\n>\n>      IPAIPU3::fillParamsBuffers(const uint32_t frame, const uint32_t\n> bufferId,\n>\n>\nRight, thanks!\n\n\n> > +                            const uint32_t captureBufferId)\n> >   {\n> >       auto it = buffers_.find(bufferId);\n> >       if (it == buffers_.end()) {\n> > @@ -536,6 +539,18 @@ void IPAIPU3::fillParamsBuffer(const uint32_t\n> frame, const uint32_t bufferId)\n> >        */\n> >       params->use = {};\n> >\n> > +     for (auto const &algo : algorithms_)\n> > +             algo->prepare(context_, params);\n> > +\n> > +     // TODO: use different algorithms to set StillCapture params.\n>\n>\n> Can you provide a brief summary here, specific to algorithms targetting\n> StillCapture use-case? How would they differ (and I wonder if they\n> work/need statistics from Imgu1).\n>\n>\nHi Han-lin,\nCan you help clarify this? I'm also not sure how the algorithms should be\ndifferent for YUV/StillCapture use cases, with the same statistics from the\nYUV.\nThanks!\n\n\n> > +     it = buffers_.find(captureBufferId);\n> > +     if (it == buffers_.end()) {\n> > +             LOG(IPAIPU3, Error) << \"Could not find capture param\n> buffer!\";\n> > +             return;\n> > +     }\n> > +     mem = it->second.planes()[0];\n> > +     params = reinterpret_cast<ipu3_uapi_params *>(mem.data());\n> > +     params->use = {};\n> >       for (auto const &algo : algorithms_)\n> >               algo->prepare(context_, params);\n> >\n> > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > index a201c5ca..a13fb881 100644\n> > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > @@ -1424,7 +1424,8 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer\n> *buffer)\n> >       if (request->findBuffer(&rawStream_))\n> >               pipe()->completeBuffer(request, buffer);\n> >\n> > -     ipa_->fillParamsBuffer(info->id, info->paramBuffer->cookie());\n> > +     ipa_->fillParamsBuffer(info->id, info->paramBuffer->cookie(),\n> > +                            info->captureParamBuffer->cookie());\n> >   }\n> >\n> >   void IPU3CameraData::paramBufferReady(FrameBuffer *buffer)\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 A9B53BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  2 Aug 2022 10:31:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 74A2363315;\n\tTue,  2 Aug 2022 12:31:16 +0200 (CEST)","from mail-lf1-x133.google.com (mail-lf1-x133.google.com\n\t[IPv6:2a00:1450:4864:20::133])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 63AA06330E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Aug 2022 12:31:14 +0200 (CEST)","by mail-lf1-x133.google.com with SMTP id z25so21341207lfr.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 02 Aug 2022 03:31:14 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1659436276;\n\tbh=6RcHRPFx5tgjd9ir0DfFcsno9g8wRPD+qXwVZItSvpE=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=iZezI8szWQGFJh2mu9q+2bl5mV+GD1I8DF35i+Xz+oWr5+48KFeIIRWubjdCz1d9j\n\t1GofPVJXOQylGYaTiE3ODEMdpZhjb0iHZYx2b/GxmibrRJ5TcOj9oHOzBq0tJcJBkM\n\t/ZZq2wGwSxXyyOwWYaze/SVfoHc9gKbTGk9cDTNF11DPUCrqnOKNNb3HqyZoQzqPUB\n\tHF6wXyrXufxKTjG4dVOmu+sXsWtPYm6PNBE1eEKPuXlOvXq6jcPIuBRv0wHHDvcPa3\n\tUZfl7fe2ULGQ8W9iOMaNbzM0mVNRsa1/LXzroleCvDUU48Z802+STLgfpzt/lca/ye\n\tp7Ds4u/CU5vfg==","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=lBl9kYP/E4QA9SkdufBlWTdUdLM3XnkI0ypL5DUT0wM=;\n\tb=mgEmFpNjDXzYa0OB/iLY3qq+N6ahOsGi9dq2zwqaqyYrT6enunVwjj8o4Z4TC6W+2r\n\tIXnt5/WDu0PyO9wFilWWIqqYKVddohwtie7U1xcWi2CZBZjtvVMI8CGzMwsxv/K60fmz\n\tnTr/Jozcpf5hbbHupEqpSx0N3pkI9+xEQtCWY="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=chromium.org\n\theader.i=@chromium.org header.b=\"mgEmFpNj\"; \n\tdkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=lBl9kYP/E4QA9SkdufBlWTdUdLM3XnkI0ypL5DUT0wM=;\n\tb=M3hPVJLRbBITL0wMA/yJ+EuY/hYuUZQZIgEkMd9divdMdW1yZlexSRbK1eAwo4po3d\n\t1+Ad/oM1JDBEnWGFINu7PbwwHT78Q7FuG34ASpBY7KTUj72ifENDeh8vFyh8ZQQpsfg4\n\t2dBjpV4HozMu53NJr57UjaqVoCixLNFoi3o9kJYVG+acbdqJ9jiQc4KkIzGLgMkITSNz\n\tSziJYOJL3F9TylBHAPkMgLizRRs7+DDE2hKYIKLt+w410dyNVAuqU1dMCANE2nbl0IKB\n\t20TolWP5cwoLsOi2R/5zPzXyO/l0e007xiLbQFy3yakpyqAAYolyOic+DN0/mx53nUQ6\n\txF8A==","X-Gm-Message-State":"AJIora+gmWjKLR1Vs0yiDbGM9qSIlQr9WXzg34cWAZ9QBcemAG1N5t5X\n\triCibmXmZyUBkPxzj7EXFShekDxSuF+OYS0Q8lc6B0nl1To=","X-Google-Smtp-Source":"AGRyM1uUuqJsN9QAaBvfby6zZpPCJCOzP3eodaU62Nwa44ipfe1GvnJU6WG7NKUHpDlCYC1fyY+EEa1+rynOilCX7Tg=","X-Received":"by 2002:ac2:4e47:0:b0:48a:c05b:d401 with SMTP id\n\tf7-20020ac24e47000000b0048ac05bd401mr7618207lfr.191.1659436273804;\n\tTue, 02 Aug 2022 03:31:13 -0700 (PDT)","MIME-Version":"1.0","References":"<20220629103018.4025635-1-chenghaoyang@google.com>\n\t<20220629103018.4025635-6-chenghaoyang@google.com>\n\t<f2327127-6636-7498-a4e7-9fb19b038726@ideasonboard.com>","In-Reply-To":"<f2327127-6636-7498-a4e7-9fb19b038726@ideasonboard.com>","Date":"Tue, 2 Aug 2022 18:31:02 +0800","Message-ID":"<CAEB1ahsmPPMwSuYo+Uy_1p-qOEs6-moPxNCc6Zw_opSzzjnX9g@mail.gmail.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"000000000000a0c54205e53f9d55\"","Subject":"Re: [libcamera-devel] [PATCH v3 5/9] ipu3: Update\n\tIPAIPU3Interface::fillParamsBuffer with captureBufferId","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>","From":"Cheng-Hao Yang via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]