[{"id":14164,"web_url":"https://patchwork.libcamera.org/comment/14164/","msgid":"<64337a3e-1cb9-16e9-84fb-df34a58309e3@ideasonboard.com>","date":"2020-12-09T10:31:09","subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Hiro,\n\nOn 09/12/2020 05:54, Hirokazu Honda wrote:\n> Camera3StreamConfig is a new class to store camera3_stream and\n> types with associated StreamConfiguration.\n> \n> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nPerhaps this could be squashed with 2/3 which uses it - but w're at v5\nhere, so I don't think it's worth it now.\n\nIt looks like this series is likely ready for merging, so no need to\nrepost just to squash.\n\n> ---\n>  src/android/camera_device.cpp | 12 ++++++++++++\n>  1 file changed, 12 insertions(+)\n> \n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index 675af570..09269d95 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -128,6 +128,18 @@ const std::map<int, const Camera3Format> camera3FormatsMap = {\n>  \t},\n>  };\n> \n> +/*\n> + * \\struct Camera3StreamConfig\n> + * \\brief Data to store StreamConfiguration associated with camera3_stream(s).\n> + * \\var streams List of streams requested by Android HAL client.\n> + * \\var types List of CameraStream::Type associated with streams.\n> + * \\var config StreamConfiguration for streams.\n> + */\n> +struct Camera3StreamConfig {\n> +\tstd::vector<camera3_stream_t*> streams;\n> +\tstd::vector<CameraStream::Type> types;\n\nAs far as i can tell, in 2/3 both streams and types are always used at\nthe same index?\n\nIf that's the case, I would have preferred to see them grouped directly\nso that it is enforced.\n\nThat could either be by putting a std::pair in the vector (though I'm\nnot sure if that gets a bit ugly) or grouping them together in a struct\n... but then we have yet another type...\n\nSo - I'm not going to say that's needed right now - but I'm just\ncautious of adding lots of multiple data types that require the same\nindexing, rather than putting the grouped data together, and stored\ninside a single data structure...\n\nIn this case, I don't think it matters as it's just semantics for\naccessing the data.\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\n> +\tStreamConfiguration config;\n> +};\n>  } /* namespace */\n> \n>  LOG_DECLARE_CATEGORY(HAL)\n> --\n> 2.29.2.576.ga3fc446d84-goog\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel\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 3EACABD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  9 Dec 2020 10:31:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ADDFC67E72;\n\tWed,  9 Dec 2020 11:31:13 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 53225635C4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  9 Dec 2020 11:31:12 +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 C08CE326;\n\tWed,  9 Dec 2020 11:31:11 +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=\"WSot60db\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1607509871;\n\tbh=MwNI5YS1HrdIcbOk3RRutuFUsVbx+afOuESReVwwK5k=;\n\th=Reply-To:Subject:To:References:From:Date:In-Reply-To:From;\n\tb=WSot60db7AzKRzepgS1ovSNlSOsK2F5WcSQaHMeN9QqN0rFAihHQHmX+/MKU6M4iC\n\toWA1zxJeV0+Xj7ZRnbBsLk+88N4muNZPvMkeuIcOjElEmtWn4AOUrTO5mB5h3oyW5I\n\tc1zRwzTaOzuJ8McglG6SVAXg66oc3YKvLcG0PeBE=","To":"Hirokazu Honda <hiroh@chromium.org>, libcamera-devel@lists.libcamera.org","References":"<20201209055410.3232987-1-hiroh@chromium.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":"<64337a3e-1cb9-16e9-84fb-df34a58309e3@ideasonboard.com>","Date":"Wed, 9 Dec 2020 10:31:09 +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":"<20201209055410.3232987-1-hiroh@chromium.org>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","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":14165,"web_url":"https://patchwork.libcamera.org/comment/14165/","msgid":"<20201209104158.zfr4irjbmobcbh5j@uno.localdomain>","date":"2020-12-09T10:41:58","subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Kieran,\n\nOn Wed, Dec 09, 2020 at 10:31:09AM +0000, Kieran Bingham wrote:\n> Hi Hiro,\n>\n> On 09/12/2020 05:54, Hirokazu Honda wrote:\n> > Camera3StreamConfig is a new class to store camera3_stream and\n> > types with associated StreamConfiguration.\n> >\n> > Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n>\n> Perhaps this could be squashed with 2/3 which uses it - but w're at v5\n> here, so I don't think it's worth it now.\n>\n> It looks like this series is likely ready for merging, so no need to\n> repost just to squash.\n\nI asked patches to be separate. If there are no other review comments\nthat require a new iteration I agree this can be squashed when\napplying if desired.\n\n>\n> > ---\n> >  src/android/camera_device.cpp | 12 ++++++++++++\n> >  1 file changed, 12 insertions(+)\n> >\n> > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> > index 675af570..09269d95 100644\n> > --- a/src/android/camera_device.cpp\n> > +++ b/src/android/camera_device.cpp\n> > @@ -128,6 +128,18 @@ const std::map<int, const Camera3Format> camera3FormatsMap = {\n> >  \t},\n> >  };\n> >\n> > +/*\n> > + * \\struct Camera3StreamConfig\n> > + * \\brief Data to store StreamConfiguration associated with camera3_stream(s).\n> > + * \\var streams List of streams requested by Android HAL client.\n> > + * \\var types List of CameraStream::Type associated with streams.\n> > + * \\var config StreamConfiguration for streams.\n> > + */\n> > +struct Camera3StreamConfig {\n> > +\tstd::vector<camera3_stream_t*> streams;\n> > +\tstd::vector<CameraStream::Type> types;\n>\n> As far as i can tell, in 2/3 both streams and types are always used at\n> the same index?\n>\n> If that's the case, I would have preferred to see them grouped directly\n> so that it is enforced.\n>\n> That could either be by putting a std::pair in the vector (though I'm\n> not sure if that gets a bit ugly) or grouping them together in a struct\n> ... but then we have yet another type...\n>\n> So - I'm not going to say that's needed right now - but I'm just\n> cautious of adding lots of multiple data types that require the same\n> indexing, rather than putting the grouped data together, and stored\n> inside a single data structure...\n>\n> In this case, I don't think it matters as it's just semantics for\n> accessing the data.\n>\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n>\n> > +\tStreamConfiguration config;\n> > +};\n> >  } /* namespace */\n> >\n> >  LOG_DECLARE_CATEGORY(HAL)\n> > --\n> > 2.29.2.576.ga3fc446d84-goog\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel\n> >\n>\n> --\n> Regards\n> --\n> Kieran\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 998B0BD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  9 Dec 2020 10:41:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1C7E867E4D;\n\tWed,  9 Dec 2020 11:41:52 +0100 (CET)","from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net\n\t[217.70.183.195])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DB75C635C4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  9 Dec 2020 11:41:50 +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 relay3-d.mail.gandi.net (Postfix) with ESMTPSA id A842B60017;\n\tWed,  9 Dec 2020 10:41:49 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","Date":"Wed, 9 Dec 2020 11:41:58 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20201209104158.zfr4irjbmobcbh5j@uno.localdomain>","References":"<20201209055410.3232987-1-hiroh@chromium.org>\n\t<64337a3e-1cb9-16e9-84fb-df34a58309e3@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<64337a3e-1cb9-16e9-84fb-df34a58309e3@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","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":14169,"web_url":"https://patchwork.libcamera.org/comment/14169/","msgid":"<491967a5-03f0-18dd-96e1-8c67d68e8fc2@uajain.com>","date":"2020-12-09T12:43:31","subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","submitter":{"id":1,"url":"https://patchwork.libcamera.org/api/people/1/","name":"Umang Jain","email":"email@uajain.com"},"content":"Hi Kieran\n\nOn 12/9/20 4:01 PM, Kieran Bingham wrote:\n> Hi Hiro,\n>\n> On 09/12/2020 05:54, Hirokazu Honda wrote:\n>> Camera3StreamConfig is a new class to store camera3_stream and\n>> types with associated StreamConfiguration.\n>>\n>> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n>> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> Perhaps this could be squashed with 2/3 which uses it - but w're at v5\n> here, so I don't think it's worth it now.\n>\n> It looks like this series is likely ready for merging, so no need to\n> repost just to squash.\n>\n>> ---\n>>   src/android/camera_device.cpp | 12 ++++++++++++\n>>   1 file changed, 12 insertions(+)\n>>\n>> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n>> index 675af570..09269d95 100644\n>> --- a/src/android/camera_device.cpp\n>> +++ b/src/android/camera_device.cpp\n>> @@ -128,6 +128,18 @@ const std::map<int, const Camera3Format> camera3FormatsMap = {\n>>   \t},\n>>   };\n>>\n>> +/*\n>> + * \\struct Camera3StreamConfig\n>> + * \\brief Data to store StreamConfiguration associated with camera3_stream(s).\n>> + * \\var streams List of streams requested by Android HAL client.\n>> + * \\var types List of CameraStream::Type associated with streams.\n>> + * \\var config StreamConfiguration for streams.\n>> + */\n>> +struct Camera3StreamConfig {\n>> +\tstd::vector<camera3_stream_t*> streams;\n>> +\tstd::vector<CameraStream::Type> types;\n> As far as i can tell, in 2/3 both streams and types are always used at\n> the same index?\n>\n> If that's the case, I would have preferred to see them grouped directly\n> so that it is enforced.\n>\n> That could either be by putting a std::pair in the vector (though I'm\n> not sure if that gets a bit ugly) or grouping them together in a struct\n> ... but then we have yet another type...\n>\n> So - I'm not going to say that's needed right now - but I'm just\n> cautious of adding lots of multiple data types that require the same\n> indexing, rather than putting the grouped data together, and stored\n> inside a single data structure...\nThis is my concern constantly while reviewing the series, but I have \nfailed to come-up with a solution so I should not complain. :) I got the \nidea and it seems enough people have eyes on this, so probably this can \ngo ahead.\n> In this case, I don't think it matters as it's just semantics for\n> accessing the data.\n>\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n>\n>> +\tStreamConfiguration config;\n>> +};\n>>   } /* namespace */\n>>\n>>   LOG_DECLARE_CATEGORY(HAL)\n>> --\n>> 2.29.2.576.ga3fc446d84-goog\n>> _______________________________________________\n>> libcamera-devel mailing list\n>> libcamera-devel@lists.libcamera.org\n>> https://lists.libcamera.org/listinfo/libcamera-devel\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 34DD3BD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  9 Dec 2020 12:43:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AB897635F3;\n\tWed,  9 Dec 2020 13:43:40 +0100 (CET)","from mail.uajain.com (static.126.159.217.95.clients.your-server.de\n\t[95.217.159.126])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 28C8E635D3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  9 Dec 2020 13:43:36 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=uajain.com header.i=@uajain.com\n\theader.b=\"udk6U23r\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=uajain.com; s=mail;\n\tt=1607517815; bh=49VpHLSXJ9SqYlGDNrRWcnl0W2NSaLuGsm/2+zjnIzI=;\n\th=Subject:To:References:From:In-Reply-To;\n\tb=udk6U23ric6QwPGCk2aMniAaZFJKFK2AkfMaoFxTG/Nab/kcEikHFB0rstBUxUTWl\n\tM0xOmjRmnKbUNDXAI2ja+ezczy5o/+Rn2fgEDAXkWlFkax/MJnAf51mm9czBbw+C6k\n\tZB4uXV5+dMzjCZrBTU60CiR/9wkgM/Wmb5Mh1u0O1tt1U6hGmhgyDzlBuuUoYV6xtX\n\t6pfyYctJmjfcM3kdrSRheypn9Ib9EsZu38HGnbifBMJt8mOHIDOSUTQcv4FN+ZqMQG\n\tdxiCdGRBSjClh3GY8N2nMOgXEXPnO51D2yaqcnwUq88Pz4TFfGVKu1q61NceVfYU1Y\n\t0AtNkg/ZAphIA==","To":"libcamera-devel@lists.libcamera.org","References":"<20201209055410.3232987-1-hiroh@chromium.org>\n\t<64337a3e-1cb9-16e9-84fb-df34a58309e3@ideasonboard.com>","From":"Umang Jain <email@uajain.com>","Message-ID":"<491967a5-03f0-18dd-96e1-8c67d68e8fc2@uajain.com>","Date":"Wed, 9 Dec 2020 18:13:31 +0530","Mime-Version":"1.0","In-Reply-To":"<64337a3e-1cb9-16e9-84fb-df34a58309e3@ideasonboard.com>","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","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>","Content-Transfer-Encoding":"7bit","Content-Type":"text/plain; charset=\"us-ascii\"; Format=\"flowed\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":14171,"web_url":"https://patchwork.libcamera.org/comment/14171/","msgid":"<7f2bf5d0-2330-c382-97ea-347afbe59bd7@uajain.com>","date":"2020-12-09T12:45:52","subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","submitter":{"id":1,"url":"https://patchwork.libcamera.org/api/people/1/","name":"Umang Jain","email":"email@uajain.com"},"content":"Hi Hiro,\n\nOn 12/9/20 11:24 AM, Hirokazu Honda wrote:\n> Camera3StreamConfig is a new class to store camera3_stream and\n> types with associated StreamConfiguration.\n>\n> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\nReviewed-by: Umang Jain <email@uajain.com>\n> ---\n>   src/android/camera_device.cpp | 12 ++++++++++++\n>   1 file changed, 12 insertions(+)\n>\n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index 675af570..09269d95 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -128,6 +128,18 @@ const std::map<int, const Camera3Format> camera3FormatsMap = {\n>   \t},\n>   };\n>\n> +/*\n> + * \\struct Camera3StreamConfig\n> + * \\brief Data to store StreamConfiguration associated with camera3_stream(s).\n> + * \\var streams List of streams requested by Android HAL client.\n> + * \\var types List of CameraStream::Type associated with streams.\n> + * \\var config StreamConfiguration for streams.\n> + */\n> +struct Camera3StreamConfig {\n> +\tstd::vector<camera3_stream_t*> streams;\n> +\tstd::vector<CameraStream::Type> types;\n> +\tStreamConfiguration config;\n> +};\n>   } /* namespace */\n>\n>   LOG_DECLARE_CATEGORY(HAL)\n> --\n> 2.29.2.576.ga3fc446d84-goog\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 04CA7BD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  9 Dec 2020 12:45:57 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C74F4635F3;\n\tWed,  9 Dec 2020 13:45:56 +0100 (CET)","from mail.uajain.com (static.126.159.217.95.clients.your-server.de\n\t[95.217.159.126])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3BCCC635D3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  9 Dec 2020 13:45:55 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=uajain.com header.i=@uajain.com\n\theader.b=\"tRyWYjtC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=uajain.com; s=mail;\n\tt=1607517954; bh=tBSS+2WYOFMS0Hqbsl0jZg0SK5D/KKJ44CE2/MvU4gw=;\n\th=Subject:To:References:From:In-Reply-To;\n\tb=tRyWYjtC5mAeljCyruqpaYiKTn9CzT9vEzKBUa3G7Vhn6KyZNkqNywWV+ePgGAED1\n\te7CnxfF+zTCQdrsywwf2jNBt/Npoh5RBkAY28dsi8SnZiIxYsIRNMxGMQVUQfqF8Ot\n\t0VwBQP1re0qjzhkH+iYSwUF06qlyBdqmaDJIO/dQHisMRJaAXY4w+hI+xm7e4i78Ea\n\ttbMi/OaQcooxhAKU0hFK4vVyHQ895ZVMBXF8o29pF02TGTtXkig+W7OR7h6Kd/JWgs\n\tSHTFDT8Q9IWqzcxtSUzp2kEbhEzZdBFT0fqd3lTjV+PXk+L/8Eopg8O1MJb4RPj5/P\n\ttbnTZ8L+xAVPA==","To":"Hirokazu Honda <hiroh@chromium.org>, libcamera-devel@lists.libcamera.org","References":"<20201209055410.3232987-1-hiroh@chromium.org>","From":"Umang Jain <email@uajain.com>","Message-ID":"<7f2bf5d0-2330-c382-97ea-347afbe59bd7@uajain.com>","Date":"Wed, 9 Dec 2020 18:15:52 +0530","Mime-Version":"1.0","In-Reply-To":"<20201209055410.3232987-1-hiroh@chromium.org>","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","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>","Content-Transfer-Encoding":"7bit","Content-Type":"text/plain; charset=\"us-ascii\"; Format=\"flowed\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":14209,"web_url":"https://patchwork.libcamera.org/comment/14209/","msgid":"<X9KBhwPrxUirtZQn@pendragon.ideasonboard.com>","date":"2020-12-10T20:13:59","subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Hiro and Kieran,\n\nOn Wed, Dec 09, 2020 at 10:31:09AM +0000, Kieran Bingham wrote:\n> On 09/12/2020 05:54, Hirokazu Honda wrote:\n> > Camera3StreamConfig is a new class to store camera3_stream and\n> > types with associated StreamConfiguration.\n> > \n> > Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n> Perhaps this could be squashed with 2/3 which uses it - but w're at v5\n> here, so I don't think it's worth it now.\n> \n> It looks like this series is likely ready for merging, so no need to\n> repost just to squash.\n> \n> > ---\n> >  src/android/camera_device.cpp | 12 ++++++++++++\n> >  1 file changed, 12 insertions(+)\n> > \n> > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> > index 675af570..09269d95 100644\n> > --- a/src/android/camera_device.cpp\n> > +++ b/src/android/camera_device.cpp\n> > @@ -128,6 +128,18 @@ const std::map<int, const Camera3Format> camera3FormatsMap = {\n> >  \t},\n> >  };\n> > \n> > +/*\n> > + * \\struct Camera3StreamConfig\n> > + * \\brief Data to store StreamConfiguration associated with camera3_stream(s).\n> > + * \\var streams List of streams requested by Android HAL client.\n> > + * \\var types List of CameraStream::Type associated with streams.\n> > + * \\var config StreamConfiguration for streams.\n> > + */\n> > +struct Camera3StreamConfig {\n> > +\tstd::vector<camera3_stream_t*> streams;\n> > +\tstd::vector<CameraStream::Type> types;\n> \n> As far as i can tell, in 2/3 both streams and types are always used at\n> the same index?\n> \n> If that's the case, I would have preferred to see them grouped directly\n> so that it is enforced.\n> \n> That could either be by putting a std::pair in the vector (though I'm\n> not sure if that gets a bit ugly) or grouping them together in a struct\n> ... but then we have yet another type...\n> \n> So - I'm not going to say that's needed right now - but I'm just\n> cautious of adding lots of multiple data types that require the same\n> indexing, rather than putting the grouped data together, and stored\n> inside a single data structure...\n> \n> In this case, I don't think it matters as it's just semantics for\n> accessing the data.\n\nCertainly not a blocker, so,\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nI would however also prefer grouping the two in the same vector.\nSomething like the following could do.\n\nstruct Camera3StreamConfig {\n\tstruct Camera3Stream {\n\t\tcamera3_stream_t *stream;\n\t\tCameraStream::Type type;\n\t};\n\n\tStreamConfiguration config;\n\tstd::vector<Camera3Stream> streams;\n};\n\nAt some point I think we need to go through the HAL implementation to\nclean up the naming scheme, it's not very consistent. A common prefix\nfor data types relating to the HAL, as well as a naming scheme for\nvariables, would be nice.\n\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> > +\tStreamConfiguration config;\n> > +};\n> >  } /* namespace */\n> > \n> >  LOG_DECLARE_CATEGORY(HAL)","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 CC7EDBD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 10 Dec 2020 20:14:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5B9EA6089C;\n\tThu, 10 Dec 2020 21:14:06 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D53C660323\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 10 Dec 2020 21:14:04 +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 5015A25E;\n\tThu, 10 Dec 2020 21:14:04 +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=\"dHSqFQ6+\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1607631244;\n\tbh=ajChRNgjDGehkGF5m10JbCpdcW9ManxetCd47Mh1AHo=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=dHSqFQ6+ND6HzEKWzlzSKQNHGO4vksWJhHiwApfv2tGD04h137fzvdLEWsMD4lT+P\n\t/frgUg76uNgCxZ8I+bov+PlyebD6xjtt0bBnVk7tCnlAtzFDGiQ2zhYLEan5qpV/MV\n\tdWG5PRi/PsecPY1PnRTNYdl7Qi012JNkz8bRM9Ww=","Date":"Thu, 10 Dec 2020 22:13:59 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<X9KBhwPrxUirtZQn@pendragon.ideasonboard.com>","References":"<20201209055410.3232987-1-hiroh@chromium.org>\n\t<64337a3e-1cb9-16e9-84fb-df34a58309e3@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<64337a3e-1cb9-16e9-84fb-df34a58309e3@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v5 1/3] android: camera_device:\n\tIntroduce Camera3StreamConfig","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>"}}]