[{"id":14190,"web_url":"https://patchwork.libcamera.org/comment/14190/","msgid":"<ef8b1ad2-c5a7-fb6a-1c95-479549ea0359@ideasonboard.com>","date":"2020-12-10T09:54:37","subject":"Re: [libcamera-devel] [PATCH 3/3] android: camera_device: Report\n\tnumber of out streams","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn 09/12/2020 17:35, Jacopo Mondi wrote:\n> Report the number of supported output streams through the\n> ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS static metadata.\n> \n> The camera HAL currently supports:\n> - 1 RAW stream\n> - 2 YUV streams\n> - 1 JPEG stream\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/android/camera_device.cpp | 12 +++++++++---\n>  1 file changed, 9 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index 13194d1ea5cc..e9fb23175d27 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -550,10 +550,10 @@ std::tuple<uint32_t, uint32_t> CameraDevice::calculateStaticMetadataSize()\n>  {\n>  \t/*\n>  \t * \\todo Keep this in sync with the actual number of entries.\n> -\t * Currently: 52 entries, 698 bytes of static metadata\n> +\t * Currently: 53 entries, 714 bytes of static metadata\n>  \t */\n> -\tuint32_t numEntries = 52;\n> -\tuint32_t byteSize = 698;\n> +\tuint32_t numEntries = 53;\n> +\tuint32_t byteSize = 714;\n>  \n>  \t/*\n>  \t * Calculate space occupation in bytes for dynamically built metadata\n> @@ -939,6 +939,11 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t\t\t\t\t  &maxPipelineDepth, 1);\n>  \t}\n>  \n> +\t/* Number of { RAW, YUV, JPEG } supported output streams */\n> +\tint32_t numOutStreams[] = { 1, 2, 1 };\n\nIs this constant? or pipeline handler specific?\n\nI guess constant is ok for now - but if we need to update this to query\nthe pipeline handler perhaps we need a todo.\n\nAside from that.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> +\tstaticMetadata_->addEntry(ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,\n> +\t\t\t\t  &numOutStreams, 3);\n> +\n>  \t/* LIMITED does not support reprocessing. */\n>  \tuint32_t maxNumInputStreams = 0;\n>  \tstaticMetadata_->addEntry(ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,\n> @@ -1009,6 +1014,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t\tANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,\n>  \t\tANDROID_REQUEST_PARTIAL_RESULT_COUNT,\n>  \t\tANDROID_REQUEST_PIPELINE_MAX_DEPTH,\n> +\t\tANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,\n>  \t\tANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,\n>  \t\tANDROID_REQUEST_AVAILABLE_CAPABILITIES,\n>  \t};\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 49ED2BD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 10 Dec 2020 09:54:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C85F967F6E;\n\tThu, 10 Dec 2020 10:54:42 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E5C9A60323\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 10 Dec 2020 10:54:40 +0100 (CET)","from [192.168.0.217]\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 740B125E;\n\tThu, 10 Dec 2020 10:54:40 +0100 (CET)"],"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=\"jvRXoX1r\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1607594080;\n\tbh=R+xnU3lBhIAcHUF6AiQLUDsEZHj7xeeJAkbbaR3i6lM=;\n\th=Reply-To:Subject:To:References:From:Date:In-Reply-To:From;\n\tb=jvRXoX1ryTV9fE/3zGCTt9/NnAXYQ+JkFB6YmF2asHHMNy9z2u4uhzmK7OrU/naEm\n\tyA4D6nHM0mJ+qlvEYWfJM1t+tXFXnE42ZaynWjpAOYqZZJL2mAH68S1BMAXndBBBdE\n\tDImLACXTeUAkoZz9GexOXuFbzPsgMA6iSbT9Q7Ck=","To":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","References":"<20201209173520.284266-1-jacopo@jmondi.org>\n\t<20201209173520.284266-4-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":"<ef8b1ad2-c5a7-fb6a-1c95-479549ea0359@ideasonboard.com>","Date":"Thu, 10 Dec 2020 09:54:37 +0000","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":"<20201209173520.284266-4-jacopo@jmondi.org>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH 3/3] android: camera_device: Report\n\tnumber of out streams","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","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":14192,"web_url":"https://patchwork.libcamera.org/comment/14192/","msgid":"<20201210103422.nvvpkncuec6bgqhp@uno.localdomain>","date":"2020-12-10T10:34:22","subject":"Re: [libcamera-devel] [PATCH 3/3] android: camera_device: Report\n\tnumber of out streams","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Kieran,\n\nOn Thu, Dec 10, 2020 at 09:54:37AM +0000, Kieran Bingham wrote:\n> Hi Jacopo,\n>\n> On 09/12/2020 17:35, Jacopo Mondi wrote:\n> > Report the number of supported output streams through the\n> > ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS static metadata.\n> >\n> > The camera HAL currently supports:\n> > - 1 RAW stream\n> > - 2 YUV streams\n> > - 1 JPEG stream\n> >\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/android/camera_device.cpp | 12 +++++++++---\n> >  1 file changed, 9 insertions(+), 3 deletions(-)\n> >\n> > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> > index 13194d1ea5cc..e9fb23175d27 100644\n> > --- a/src/android/camera_device.cpp\n> > +++ b/src/android/camera_device.cpp\n> > @@ -550,10 +550,10 @@ std::tuple<uint32_t, uint32_t> CameraDevice::calculateStaticMetadataSize()\n> >  {\n> >  \t/*\n> >  \t * \\todo Keep this in sync with the actual number of entries.\n> > -\t * Currently: 52 entries, 698 bytes of static metadata\n> > +\t * Currently: 53 entries, 714 bytes of static metadata\n> >  \t */\n> > -\tuint32_t numEntries = 52;\n> > -\tuint32_t byteSize = 698;\n> > +\tuint32_t numEntries = 53;\n> > +\tuint32_t byteSize = 714;\n> >\n> >  \t/*\n> >  \t * Calculate space occupation in bytes for dynamically built metadata\n> > @@ -939,6 +939,11 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()\n> >  \t\t\t\t\t  &maxPipelineDepth, 1);\n> >  \t}\n> >\n> > +\t/* Number of { RAW, YUV, JPEG } supported output streams */\n> > +\tint32_t numOutStreams[] = { 1, 2, 1 };\n>\n> Is this constant? or pipeline handler specific?\n\nIt will be a mix of pipeline capabilities + HAL post-processing\ncapabilities.\n\n>\n> I guess constant is ok for now - but if we need to update this to query\n> the pipeline handler perhaps we need a todo.\n\nCurrently is constant. As soon as we add post-processing beside JPEG\nthis will need to be updated to some different values. Not only for\nYUV streams but also for RAW, which is something that could be done at\nright away as we already have:\n\n\t/* Report if camera supports RAW. */\n\tstd::unique_ptr<CameraConfiguration> cameraConfig =\n\t\tcamera_->generateConfiguration({ StreamRole::Raw });\n\tif (cameraConfig && !cameraConfig->empty()) {\n\t\tconst PixelFormatInfo &info =\n\t\t\tPixelFormatInfo::info(cameraConfig->at(0).pixelFormat);\n\t\tif (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW)\n\t\t\tavailableCapabilities.push_back(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW);\n\t}\n\n>\n> Aside from that.\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n\nThanks\n  j\n\n> > +\tstaticMetadata_->addEntry(ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,\n> > +\t\t\t\t  &numOutStreams, 3);\n> > +\n> >  \t/* LIMITED does not support reprocessing. */\n> >  \tuint32_t maxNumInputStreams = 0;\n> >  \tstaticMetadata_->addEntry(ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,\n> > @@ -1009,6 +1014,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()\n> >  \t\tANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,\n> >  \t\tANDROID_REQUEST_PARTIAL_RESULT_COUNT,\n> >  \t\tANDROID_REQUEST_PIPELINE_MAX_DEPTH,\n> > +\t\tANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,\n> >  \t\tANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,\n> >  \t\tANDROID_REQUEST_AVAILABLE_CAPABILITIES,\n> >  \t};\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 CE282BD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 10 Dec 2020 10:34:17 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4E4F167F72;\n\tThu, 10 Dec 2020 11:34:17 +0100 (CET)","from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net\n\t[217.70.183.196])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3C1AA60323\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 10 Dec 2020 11:34:16 +0100 (CET)","from uno.localdomain (93-34-118-233.ip49.fastwebnet.it\n\t[93.34.118.233]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 7D2B5E0006;\n\tThu, 10 Dec 2020 10:34:15 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","Date":"Thu, 10 Dec 2020 11:34:22 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20201210103422.nvvpkncuec6bgqhp@uno.localdomain>","References":"<20201209173520.284266-1-jacopo@jmondi.org>\n\t<20201209173520.284266-4-jacopo@jmondi.org>\n\t<ef8b1ad2-c5a7-fb6a-1c95-479549ea0359@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<ef8b1ad2-c5a7-fb6a-1c95-479549ea0359@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 3/3] android: camera_device: Report\n\tnumber of out streams","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","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":14208,"web_url":"https://patchwork.libcamera.org/comment/14208/","msgid":"<X9JqNdew7+0HHki7@pendragon.ideasonboard.com>","date":"2020-12-10T18:34:29","subject":"Re: [libcamera-devel] [PATCH 3/3] android: camera_device: Report\n\tnumber of out streams","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Thu, Dec 10, 2020 at 11:34:22AM +0100, Jacopo Mondi wrote:\n> On Thu, Dec 10, 2020 at 09:54:37AM +0000, Kieran Bingham wrote:\n> > On 09/12/2020 17:35, Jacopo Mondi wrote:\n> > > Report the number of supported output streams through the\n> > > ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS static metadata.\n> > >\n> > > The camera HAL currently supports:\n> > > - 1 RAW stream\n> > > - 2 YUV streams\n> > > - 1 JPEG stream\n> > >\n> > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > ---\n> > >  src/android/camera_device.cpp | 12 +++++++++---\n> > >  1 file changed, 9 insertions(+), 3 deletions(-)\n> > >\n> > > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> > > index 13194d1ea5cc..e9fb23175d27 100644\n> > > --- a/src/android/camera_device.cpp\n> > > +++ b/src/android/camera_device.cpp\n> > > @@ -550,10 +550,10 @@ std::tuple<uint32_t, uint32_t> CameraDevice::calculateStaticMetadataSize()\n> > >  {\n> > >  \t/*\n> > >  \t * \\todo Keep this in sync with the actual number of entries.\n> > > -\t * Currently: 52 entries, 698 bytes of static metadata\n> > > +\t * Currently: 53 entries, 714 bytes of static metadata\n> > >  \t */\n> > > -\tuint32_t numEntries = 52;\n> > > -\tuint32_t byteSize = 698;\n> > > +\tuint32_t numEntries = 53;\n> > > +\tuint32_t byteSize = 714;\n> > >\n> > >  \t/*\n> > >  \t * Calculate space occupation in bytes for dynamically built metadata\n> > > @@ -939,6 +939,11 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()\n> > >  \t\t\t\t\t  &maxPipelineDepth, 1);\n> > >  \t}\n> > >\n> > > +\t/* Number of { RAW, YUV, JPEG } supported output streams */\n> > > +\tint32_t numOutStreams[] = { 1, 2, 1 };\n> >\n> > Is this constant? or pipeline handler specific?\n> \n> It will be a mix of pipeline capabilities + HAL post-processing\n> capabilities.\n> \n> > I guess constant is ok for now - but if we need to update this to query\n> > the pipeline handler perhaps we need a todo.\n> \n> Currently is constant. As soon as we add post-processing beside JPEG\n> this will need to be updated to some different values. Not only for\n\nThat's a good enough reason to not address the problem right now :-)\n\n> YUV streams but also for RAW, which is something that could be done at\n> right away as we already have:\n> \n> \t/* Report if camera supports RAW. */\n> \tstd::unique_ptr<CameraConfiguration> cameraConfig =\n> \t\tcamera_->generateConfiguration({ StreamRole::Raw });\n> \tif (cameraConfig && !cameraConfig->empty()) {\n> \t\tconst PixelFormatInfo &info =\n> \t\t\tPixelFormatInfo::info(cameraConfig->at(0).pixelFormat);\n> \t\tif (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW)\n> \t\t\tavailableCapabilities.push_back(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW);\n> \t}\n\nThat would be a nice and simple enough addition to this patch. With\nthis,\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n\n> > Aside from that.\n> >\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> > > +\tstaticMetadata_->addEntry(ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,\n> > > +\t\t\t\t  &numOutStreams, 3);\n> > > +\n> > >  \t/* LIMITED does not support reprocessing. */\n> > >  \tuint32_t maxNumInputStreams = 0;\n> > >  \tstaticMetadata_->addEntry(ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,\n> > > @@ -1009,6 +1014,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()\n> > >  \t\tANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,\n> > >  \t\tANDROID_REQUEST_PARTIAL_RESULT_COUNT,\n> > >  \t\tANDROID_REQUEST_PIPELINE_MAX_DEPTH,\n> > > +\t\tANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,\n> > >  \t\tANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,\n> > >  \t\tANDROID_REQUEST_AVAILABLE_CAPABILITIES,\n> > >  \t};","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 2DD40BD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 10 Dec 2020 18:34:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AA20F60897;\n\tThu, 10 Dec 2020 19:34:36 +0100 (CET)","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 7CF1260323\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 10 Dec 2020 19:34:35 +0100 (CET)","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 E43DC25E;\n\tThu, 10 Dec 2020 19:34:34 +0100 (CET)"],"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=\"F6kK7tzp\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1607625275;\n\tbh=xnxQO0wCitqfwIARS9tSgkG6l0YQXGePm1/x9/aXBMc=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=F6kK7tzpRu46anfXaFITP2twIXJLaosd9WoejI2QqNcSIdYJYgjCPwBEVRc6YI7H+\n\t1VI/xJW4B4/JRctjcwocp+oW/klvo2pUwzxI+FAe+Fz4MeFWrI2Lec7gF2hJThRjMX\n\tyU5ycwvp1IlJWKWAVHxky5yHb9acmgNRGffz2ZAk=","Date":"Thu, 10 Dec 2020 20:34:29 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<X9JqNdew7+0HHki7@pendragon.ideasonboard.com>","References":"<20201209173520.284266-1-jacopo@jmondi.org>\n\t<20201209173520.284266-4-jacopo@jmondi.org>\n\t<ef8b1ad2-c5a7-fb6a-1c95-479549ea0359@ideasonboard.com>\n\t<20201210103422.nvvpkncuec6bgqhp@uno.localdomain>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20201210103422.nvvpkncuec6bgqhp@uno.localdomain>","Subject":"Re: [libcamera-devel] [PATCH 3/3] android: camera_device: Report\n\tnumber of out streams","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","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>"}}]