[{"id":12481,"web_url":"https://patchwork.libcamera.org/comment/12481/","msgid":"<20200913114637.GI695456@oden.dyn.berto.se>","date":"2020-09-13T11:46:37","subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Jacopo,\n\nThanks for your work.\n\nOn 2020-09-11 18:20:39 +0200, Jacopo Mondi wrote:\n> Report for each request the pipeline depth describing the number of\n> processing steps the frames went into.\n> \n> This change shows a limitation in the current implementation as the\n> number of processing steps a frame has been run through is a property\n> of each Stream. Currently we report the maximum depth among all the\n> returned frames.\n\nIs this something we should address (at lest on how we want this to be \nhandled) before adding this control to the IPU3 pipeline? I'm a bit \nworried about adding it without a plan.\n\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 9 +++++++++\n>  1 file changed, 9 insertions(+)\n> \n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 9ce329a83f5d..26ea26430f8e 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -12,6 +12,7 @@\n>  #include <vector>\n>  \n>  #include <libcamera/camera.h>\n> +#include <libcamera/control_ids.h>\n>  #include <libcamera/formats.h>\n>  #include <libcamera/property_ids.h>\n>  #include <libcamera/request.h>\n> @@ -41,6 +42,10 @@ static constexpr unsigned int IMGU_OUTPUT_HEIGHT_ALIGN = 4;\n>  static constexpr unsigned int IMGU_OUTPUT_WIDTH_MARGIN = 64;\n>  static constexpr unsigned int IMGU_OUTPUT_HEIGHT_MARGIN = 32;\n>  \n> +static const ControlInfoMap IPU3Controls = {\n> +\t{ &controls::DraftPipelineDepth, ControlInfo(2, 3) }\n> +};\n> +\n>  class IPU3CameraData : public CameraData\n>  {\n>  public:\n> @@ -786,6 +791,8 @@ int PipelineHandlerIPU3::registerCameras()\n>  \t\tdata->properties_.set(properties::DraftAvailableColorCorrectionAberrationModes,\n>  \t\t\t\t      { static_cast<int32_t>(properties::DRAFT_COLOR_CORRECTION_ABERRATION_OFF) });\n>  \n> +\t\tdata->controlInfo_ = IPU3Controls;\n> +\n>  \t\t/**\n>  \t\t * \\todo Dynamically assign ImgU and output devices to each\n>  \t\t * stream and camera; as of now, limit support to two cameras\n> @@ -848,6 +855,7 @@ void IPU3CameraData::imguOutputBufferReady(FrameBuffer *buffer)\n>  \t\treturn;\n>  \n>  \t/* Mark the request as complete. */\n> +\trequest->controls().set(controls::DraftPipelineDepth, 3);\n>  \tpipe_->completeRequest(camera_, request);\n>  }\n>  \n> @@ -873,6 +881,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)\n>  \tif (request->findBuffer(&rawStream_)) {\n>  \t\tbool isComplete = pipe_->completeBuffer(camera_, request, buffer);\n>  \t\tif (isComplete) {\n> +\t\t\trequest->controls().set(controls::DraftPipelineDepth, 2);\n>  \t\t\tpipe_->completeRequest(camera_, request);\n>  \t\t\treturn;\n>  \t\t}\n> -- \n> 2.28.0\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 021EEBF01C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 13 Sep 2020 11:46:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 90C5262D99;\n\tSun, 13 Sep 2020 13:46:40 +0200 (CEST)","from mail-lj1-x236.google.com (mail-lj1-x236.google.com\n\t[IPv6:2a00:1450:4864:20::236])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F0D4A62901\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 13 Sep 2020 13:46:38 +0200 (CEST)","by mail-lj1-x236.google.com with SMTP id w3so16167787ljo.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 13 Sep 2020 04:46:38 -0700 (PDT)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id\n\tz141sm2215492lfc.192.2020.09.13.04.46.37\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSun, 13 Sep 2020 04:46:37 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"XaBhLfvt\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=JqSNKb3D7yFMcKtimG+741efnh81xGRATSGXJ4NENfE=;\n\tb=XaBhLfvt1A9CuThEkWpo3xzyxMJ8wi+RQCc9avsExsZ2g+Jw7608KQaGdI9jtpecVx\n\tl5QiVHvRK83yKXQ3wIHocUsRt8s7k06XDuePcXsJ4BpWVnn70Oeb8jSxiHYiPztdRHA5\n\tq5h2tLxtGKx3bSd/n6zG3Lak9AQBeBntRfDIvtmERZ+2GU0jlNrAdONY/XME+oqOP1UH\n\tk90qVxckacO8suZt+92+XLXU5y5EcTQ21phOnn7lsV0Yp4mX1zbq40y3a9jFZqX/LR0h\n\tPyB0l/jJhdvsQV8/C4CIHhZFVTgNqK3oy+yQ7uRX+p+1VvFtoZcVwjED6/ewQHlCOMZn\n\tL3yg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=JqSNKb3D7yFMcKtimG+741efnh81xGRATSGXJ4NENfE=;\n\tb=nqvkeuelmDDvAvlRhxHi4+dZv3C4HnJzibrWxhPbhOyvuV1BuwMBEzJpoOpkvbTsvj\n\trUe6hltTrgskWxa6PdQktX7QsL46yZuj0LAj8c1KAOk9wjpQXwQb4d8D4YSerxHudeQb\n\tDSpYl1+uYhrIBYLxUdUHctGC36McgUvzdK0aCj2fk9M2apOAkOvueDIfCuXt6a6WC/bT\n\tHdJHSqmTQkNSVclt1R3XR0bMWY+TAAFQrMy7A4elfg5DmPSfX9LL/QWqkFWNPyGR7Q1/\n\tEbCJ5BX4aCItLIrGFIU8XDfpwe83c9x+wR1Nqm4kMXPWzxvsYPxJitn3y2kTeNKSCVzM\n\tGZtg==","X-Gm-Message-State":"AOAM5328VufXCiTg2QAeFsmFhrLhr0/rwb+vdy20obYFFXh02KYly/n0\n\tgBucoMzKHCLqhz4Rfwq/TDZWZg==","X-Google-Smtp-Source":"ABdhPJwgIhYndsRDtwx61xCtkJ1YW4h4FS8hfiZ5ZN7n9wIaEwxMkgnaruJZWHIOzv75A4ueqDZyQQ==","X-Received":"by 2002:a2e:6c03:: with SMTP id h3mr3223199ljc.212.1599997598392;\n\tSun, 13 Sep 2020 04:46:38 -0700 (PDT)","Date":"Sun, 13 Sep 2020 13:46:37 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<20200913114637.GI695456@oden.dyn.berto.se>","References":"<20200911162039.61933-1-jacopo@jmondi.org>\n\t<20200911162039.61933-7-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200911162039.61933-7-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","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":"hanlinchen@chromium.org, libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":12630,"web_url":"https://patchwork.libcamera.org/comment/12630/","msgid":"<20200921145809.a7dtj4zysu7bm3ge@uno.localdomain>","date":"2020-09-21T14:58:09","subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas,\n\nOn Sun, Sep 13, 2020 at 01:46:37PM +0200, Niklas Söderlund wrote:\n> Hi Jacopo,\n>\n> Thanks for your work.\n>\n> On 2020-09-11 18:20:39 +0200, Jacopo Mondi wrote:\n> > Report for each request the pipeline depth describing the number of\n> > processing steps the frames went into.\n> >\n> > This change shows a limitation in the current implementation as the\n> > number of processing steps a frame has been run through is a property\n> > of each Stream. Currently we report the maximum depth among all the\n> > returned frames.\n>\n> Is this something we should address (at lest on how we want this to be\n> handled) before adding this control to the IPU3 pipeline? I'm a bit\n> worried about adding it without a plan.\n>\n\nmmm, I might have been pessimistic. For the sake of reporting the\ndraft control to android I think this is fine for now, as Android as\nwell represents this with a metadata relatively to the request and not\nto each Stream.\n\nThanks\n  j\n\n> >\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/libcamera/pipeline/ipu3/ipu3.cpp | 9 +++++++++\n> >  1 file changed, 9 insertions(+)\n> >\n> > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > index 9ce329a83f5d..26ea26430f8e 100644\n> > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > @@ -12,6 +12,7 @@\n> >  #include <vector>\n> >\n> >  #include <libcamera/camera.h>\n> > +#include <libcamera/control_ids.h>\n> >  #include <libcamera/formats.h>\n> >  #include <libcamera/property_ids.h>\n> >  #include <libcamera/request.h>\n> > @@ -41,6 +42,10 @@ static constexpr unsigned int IMGU_OUTPUT_HEIGHT_ALIGN = 4;\n> >  static constexpr unsigned int IMGU_OUTPUT_WIDTH_MARGIN = 64;\n> >  static constexpr unsigned int IMGU_OUTPUT_HEIGHT_MARGIN = 32;\n> >\n> > +static const ControlInfoMap IPU3Controls = {\n> > +\t{ &controls::DraftPipelineDepth, ControlInfo(2, 3) }\n> > +};\n> > +\n> >  class IPU3CameraData : public CameraData\n> >  {\n> >  public:\n> > @@ -786,6 +791,8 @@ int PipelineHandlerIPU3::registerCameras()\n> >  \t\tdata->properties_.set(properties::DraftAvailableColorCorrectionAberrationModes,\n> >  \t\t\t\t      { static_cast<int32_t>(properties::DRAFT_COLOR_CORRECTION_ABERRATION_OFF) });\n> >\n> > +\t\tdata->controlInfo_ = IPU3Controls;\n> > +\n> >  \t\t/**\n> >  \t\t * \\todo Dynamically assign ImgU and output devices to each\n> >  \t\t * stream and camera; as of now, limit support to two cameras\n> > @@ -848,6 +855,7 @@ void IPU3CameraData::imguOutputBufferReady(FrameBuffer *buffer)\n> >  \t\treturn;\n> >\n> >  \t/* Mark the request as complete. */\n> > +\trequest->controls().set(controls::DraftPipelineDepth, 3);\n> >  \tpipe_->completeRequest(camera_, request);\n> >  }\n> >\n> > @@ -873,6 +881,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)\n> >  \tif (request->findBuffer(&rawStream_)) {\n> >  \t\tbool isComplete = pipe_->completeBuffer(camera_, request, buffer);\n> >  \t\tif (isComplete) {\n> > +\t\t\trequest->controls().set(controls::DraftPipelineDepth, 2);\n> >  \t\t\tpipe_->completeRequest(camera_, request);\n> >  \t\t\treturn;\n> >  \t\t}\n> > --\n> > 2.28.0\n> >\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel\n>\n> --\n> Regards,\n> Niklas Söderlund","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 BE80AC3B5B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 21 Sep 2020 14:54:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5BF2862FD3;\n\tMon, 21 Sep 2020 16:54:18 +0200 (CEST)","from relay11.mail.gandi.net (relay11.mail.gandi.net\n\t[217.70.178.231])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 70EF062B90\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 21 Sep 2020 16:54:17 +0200 (CEST)","from uno.localdomain (93-34-118-233.ip49.fastwebnet.it\n\t[93.34.118.233]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay11.mail.gandi.net (Postfix) with ESMTPSA id A9B4B100012;\n\tMon, 21 Sep 2020 14:54:16 +0000 (UTC)"],"Date":"Mon, 21 Sep 2020 16:58:09 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Message-ID":"<20200921145809.a7dtj4zysu7bm3ge@uno.localdomain>","References":"<20200911162039.61933-1-jacopo@jmondi.org>\n\t<20200911162039.61933-7-jacopo@jmondi.org>\n\t<20200913114637.GI695456@oden.dyn.berto.se>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200913114637.GI695456@oden.dyn.berto.se>","Subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","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":"hanlinchen@chromium.org, libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":13090,"web_url":"https://patchwork.libcamera.org/comment/13090/","msgid":"<3a632e99-39ed-03da-13dc-da1ea6275ede@ideasonboard.com>","date":"2020-10-07T18:41:56","subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn 11/09/2020 17:20, Jacopo Mondi wrote:\n> Report for each request the pipeline depth describing the number of\n> processing steps the frames went into.\n> \n> This change shows a limitation in the current implementation as the\n> number of processing steps a frame has been run through is a property\n> of each Stream. Currently we report the maximum depth among all the\n> returned frames.\n\nSo do we need 'stream properties' ?\n\n\n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 9 +++++++++\n>  1 file changed, 9 insertions(+)\n> \n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 9ce329a83f5d..26ea26430f8e 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -12,6 +12,7 @@\n>  #include <vector>\n>  \n>  #include <libcamera/camera.h>\n> +#include <libcamera/control_ids.h>\n>  #include <libcamera/formats.h>\n>  #include <libcamera/property_ids.h>\n>  #include <libcamera/request.h>\n> @@ -41,6 +42,10 @@ static constexpr unsigned int IMGU_OUTPUT_HEIGHT_ALIGN = 4;\n>  static constexpr unsigned int IMGU_OUTPUT_WIDTH_MARGIN = 64;\n>  static constexpr unsigned int IMGU_OUTPUT_HEIGHT_MARGIN = 32;\n>  \n> +static const ControlInfoMap IPU3Controls = {\n> +\t{ &controls::DraftPipelineDepth, ControlInfo(2, 3) }\n> +};\n> +\n\nI presume we're going to need to expose controls that are read from the\nV4L2 device too. Things like (given my recent discussion with David) the\nDigitalGain perhaps, or other things which are controls of the ISP in\nparticular ?\n\nThis might need to be updated at load/runtime in that case, so I don't\nthink the static will be suitable - but that's a future problem.\n\nI'm actually not worried about that here right now - though perhaps we\nshould add some sort of a \\todo.\n\n\n>  class IPU3CameraData : public CameraData\n>  {\n>  public:\n> @@ -786,6 +791,8 @@ int PipelineHandlerIPU3::registerCameras()\n>  \t\tdata->properties_.set(properties::DraftAvailableColorCorrectionAberrationModes,\n>  \t\t\t\t      { static_cast<int32_t>(properties::DRAFT_COLOR_CORRECTION_ABERRATION_OFF) });\n>  \n> +\t\tdata->controlInfo_ = IPU3Controls;\n> +\n>  \t\t/**\n>  \t\t * \\todo Dynamically assign ImgU and output devices to each\n>  \t\t * stream and camera; as of now, limit support to two cameras\n> @@ -848,6 +855,7 @@ void IPU3CameraData::imguOutputBufferReady(FrameBuffer *buffer)\n>  \t\treturn;\n>  \n>  \t/* Mark the request as complete. */\n> +\trequest->controls().set(controls::DraftPipelineDepth, 3);\n>  \tpipe_->completeRequest(camera_, request);\n>  }\n>  \n> @@ -873,6 +881,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)\n>  \tif (request->findBuffer(&rawStream_)) {\n>  \t\tbool isComplete = pipe_->completeBuffer(camera_, request, buffer);\n>  \t\tif (isComplete) {\n> +\t\t\trequest->controls().set(controls::DraftPipelineDepth, 2);\n>  \t\t\tpipe_->completeRequest(camera_, request);\n>  \t\t\treturn;\n>  \t\t}\n> \n\nOtherwise, this patch is actually simple enough that I think I can give\nthis already:\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nAlthough, I expect there to be some minimal changes in here as this\nseries develops anyway, but nothing that I foresee being troublesome","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 EEC0ABEEE0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  7 Oct 2020 18:42:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 610B9605CA;\n\tWed,  7 Oct 2020 20:42:00 +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 D0B9A605A8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  7 Oct 2020 20:41:59 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 35DB79DA;\n\tWed,  7 Oct 2020 20:41:59 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"HhJGNrw7\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1602096119;\n\tbh=HT4GEjZLm5Q0uE8n+ABdsFaQzRsInyJUrMcPEafdl6E=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=HhJGNrw7/XA5CKIUtJ0wM/1M3/XWfTbSCd0jcUigX8qjyW+nHHVrm+CLW7FvLhr0i\n\tKwi0Jr1RQuALnRrX+mYjKD6F+niaOuoekTZjsHJgCvmLSF2EjKxpCsvPGzxBcE+e0v\n\tDn/Z6jXdB6Tb7hPTFowkI9T07yU1oBVgjgRIpgFA=","To":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","References":"<20200911162039.61933-1-jacopo@jmondi.org>\n\t<20200911162039.61933-7-jacopo@jmondi.org>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<3a632e99-39ed-03da-13dc-da1ea6275ede@ideasonboard.com>","Date":"Wed, 7 Oct 2020 19:41:56 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<20200911162039.61933-7-jacopo@jmondi.org>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","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>","Reply-To":"kieran.bingham@ideasonboard.com","Cc":"hanlinchen@chromium.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":13106,"web_url":"https://patchwork.libcamera.org/comment/13106/","msgid":"<20201008103757.o7txngjf5dn4savi@uno.localdomain>","date":"2020-10-08T10:37:57","subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Kieran,\n\nOn Wed, Oct 07, 2020 at 07:41:56PM +0100, Kieran Bingham wrote:\n> Hi Jacopo,\n>\n> On 11/09/2020 17:20, Jacopo Mondi wrote:\n> > Report for each request the pipeline depth describing the number of\n> > processing steps the frames went into.\n> >\n> > This change shows a limitation in the current implementation as the\n> > number of processing steps a frame has been run through is a property\n> > of each Stream. Currently we report the maximum depth among all the\n> > returned frames.\n>\n> So do we need 'stream properties' ?\n>\n\nAs well as we might need 'stream controls'.\n\n>\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/libcamera/pipeline/ipu3/ipu3.cpp | 9 +++++++++\n> >  1 file changed, 9 insertions(+)\n> >\n> > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > index 9ce329a83f5d..26ea26430f8e 100644\n> > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > @@ -12,6 +12,7 @@\n> >  #include <vector>\n> >\n> >  #include <libcamera/camera.h>\n> > +#include <libcamera/control_ids.h>\n> >  #include <libcamera/formats.h>\n> >  #include <libcamera/property_ids.h>\n> >  #include <libcamera/request.h>\n> > @@ -41,6 +42,10 @@ static constexpr unsigned int IMGU_OUTPUT_HEIGHT_ALIGN = 4;\n> >  static constexpr unsigned int IMGU_OUTPUT_WIDTH_MARGIN = 64;\n> >  static constexpr unsigned int IMGU_OUTPUT_HEIGHT_MARGIN = 32;\n> >\n> > +static const ControlInfoMap IPU3Controls = {\n> > +\t{ &controls::DraftPipelineDepth, ControlInfo(2, 3) }\n> > +};\n> > +\n>\n> I presume we're going to need to expose controls that are read from the\n> V4L2 device too. Things like (given my recent discussion with David) the\n> DigitalGain perhaps, or other things which are controls of the ISP in\n> particular ?\n>\n\nTo support manual control of the sensor we'll have to register a ControlInfo\nfor each sensor control, yes.\n\nThis opens another question: metadata vs controls.\nThis is here just to be able to report a metadata, not a control which\ncan be set by the application. So this is not needed and the below\npart is wrong\n\n> This might need to be updated at load/runtime in that case, so I don't\n> think the static will be suitable - but that's a future problem.\n\nMore than the static, it's the const the problem here.\nThe ControlInfoMap will have to be augmented at runtime yes, but for\ncontrols, not metadata as I'm doing here.\n\n>\n> I'm actually not worried about that here right now - though perhaps we\n> should add some sort of a \\todo.\n>\n>\n> >  class IPU3CameraData : public CameraData\n> >  {\n> >  public:\n> > @@ -786,6 +791,8 @@ int PipelineHandlerIPU3::registerCameras()\n> >  \t\tdata->properties_.set(properties::DraftAvailableColorCorrectionAberrationModes,\n> >  \t\t\t\t      { static_cast<int32_t>(properties::DRAFT_COLOR_CORRECTION_ABERRATION_OFF) });\n> >\n> > +\t\tdata->controlInfo_ = IPU3Controls;\n> > +\n> >  \t\t/**\n> >  \t\t * \\todo Dynamically assign ImgU and output devices to each\n> >  \t\t * stream and camera; as of now, limit support to two cameras\n> > @@ -848,6 +855,7 @@ void IPU3CameraData::imguOutputBufferReady(FrameBuffer *buffer)\n> >  \t\treturn;\n> >\n> >  \t/* Mark the request as complete. */\n> > +\trequest->controls().set(controls::DraftPipelineDepth, 3);\n\nThis should be request->metadata()\n\n> >  \tpipe_->completeRequest(camera_, request);\n> >  }\n> >\n> > @@ -873,6 +881,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)\n> >  \tif (request->findBuffer(&rawStream_)) {\n> >  \t\tbool isComplete = pipe_->completeBuffer(camera_, request, buffer);\n> >  \t\tif (isComplete) {\n> > +\t\t\trequest->controls().set(controls::DraftPipelineDepth, 2);\n\nSame here.\n\nI had this in a fixup in my branch, I noticed this when I tried wiring\nthis up to Android HAL.\n\n> >  \t\t\tpipe_->completeRequest(camera_, request);\n> >  \t\t\treturn;\n> >  \t\t}\n> >\n>\n> Otherwise, this patch is actually simple enough that I think I can give\n> this already:\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> Although, I expect there to be some minimal changes in here as this\n> series develops anyway, but nothing that I foresee being troublesome\n\nYeah, I think I'll drop all tags in next series, as I think I've mixed\nup quire a few things in this first attempt.\n\nThanks\n  j\n\n>\n> --\n> Regards\n> --\n> Kieran","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 10E15BEEDF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  8 Oct 2020 10:34:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ABEB6605BB;\n\tThu,  8 Oct 2020 12:33:59 +0200 (CEST)","from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net\n\t[217.70.183.198])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 88B5960391\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  8 Oct 2020 12:33:58 +0200 (CEST)","from uno.localdomain (93-34-118-233.ip49.fastwebnet.it\n\t[93.34.118.233]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay6-d.mail.gandi.net (Postfix) with ESMTPSA id C7555C0006;\n\tThu,  8 Oct 2020 10:33:57 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","Date":"Thu, 8 Oct 2020 12:37:57 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20201008103757.o7txngjf5dn4savi@uno.localdomain>","References":"<20200911162039.61933-1-jacopo@jmondi.org>\n\t<20200911162039.61933-7-jacopo@jmondi.org>\n\t<3a632e99-39ed-03da-13dc-da1ea6275ede@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<3a632e99-39ed-03da-13dc-da1ea6275ede@ideasonboard.com>","Subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","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":"hanlinchen@chromium.org, libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":13107,"web_url":"https://patchwork.libcamera.org/comment/13107/","msgid":"<c3889069-2faa-d63d-5bcc-b96b774edf96@ideasonboard.com>","date":"2020-10-08T10:42:28","subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn 08/10/2020 11:37, Jacopo Mondi wrote:\n> Hi Kieran,\n> \n> On Wed, Oct 07, 2020 at 07:41:56PM +0100, Kieran Bingham wrote:\n>> Hi Jacopo,\n>>\n>> On 11/09/2020 17:20, Jacopo Mondi wrote:\n>>> Report for each request the pipeline depth describing the number of\n>>> processing steps the frames went into.\n>>>\n>>> This change shows a limitation in the current implementation as the\n>>> number of processing steps a frame has been run through is a property\n>>> of each Stream. Currently we report the maximum depth among all the\n>>> returned frames.\n>>\n>> So do we need 'stream properties' ?\n>>\n> \n> As well as we might need 'stream controls'.\n> \n>>\n>>> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n>>> ---\n>>>  src/libcamera/pipeline/ipu3/ipu3.cpp | 9 +++++++++\n>>>  1 file changed, 9 insertions(+)\n>>>\n>>> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>>> index 9ce329a83f5d..26ea26430f8e 100644\n>>> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n>>> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>>> @@ -12,6 +12,7 @@\n>>>  #include <vector>\n>>>\n>>>  #include <libcamera/camera.h>\n>>> +#include <libcamera/control_ids.h>\n>>>  #include <libcamera/formats.h>\n>>>  #include <libcamera/property_ids.h>\n>>>  #include <libcamera/request.h>\n>>> @@ -41,6 +42,10 @@ static constexpr unsigned int IMGU_OUTPUT_HEIGHT_ALIGN = 4;\n>>>  static constexpr unsigned int IMGU_OUTPUT_WIDTH_MARGIN = 64;\n>>>  static constexpr unsigned int IMGU_OUTPUT_HEIGHT_MARGIN = 32;\n>>>\n>>> +static const ControlInfoMap IPU3Controls = {\n>>> +\t{ &controls::DraftPipelineDepth, ControlInfo(2, 3) }\n>>> +};\n>>> +\n>>\n>> I presume we're going to need to expose controls that are read from the\n>> V4L2 device too. Things like (given my recent discussion with David) the\n>> DigitalGain perhaps, or other things which are controls of the ISP in\n>> particular ?\n>>\n> \n> To support manual control of the sensor we'll have to register a ControlInfo\n> for each sensor control, yes.\n> \n> This opens another question: metadata vs controls.\n> This is here just to be able to report a metadata, not a control which\n> can be set by the application. So this is not needed and the below\n> part is wrong\n> \n>> This might need to be updated at load/runtime in that case, so I don't\n>> think the static will be suitable - but that's a future problem.\n> \n> More than the static, it's the const the problem here.\n> The ControlInfoMap will have to be augmented at runtime yes, but for\n> controls, not metadata as I'm doing here.\n> \n>>\n>> I'm actually not worried about that here right now - though perhaps we\n>> should add some sort of a \\todo.\n>>\n>>\n>>>  class IPU3CameraData : public CameraData\n>>>  {\n>>>  public:\n>>> @@ -786,6 +791,8 @@ int PipelineHandlerIPU3::registerCameras()\n>>>  \t\tdata->properties_.set(properties::DraftAvailableColorCorrectionAberrationModes,\n>>>  \t\t\t\t      { static_cast<int32_t>(properties::DRAFT_COLOR_CORRECTION_ABERRATION_OFF) });\n>>>\n>>> +\t\tdata->controlInfo_ = IPU3Controls;\n>>> +\n>>>  \t\t/**\n>>>  \t\t * \\todo Dynamically assign ImgU and output devices to each\n>>>  \t\t * stream and camera; as of now, limit support to two cameras\n>>> @@ -848,6 +855,7 @@ void IPU3CameraData::imguOutputBufferReady(FrameBuffer *buffer)\n>>>  \t\treturn;\n>>>\n>>>  \t/* Mark the request as complete. */\n>>> +\trequest->controls().set(controls::DraftPipelineDepth, 3);\n> \n> This should be request->metadata()\n\nOh - yes of course - the app can't 'set' the depth ;-)\n\n> \n>>>  \tpipe_->completeRequest(camera_, request);\n>>>  }\n>>>\n>>> @@ -873,6 +881,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)\n>>>  \tif (request->findBuffer(&rawStream_)) {\n>>>  \t\tbool isComplete = pipe_->completeBuffer(camera_, request, buffer);\n>>>  \t\tif (isComplete) {\n>>> +\t\t\trequest->controls().set(controls::DraftPipelineDepth, 2);\n> \n> Same here.\n> \n> I had this in a fixup in my branch, I noticed this when I tried wiring\n> this up to Android HAL.\n> \n>>>  \t\t\tpipe_->completeRequest(camera_, request);\n>>>  \t\t\treturn;\n>>>  \t\t}\n>>>\n>>\n>> Otherwise, this patch is actually simple enough that I think I can give\n>> this already:\n>>\n>> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>\n>> Although, I expect there to be some minimal changes in here as this\n>> series develops anyway, but nothing that I foresee being troublesome\n> \n> Yeah, I think I'll drop all tags in next series, as I think I've mixed\n> up quire a few things in this first attempt.\n\nThat's fine too!\n\nLook forward to the updates.\n\nKieran\n\n\n> \n> Thanks\n>   j\n> \n>>\n>> --\n>> Regards\n>> --\n>> Kieran","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 E67E8BEEE0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  8 Oct 2020 10:42:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7C116605C1;\n\tThu,  8 Oct 2020 12:42:33 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 21CCA60391\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  8 Oct 2020 12:42:32 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8EED259E;\n\tThu,  8 Oct 2020 12:42:31 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"kVrc77EC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1602153751;\n\tbh=bjlE7Z3h4Kt20XtRLX1zLFkGpbWXILfAjiM/h/gwq78=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=kVrc77ECeQ3f9aBM3eE8/sRH4sjU6XmH8F30b6kJWZieavOHNp+Nqrn2sasgsFh6K\n\tKIpwAWLnnpRoztxxxtuPWM0+4jfngUTO/cbD+AVfvezij8RzkPx4YwtCPQwG4mMl9B\n\tJcODgEwOb/jk32O3mgoHc7pzoda25h52wUsiI0YU=","To":"Jacopo Mondi <jacopo@jmondi.org>","References":"<20200911162039.61933-1-jacopo@jmondi.org>\n\t<20200911162039.61933-7-jacopo@jmondi.org>\n\t<3a632e99-39ed-03da-13dc-da1ea6275ede@ideasonboard.com>\n\t<20201008103757.o7txngjf5dn4savi@uno.localdomain>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<c3889069-2faa-d63d-5bcc-b96b774edf96@ideasonboard.com>","Date":"Thu, 8 Oct 2020 11:42:28 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<20201008103757.o7txngjf5dn4savi@uno.localdomain>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [RFC 6/6] libcamera: ipu3: Report pipeline\n\tdepth","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>","Reply-To":"kieran.bingham@ideasonboard.com","Cc":"hanlinchen@chromium.org, libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]