[{"id":1046,"web_url":"https://patchwork.libcamera.org/comment/1046/","msgid":"<5d9f88aa-ec55-66c2-842b-e91f5861f9b4@ideasonboard.com>","date":"2019-03-12T12:22:46","subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn 12/03/2019 12:12, Jacopo Mondi wrote:\n> Provide a type definition for the map used to enumerate the subdevice\n> image formats and associated sizes.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/libcamera/include/v4l2_subdevice.h |  5 +++--\n>  src/libcamera/v4l2_subdevice.cpp       | 14 +++++++++++---\n>  2 files changed, 14 insertions(+), 5 deletions(-)\n> \n> diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h\n> index 700e66bcddac..15add95a825c 100644\n> --- a/src/libcamera/include/v4l2_subdevice.h\n> +++ b/src/libcamera/include/v4l2_subdevice.h\n> @@ -17,6 +17,8 @@\n>  \n>  namespace libcamera {\n>  \n> +typedef std::map<unsigned int, std::vector<SizeRange>> SubdevFormatEnum;\n\nShould this have a V4L2 prefix? or is that overkill?\n\n\n> +\n>  struct V4L2SubdeviceFormat {\n>  \tuint32_t mbus_code;\n>  \tuint32_t width;\n> @@ -42,8 +44,7 @@ public:\n>  \tint setCrop(unsigned int pad, Rectangle *rect);\n>  \tint setCompose(unsigned int pad, Rectangle *rect);\n>  \n> -\tconst std::map<unsigned int, std::vector<SizeRange>>\n> -\t\t\t\t\t\tformats(unsigned int pad);\n> +\tconst SubdevFormatEnum formats(unsigned int pad);\n>  \n>  \tint getFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n>  \tint setFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n> diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp\n> index 7c56ba3ba510..153330bccc97 100644\n> --- a/src/libcamera/v4l2_subdevice.cpp\n> +++ b/src/libcamera/v4l2_subdevice.cpp\n> @@ -28,6 +28,15 @@ namespace libcamera {\n>  \n>  LOG_DEFINE_CATEGORY(V4L2Subdev)\n>  \n> +/**\n> + * \\typedef SubdevFormatEnum\n> + * \\brief Type definition for the map of image formats and associated sizes\n> + *\n> + * Type definition for the map of media bus codes and associated image\n> + * resolutions used by V4L2Subdevice to report the enumeration of supported\n> + * image formats.\n\nShould/Could we document how to use this new 'type' in here somehow as\nthe underlying type is now a bit obfuscated?\n\n\n> + */\n> +\n>  /**\n>   * \\struct V4L2SubdeviceFormat\n>   * \\brief The V4L2 sub-device image format and sizes\n> @@ -210,10 +219,9 @@ int V4L2Subdevice::setCompose(unsigned int pad, Rectangle *rect)\n>   * \\return A map of image formats associated with a list of image sizes, or\n>   * an empty map on error or if the pad does not exist\n>   */\n> -const std::map<unsigned int, std::vector<SizeRange>>\n> -V4L2Subdevice::formats(unsigned int pad)\n> +const SubdevFormatEnum V4L2Subdevice::formats(unsigned int pad)\n>  {\n> -\tstd::map<unsigned int, std::vector<SizeRange>> formatMap = {};\n> +\tSubdevFormatEnum formatMap = {};\n>  \tstruct v4l2_subdev_mbus_code_enum mbusEnum = {};\n>  \tint ret;\n>  \n>","headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["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 3B692600FC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Mar 2019 13:22:51 +0100 (CET)","from [192.168.0.21]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 6BF8333C;\n\tTue, 12 Mar 2019 13:22:50 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1552393370;\n\tbh=6H213cJdOqjSEiLMUx6HiPNgGq08WUXBzbKgrApiHow=;\n\th=Reply-To:Subject:To:References:From:Date:In-Reply-To:From;\n\tb=UbGgeqOIYWruixSLy7uPkW4gMbzsq+oGZy0tRZipDyvEY9WqlDJ5Petc6twxfxdxC\n\tEkdqHcCNykPHxhQStZwId2e0IL0Qi+7BWW0Y1RQyDXdrrBpESL1IWqwlqnDfEgS3kz\n\t48ta2RrzIEQdMCO0497ypJjAoIPglmf9U26SRM0U=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","References":"<20190312121242.2253-1-jacopo@jmondi.org>\n\t<20190312121242.2253-3-jacopo@jmondi.org>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Openpgp":"preference=signencrypt","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tsbsRB8KNNvVXBOVNwko86rQqF9drZuw=","Organization":"Ideas on Board","Message-ID":"<5d9f88aa-ec55-66c2-842b-e91f5861f9b4@ideasonboard.com>","Date":"Tue, 12 Mar 2019 12:22:46 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101\n\tThunderbird/60.4.0","MIME-Version":"1.0","In-Reply-To":"<20190312121242.2253-3-jacopo@jmondi.org>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Tue, 12 Mar 2019 12:22:51 -0000"}},{"id":1051,"web_url":"https://patchwork.libcamera.org/comment/1051/","msgid":"<20190313171422.GO4722@pendragon.ideasonboard.com>","date":"2019-03-13T17:14:22","subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nThank you for the patch.\n\nOn Tue, Mar 12, 2019 at 01:12:30PM +0100, Jacopo Mondi wrote:\n> Provide a type definition for the map used to enumerate the subdevice\n> image formats and associated sizes.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/libcamera/include/v4l2_subdevice.h |  5 +++--\n>  src/libcamera/v4l2_subdevice.cpp       | 14 +++++++++++---\n>  2 files changed, 14 insertions(+), 5 deletions(-)\n> \n> diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h\n> index 700e66bcddac..15add95a825c 100644\n> --- a/src/libcamera/include/v4l2_subdevice.h\n> +++ b/src/libcamera/include/v4l2_subdevice.h\n> @@ -17,6 +17,8 @@\n>  \n>  namespace libcamera {\n>  \n> +typedef std::map<unsigned int, std::vector<SizeRange>> SubdevFormatEnum;\n> +\n>  struct V4L2SubdeviceFormat {\n>  \tuint32_t mbus_code;\n>  \tuint32_t width;\n> @@ -42,8 +44,7 @@ public:\n>  \tint setCrop(unsigned int pad, Rectangle *rect);\n>  \tint setCompose(unsigned int pad, Rectangle *rect);\n>  \n> -\tconst std::map<unsigned int, std::vector<SizeRange>>\n> -\t\t\t\t\t\tformats(unsigned int pad);\n> +\tconst SubdevFormatEnum formats(unsigned int pad);\n\nWhile at it you could drop the const.\n\n>  \n>  \tint getFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n>  \tint setFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n> diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp\n> index 7c56ba3ba510..153330bccc97 100644\n> --- a/src/libcamera/v4l2_subdevice.cpp\n> +++ b/src/libcamera/v4l2_subdevice.cpp\n> @@ -28,6 +28,15 @@ namespace libcamera {\n>  \n>  LOG_DEFINE_CATEGORY(V4L2Subdev)\n>  \n> +/**\n> + * \\typedef SubdevFormatEnum\n> + * \\brief Type definition for the map of image formats and associated sizes\n> + *\n> + * Type definition for the map of media bus codes and associated image\n> + * resolutions used by V4L2Subdevice to report the enumeration of supported\n> + * image formats.\n> + */\n> +\n>  /**\n>   * \\struct V4L2SubdeviceFormat\n>   * \\brief The V4L2 sub-device image format and sizes\n> @@ -210,10 +219,9 @@ int V4L2Subdevice::setCompose(unsigned int pad, Rectangle *rect)\n>   * \\return A map of image formats associated with a list of image sizes, or\n>   * an empty map on error or if the pad does not exist\n>   */\n> -const std::map<unsigned int, std::vector<SizeRange>>\n> -V4L2Subdevice::formats(unsigned int pad)\n> +const SubdevFormatEnum V4L2Subdevice::formats(unsigned int pad)\n>  {\n> -\tstd::map<unsigned int, std::vector<SizeRange>> formatMap = {};\n> +\tSubdevFormatEnum formatMap = {};\n>  \tstruct v4l2_subdev_mbus_code_enum mbusEnum = {};\n>  \tint ret;\n>","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["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 A5A16600F9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Mar 2019 18:14:30 +0100 (CET)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D98D15AA;\n\tWed, 13 Mar 2019 18:14:29 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1552497270;\n\tbh=EWICJk4NKGjFON779bsFqANzpS9GNWFVoSFP+r1JQ28=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Byym0a+5qWTfAphwaaw5opUcRIgqdGNSAyAPu7oy3ZGm8vHT6ORhoEdUNoWN26JRT\n\tL5BKn5UisZAdY6HZo+3GPXjRAZBgtVgiehjKU8Eg9k8ghJCiGzjzOpAeBOs+6//SR8\n\tDvKsAhB6L8EuMN5dz6doJ+dlKttiHbBClVbcIGpc=","Date":"Wed, 13 Mar 2019 19:14:22 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190313171422.GO4722@pendragon.ideasonboard.com>","References":"<20190312121242.2253-1-jacopo@jmondi.org>\n\t<20190312121242.2253-3-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20190312121242.2253-3-jacopo@jmondi.org>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Wed, 13 Mar 2019 17:14:30 -0000"}},{"id":1055,"web_url":"https://patchwork.libcamera.org/comment/1055/","msgid":"<20190314101020.pskl7yjwhqjcmj3j@uno.localdomain>","date":"2019-03-14T10:10:20","subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Kieran,\n\nOn Tue, Mar 12, 2019 at 12:22:46PM +0000, Kieran Bingham wrote:\n> Hi Jacopo,\n>\n> On 12/03/2019 12:12, Jacopo Mondi wrote:\n> > Provide a type definition for the map used to enumerate the subdevice\n> > image formats and associated sizes.\n> >\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/libcamera/include/v4l2_subdevice.h |  5 +++--\n> >  src/libcamera/v4l2_subdevice.cpp       | 14 +++++++++++---\n> >  2 files changed, 14 insertions(+), 5 deletions(-)\n> >\n> > diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h\n> > index 700e66bcddac..15add95a825c 100644\n> > --- a/src/libcamera/include/v4l2_subdevice.h\n> > +++ b/src/libcamera/include/v4l2_subdevice.h\n> > @@ -17,6 +17,8 @@\n> >\n> >  namespace libcamera {\n> >\n> > +typedef std::map<unsigned int, std::vector<SizeRange>> SubdevFormatEnum;\n>\n> Should this have a V4L2 prefix? or is that overkill?\n>\n\nI accept suggestions. To me it's an overkill, but I understand formats\nand V4L2-related APIs are \"V4L2\" prefixed.\n\nWhat would you do here?\n\n>\n> > +\n> >  struct V4L2SubdeviceFormat {\n> >  \tuint32_t mbus_code;\n> >  \tuint32_t width;\n> > @@ -42,8 +44,7 @@ public:\n> >  \tint setCrop(unsigned int pad, Rectangle *rect);\n> >  \tint setCompose(unsigned int pad, Rectangle *rect);\n> >\n> > -\tconst std::map<unsigned int, std::vector<SizeRange>>\n> > -\t\t\t\t\t\tformats(unsigned int pad);\n> > +\tconst SubdevFormatEnum formats(unsigned int pad);\n> >\n> >  \tint getFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n> >  \tint setFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n> > diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp\n> > index 7c56ba3ba510..153330bccc97 100644\n> > --- a/src/libcamera/v4l2_subdevice.cpp\n> > +++ b/src/libcamera/v4l2_subdevice.cpp\n> > @@ -28,6 +28,15 @@ namespace libcamera {\n> >\n> >  LOG_DEFINE_CATEGORY(V4L2Subdev)\n> >\n> > +/**\n> > + * \\typedef SubdevFormatEnum\n> > + * \\brief Type definition for the map of image formats and associated sizes\n> > + *\n> > + * Type definition for the map of media bus codes and associated image\n> > + * resolutions used by V4L2Subdevice to report the enumeration of supported\n> > + * image formats.\n>\n> Should/Could we document how to use this new 'type' in here somehow as\n> the underlying type is now a bit obfuscated?\n>\n\nNot sure heither how to explain this better than looking at the type,\nand seeing it's a map which associates media bus code to a vector of\nimage resolutions. Ah, see! I just explained what the new type\nobscures. Should I add this?\n\nThanks\n  j\n\n>\n> > + */\n> > +\n> >  /**\n> >   * \\struct V4L2SubdeviceFormat\n> >   * \\brief The V4L2 sub-device image format and sizes\n> > @@ -210,10 +219,9 @@ int V4L2Subdevice::setCompose(unsigned int pad, Rectangle *rect)\n> >   * \\return A map of image formats associated with a list of image sizes, or\n> >   * an empty map on error or if the pad does not exist\n> >   */\n> > -const std::map<unsigned int, std::vector<SizeRange>>\n> > -V4L2Subdevice::formats(unsigned int pad)\n> > +const SubdevFormatEnum V4L2Subdevice::formats(unsigned int pad)\n> >  {\n> > -\tstd::map<unsigned int, std::vector<SizeRange>> formatMap = {};\n> > +\tSubdevFormatEnum formatMap = {};\n> >  \tstruct v4l2_subdev_mbus_code_enum mbusEnum = {};\n> >  \tint ret;\n> >\n> >\n>\n> --\n> Regards\n> --\n> Kieran","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay11.mail.gandi.net (relay11.mail.gandi.net\n\t[217.70.178.231])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E9DFF600FD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Mar 2019 11:09:43 +0100 (CET)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay11.mail.gandi.net (Postfix) with ESMTPSA id 64E1410000D;\n\tThu, 14 Mar 2019 10:09:43 +0000 (UTC)"],"Date":"Thu, 14 Mar 2019 11:10:20 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190314101020.pskl7yjwhqjcmj3j@uno.localdomain>","References":"<20190312121242.2253-1-jacopo@jmondi.org>\n\t<20190312121242.2253-3-jacopo@jmondi.org>\n\t<5d9f88aa-ec55-66c2-842b-e91f5861f9b4@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"sfgyf7urlm7hhhoi\"","Content-Disposition":"inline","In-Reply-To":"<5d9f88aa-ec55-66c2-842b-e91f5861f9b4@ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 14 Mar 2019 10:09:44 -0000"}},{"id":1056,"web_url":"https://patchwork.libcamera.org/comment/1056/","msgid":"<ad511fe4-c6a3-3a0a-1779-5de2610c2dca@ideasonboard.com>","date":"2019-03-14T10:30:04","subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Heya,\n\nOn 14/03/2019 10:10, Jacopo Mondi wrote:\n> Hi Kieran,\n> \n> On Tue, Mar 12, 2019 at 12:22:46PM +0000, Kieran Bingham wrote:\n>> Hi Jacopo,\n>>\n>> On 12/03/2019 12:12, Jacopo Mondi wrote:\n>>> Provide a type definition for the map used to enumerate the subdevice\n>>> image formats and associated sizes.\n>>>\n>>> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n>>> ---\n>>>  src/libcamera/include/v4l2_subdevice.h |  5 +++--\n>>>  src/libcamera/v4l2_subdevice.cpp       | 14 +++++++++++---\n>>>  2 files changed, 14 insertions(+), 5 deletions(-)\n>>>\n>>> diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h\n>>> index 700e66bcddac..15add95a825c 100644\n>>> --- a/src/libcamera/include/v4l2_subdevice.h\n>>> +++ b/src/libcamera/include/v4l2_subdevice.h\n>>> @@ -17,6 +17,8 @@\n>>>\n>>>  namespace libcamera {\n>>>\n>>> +typedef std::map<unsigned int, std::vector<SizeRange>> SubdevFormatEnum;\n>>\n>> Should this have a V4L2 prefix? or is that overkill?\n>>\n> \n> I accept suggestions. To me it's an overkill, but I understand formats\n> and V4L2-related APIs are \"V4L2\" prefixed.\n> \n> What would you do here?\n\nNot sure - it just stood out as not having the same prefix :)\n\nWill the V4L2Device need a similiar formatEnum type?\n\nIf so (or if hypothetically so), how would we distinguish between them.\n\nOr - Would the same 'type' be usable for both? - in which case this\nwould become V4L2FormatEnum perhaps? (i.e. it's not specific to subdevs)?\n\n>>> +\n>>>  struct V4L2SubdeviceFormat {\n>>>  \tuint32_t mbus_code;\n>>>  \tuint32_t width;\n>>> @@ -42,8 +44,7 @@ public:\n>>>  \tint setCrop(unsigned int pad, Rectangle *rect);\n>>>  \tint setCompose(unsigned int pad, Rectangle *rect);\n>>>\n>>> -\tconst std::map<unsigned int, std::vector<SizeRange>>\n>>> -\t\t\t\t\t\tformats(unsigned int pad);\n>>> +\tconst SubdevFormatEnum formats(unsigned int pad);\n>>>\n>>>  \tint getFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n>>>  \tint setFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n>>> diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp\n>>> index 7c56ba3ba510..153330bccc97 100644\n>>> --- a/src/libcamera/v4l2_subdevice.cpp\n>>> +++ b/src/libcamera/v4l2_subdevice.cpp\n>>> @@ -28,6 +28,15 @@ namespace libcamera {\n>>>\n>>>  LOG_DEFINE_CATEGORY(V4L2Subdev)\n>>>\n>>> +/**\n>>> + * \\typedef SubdevFormatEnum\n>>> + * \\brief Type definition for the map of image formats and associated sizes\n>>> + *\n>>> + * Type definition for the map of media bus codes and associated image\n>>> + * resolutions used by V4L2Subdevice to report the enumeration of supported\n>>> + * image formats.\n>>\n>> Should/Could we document how to use this new 'type' in here somehow as\n>> the underlying type is now a bit obfuscated?\n>>\n> \n> Not sure heither how to explain this better than looking at the type,\n> and seeing it's a map which associates media bus code to a vector of\n> image resolutions. Ah, see! I just explained what the new type\n> obscures. Should I add this?\n\nAha - now that's sounding clearer :)\n\n\n> Thanks\n>   j\n> \n>>\n>>> + */\n>>> +\n>>>  /**\n>>>   * \\struct V4L2SubdeviceFormat\n>>>   * \\brief The V4L2 sub-device image format and sizes\n>>> @@ -210,10 +219,9 @@ int V4L2Subdevice::setCompose(unsigned int pad, Rectangle *rect)\n>>>   * \\return A map of image formats associated with a list of image sizes, or\n>>>   * an empty map on error or if the pad does not exist\n>>>   */\n>>> -const std::map<unsigned int, std::vector<SizeRange>>\n>>> -V4L2Subdevice::formats(unsigned int pad)\n>>> +const SubdevFormatEnum V4L2Subdevice::formats(unsigned int pad)\n>>>  {\n>>> -\tstd::map<unsigned int, std::vector<SizeRange>> formatMap = {};\n>>> +\tSubdevFormatEnum formatMap = {};\n>>>  \tstruct v4l2_subdev_mbus_code_enum mbusEnum = {};\n>>>  \tint ret;\n>>>\n>>>\n>>\n>> --\n>> Regards\n>> --\n>> Kieran","headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4BCF5600FD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Mar 2019 11:30:08 +0100 (CET)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8D1ED31C;\n\tThu, 14 Mar 2019 11:30:07 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1552559407;\n\tbh=mmtElpXajmo5AF9tvzjv5KFq/KT+MXda2jBZ0+rl/KQ=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=mma8CGE3IyViSEW2CrLvgQbNBvVpyMUOwuC/e7/7SNCtqF01jYT7zVM2y8Px+KQs2\n\tS43pdqEPFy0Ro/14noj4eA23G42ULxmA3PwZTKFJMLha3KvMMyxknzQzM/vq6HntYD\n\tyQAh2pcB5QRZhZrkK0wycDG4tZIG5NUdRgZvK1cw=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20190312121242.2253-1-jacopo@jmondi.org>\n\t<20190312121242.2253-3-jacopo@jmondi.org>\n\t<5d9f88aa-ec55-66c2-842b-e91f5861f9b4@ideasonboard.com>\n\t<20190314101020.pskl7yjwhqjcmj3j@uno.localdomain>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Openpgp":"preference=signencrypt","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tsbsRB8KNNvVXBOVNwko86rQqF9drZuw=","Organization":"Ideas on Board","Message-ID":"<ad511fe4-c6a3-3a0a-1779-5de2610c2dca@ideasonboard.com>","Date":"Thu, 14 Mar 2019 10:30:04 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101\n\tThunderbird/60.4.0","MIME-Version":"1.0","In-Reply-To":"<20190314101020.pskl7yjwhqjcmj3j@uno.localdomain>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 14 Mar 2019 10:30:08 -0000"}},{"id":1057,"web_url":"https://patchwork.libcamera.org/comment/1057/","msgid":"<20190314103728.knpvkc2qjaxt3zw4@uno.localdomain>","date":"2019-03-14T10:37:28","subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Wed, Mar 13, 2019 at 07:14:22PM +0200, Laurent Pinchart wrote:\n> Hi Jacopo,\n>\n> Thank you for the patch.\n>\n> On Tue, Mar 12, 2019 at 01:12:30PM +0100, Jacopo Mondi wrote:\n> > Provide a type definition for the map used to enumerate the subdevice\n> > image formats and associated sizes.\n> >\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/libcamera/include/v4l2_subdevice.h |  5 +++--\n> >  src/libcamera/v4l2_subdevice.cpp       | 14 +++++++++++---\n> >  2 files changed, 14 insertions(+), 5 deletions(-)\n> >\n> > diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h\n> > index 700e66bcddac..15add95a825c 100644\n> > --- a/src/libcamera/include/v4l2_subdevice.h\n> > +++ b/src/libcamera/include/v4l2_subdevice.h\n> > @@ -17,6 +17,8 @@\n> >\n> >  namespace libcamera {\n> >\n> > +typedef std::map<unsigned int, std::vector<SizeRange>> SubdevFormatEnum;\n> > +\n> >  struct V4L2SubdeviceFormat {\n> >  \tuint32_t mbus_code;\n> >  \tuint32_t width;\n> > @@ -42,8 +44,7 @@ public:\n> >  \tint setCrop(unsigned int pad, Rectangle *rect);\n> >  \tint setCompose(unsigned int pad, Rectangle *rect);\n> >\n> > -\tconst std::map<unsigned int, std::vector<SizeRange>>\n> > -\t\t\t\t\t\tformats(unsigned int pad);\n> > +\tconst SubdevFormatEnum formats(unsigned int pad);\n>\n> While at it you could drop the const.\n>\n\nNot just could, but should. As SubdevFormatEnum is returned by value,\nreturning it as const prevents the compiler from invoking the move\nconstructor of the variable the return value of formats() is assigned\nto, if I got this right...\n\nI'll change this.\n\nThanks\n  j\n\n> >\n> >  \tint getFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n> >  \tint setFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n> > diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp\n> > index 7c56ba3ba510..153330bccc97 100644\n> > --- a/src/libcamera/v4l2_subdevice.cpp\n> > +++ b/src/libcamera/v4l2_subdevice.cpp\n> > @@ -28,6 +28,15 @@ namespace libcamera {\n> >\n> >  LOG_DEFINE_CATEGORY(V4L2Subdev)\n> >\n> > +/**\n> > + * \\typedef SubdevFormatEnum\n> > + * \\brief Type definition for the map of image formats and associated sizes\n> > + *\n> > + * Type definition for the map of media bus codes and associated image\n> > + * resolutions used by V4L2Subdevice to report the enumeration of supported\n> > + * image formats.\n> > + */\n> > +\n> >  /**\n> >   * \\struct V4L2SubdeviceFormat\n> >   * \\brief The V4L2 sub-device image format and sizes\n> > @@ -210,10 +219,9 @@ int V4L2Subdevice::setCompose(unsigned int pad, Rectangle *rect)\n> >   * \\return A map of image formats associated with a list of image sizes, or\n> >   * an empty map on error or if the pad does not exist\n> >   */\n> > -const std::map<unsigned int, std::vector<SizeRange>>\n> > -V4L2Subdevice::formats(unsigned int pad)\n> > +const SubdevFormatEnum V4L2Subdevice::formats(unsigned int pad)\n> >  {\n> > -\tstd::map<unsigned int, std::vector<SizeRange>> formatMap = {};\n> > +\tSubdevFormatEnum formatMap = {};\n> >  \tstruct v4l2_subdev_mbus_code_enum mbusEnum = {};\n> >  \tint ret;\n> >\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net\n\t[217.70.183.201])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6AC59600FD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Mar 2019 11:36:52 +0100 (CET)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay8-d.mail.gandi.net (Postfix) with ESMTPSA id CE17A1BF214;\n\tThu, 14 Mar 2019 10:36:51 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Thu, 14 Mar 2019 11:37:28 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190314103728.knpvkc2qjaxt3zw4@uno.localdomain>","References":"<20190312121242.2253-1-jacopo@jmondi.org>\n\t<20190312121242.2253-3-jacopo@jmondi.org>\n\t<20190313171422.GO4722@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"by2e62zv6nhxpghn\"","Content-Disposition":"inline","In-Reply-To":"<20190313171422.GO4722@pendragon.ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 14 Mar 2019 10:36:52 -0000"}},{"id":1058,"web_url":"https://patchwork.libcamera.org/comment/1058/","msgid":"<20190314104614.ie53t67scaejiakm@uno.localdomain>","date":"2019-03-14T10:46:14","subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Kieran,\n\nOn Thu, Mar 14, 2019 at 10:30:04AM +0000, Kieran Bingham wrote:\n> Heya,\n>\n> On 14/03/2019 10:10, Jacopo Mondi wrote:\n> > Hi Kieran,\n> >\n> > On Tue, Mar 12, 2019 at 12:22:46PM +0000, Kieran Bingham wrote:\n> >> Hi Jacopo,\n> >>\n> >> On 12/03/2019 12:12, Jacopo Mondi wrote:\n> >>> Provide a type definition for the map used to enumerate the subdevice\n> >>> image formats and associated sizes.\n> >>>\n> >>> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> >>> ---\n> >>>  src/libcamera/include/v4l2_subdevice.h |  5 +++--\n> >>>  src/libcamera/v4l2_subdevice.cpp       | 14 +++++++++++---\n> >>>  2 files changed, 14 insertions(+), 5 deletions(-)\n> >>>\n> >>> diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h\n> >>> index 700e66bcddac..15add95a825c 100644\n> >>> --- a/src/libcamera/include/v4l2_subdevice.h\n> >>> +++ b/src/libcamera/include/v4l2_subdevice.h\n> >>> @@ -17,6 +17,8 @@\n> >>>\n> >>>  namespace libcamera {\n> >>>\n> >>> +typedef std::map<unsigned int, std::vector<SizeRange>> SubdevFormatEnum;\n> >>\n> >> Should this have a V4L2 prefix? or is that overkill?\n> >>\n> >\n> > I accept suggestions. To me it's an overkill, but I understand formats\n> > and V4L2-related APIs are \"V4L2\" prefixed.\n> >\n> > What would you do here?\n>\n> Not sure - it just stood out as not having the same prefix :)\n>\n> Will the V4L2Device need a similiar formatEnum type?\n>\n> If so (or if hypothetically so), how would we distinguish between them.\n>\n> Or - Would the same 'type' be usable for both? - in which case this\n> would become V4L2FormatEnum perhaps? (i.e. it's not specific to subdevs)?\n>\n\nGood question. V4L2 devices equally have ENUM_FMT and ENUM_FRAMESIZES,\nso they could use the same type we use for subdevices.\n\nI would move this to geometry, but then I would drop any V4L2\nreference and use FormatEnum as a type name. Or better, tackle this\nwhen we'll eventually handle formats, and store this with the other\nformat-related types in a dedicated header, and leave it here with a\n\\todo for later.\n\nNot sure what to do actually. I would leave it here with a \\todo note,\nand move it wither to a format header or to geometry if we implement\nenum formats for V4L2 devices too.\n\nThanks\n  j\n\n> >>> +\n> >>>  struct V4L2SubdeviceFormat {\n> >>>  \tuint32_t mbus_code;\n> >>>  \tuint32_t width;\n> >>> @@ -42,8 +44,7 @@ public:\n> >>>  \tint setCrop(unsigned int pad, Rectangle *rect);\n> >>>  \tint setCompose(unsigned int pad, Rectangle *rect);\n> >>>\n> >>> -\tconst std::map<unsigned int, std::vector<SizeRange>>\n> >>> -\t\t\t\t\t\tformats(unsigned int pad);\n> >>> +\tconst SubdevFormatEnum formats(unsigned int pad);\n> >>>\n> >>>  \tint getFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n> >>>  \tint setFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n> >>> diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp\n> >>> index 7c56ba3ba510..153330bccc97 100644\n> >>> --- a/src/libcamera/v4l2_subdevice.cpp\n> >>> +++ b/src/libcamera/v4l2_subdevice.cpp\n> >>> @@ -28,6 +28,15 @@ namespace libcamera {\n> >>>\n> >>>  LOG_DEFINE_CATEGORY(V4L2Subdev)\n> >>>\n> >>> +/**\n> >>> + * \\typedef SubdevFormatEnum\n> >>> + * \\brief Type definition for the map of image formats and associated sizes\n> >>> + *\n> >>> + * Type definition for the map of media bus codes and associated image\n> >>> + * resolutions used by V4L2Subdevice to report the enumeration of supported\n> >>> + * image formats.\n> >>\n> >> Should/Could we document how to use this new 'type' in here somehow as\n> >> the underlying type is now a bit obfuscated?\n> >>\n> >\n> > Not sure heither how to explain this better than looking at the type,\n> > and seeing it's a map which associates media bus code to a vector of\n> > image resolutions. Ah, see! I just explained what the new type\n> > obscures. Should I add this?\n>\n> Aha - now that's sounding clearer :)\n>\n>\n> > Thanks\n> >   j\n> >\n> >>\n> >>> + */\n> >>> +\n> >>>  /**\n> >>>   * \\struct V4L2SubdeviceFormat\n> >>>   * \\brief The V4L2 sub-device image format and sizes\n> >>> @@ -210,10 +219,9 @@ int V4L2Subdevice::setCompose(unsigned int pad, Rectangle *rect)\n> >>>   * \\return A map of image formats associated with a list of image sizes, or\n> >>>   * an empty map on error or if the pad does not exist\n> >>>   */\n> >>> -const std::map<unsigned int, std::vector<SizeRange>>\n> >>> -V4L2Subdevice::formats(unsigned int pad)\n> >>> +const SubdevFormatEnum V4L2Subdevice::formats(unsigned int pad)\n> >>>  {\n> >>> -\tstd::map<unsigned int, std::vector<SizeRange>> formatMap = {};\n> >>> +\tSubdevFormatEnum formatMap = {};\n> >>>  \tstruct v4l2_subdev_mbus_code_enum mbusEnum = {};\n> >>>  \tint ret;\n> >>>\n> >>>\n> >>\n> >> --\n> >> Regards\n> >> --\n> >> Kieran\n>\n> --\n> Regards\n> --\n> Kieran","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[217.70.183.199])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F411A600FD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Mar 2019 11:45:38 +0100 (CET)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 4CBCCFF80D;\n\tThu, 14 Mar 2019 10:45:37 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Thu, 14 Mar 2019 11:46:14 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190314104614.ie53t67scaejiakm@uno.localdomain>","References":"<20190312121242.2253-1-jacopo@jmondi.org>\n\t<20190312121242.2253-3-jacopo@jmondi.org>\n\t<5d9f88aa-ec55-66c2-842b-e91f5861f9b4@ideasonboard.com>\n\t<20190314101020.pskl7yjwhqjcmj3j@uno.localdomain>\n\t<ad511fe4-c6a3-3a0a-1779-5de2610c2dca@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"nnzh6jpcc6bgqznp\"","Content-Disposition":"inline","In-Reply-To":"<ad511fe4-c6a3-3a0a-1779-5de2610c2dca@ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 14 Mar 2019 10:45:39 -0000"}},{"id":1059,"web_url":"https://patchwork.libcamera.org/comment/1059/","msgid":"<3698334d-c204-6159-931b-df5ad7dcabc5@ideasonboard.com>","date":"2019-03-14T11:03:35","subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn 14/03/2019 10:46, Jacopo Mondi wrote:\n> Hi Kieran,\n> \n> On Thu, Mar 14, 2019 at 10:30:04AM +0000, Kieran Bingham wrote:\n>> Heya,\n>>\n>> On 14/03/2019 10:10, Jacopo Mondi wrote:\n>>> Hi Kieran,\n>>>\n>>> On Tue, Mar 12, 2019 at 12:22:46PM +0000, Kieran Bingham wrote:\n>>>> Hi Jacopo,\n>>>>\n>>>> On 12/03/2019 12:12, Jacopo Mondi wrote:\n>>>>> Provide a type definition for the map used to enumerate the subdevice\n>>>>> image formats and associated sizes.\n>>>>>\n>>>>> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n>>>>> ---\n>>>>>  src/libcamera/include/v4l2_subdevice.h |  5 +++--\n>>>>>  src/libcamera/v4l2_subdevice.cpp       | 14 +++++++++++---\n>>>>>  2 files changed, 14 insertions(+), 5 deletions(-)\n>>>>>\n>>>>> diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h\n>>>>> index 700e66bcddac..15add95a825c 100644\n>>>>> --- a/src/libcamera/include/v4l2_subdevice.h\n>>>>> +++ b/src/libcamera/include/v4l2_subdevice.h\n>>>>> @@ -17,6 +17,8 @@\n>>>>>\n>>>>>  namespace libcamera {\n>>>>>\n>>>>> +typedef std::map<unsigned int, std::vector<SizeRange>> SubdevFormatEnum;\n>>>>\n>>>> Should this have a V4L2 prefix? or is that overkill?\n>>>>\n>>>\n>>> I accept suggestions. To me it's an overkill, but I understand formats\n>>> and V4L2-related APIs are \"V4L2\" prefixed.\n>>>\n>>> What would you do here?\n>>\n>> Not sure - it just stood out as not having the same prefix :)\n>>\n>> Will the V4L2Device need a similiar formatEnum type?\n>>\n>> If so (or if hypothetically so), how would we distinguish between them.\n>>\n>> Or - Would the same 'type' be usable for both? - in which case this\n>> would become V4L2FormatEnum perhaps? (i.e. it's not specific to subdevs)?\n>>\n> \n> Good question. V4L2 devices equally have ENUM_FMT and ENUM_FRAMESIZES,\n> so they could use the same type we use for subdevices.\n> \n> I would move this to geometry, but then I would drop any V4L2\n> reference and use FormatEnum as a type name. Or better, tackle this\n> when we'll eventually handle formats, and store this with the other\n> format-related types in a dedicated header, and leave it here with a\n> \\todo for later.\n\nI guess it depends on how much time you have for this right now.\n\nEither way, it sounds like this 'type' should be \"FormatEnum\" without\nthe prefix if it is generic (and essentially a libcamera type, rather\nthan a V4L2{Device,Subdev} type.)\n\nI'd say it can live here if it doesn't yet have a real home, with a\ntodo: that it will move to 'formats.h' when it exists.\n\n\n> Not sure what to do actually. I would leave it here with a \\todo note,\n> and move it wither to a format header or to geometry if we implement\n> enum formats for V4L2 devices too.\n\nIs geometry a suitable place for it at the moment? or would it also need\na todo: move to formats.h if it was there?\n\n\nHow about keep it here, with the todo: move to formats.h - and that will\nforce us to handle formats.h when we tackle formats on the V4L2Device?\n\n--\nKB\n\n\n\n> Thanks\n>   j\n> \n>>>>> +\n>>>>>  struct V4L2SubdeviceFormat {\n>>>>>  \tuint32_t mbus_code;\n>>>>>  \tuint32_t width;\n>>>>> @@ -42,8 +44,7 @@ public:\n>>>>>  \tint setCrop(unsigned int pad, Rectangle *rect);\n>>>>>  \tint setCompose(unsigned int pad, Rectangle *rect);\n>>>>>\n>>>>> -\tconst std::map<unsigned int, std::vector<SizeRange>>\n>>>>> -\t\t\t\t\t\tformats(unsigned int pad);\n>>>>> +\tconst SubdevFormatEnum formats(unsigned int pad);\n>>>>>\n>>>>>  \tint getFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n>>>>>  \tint setFormat(unsigned int pad, V4L2SubdeviceFormat *format);\n>>>>> diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp\n>>>>> index 7c56ba3ba510..153330bccc97 100644\n>>>>> --- a/src/libcamera/v4l2_subdevice.cpp\n>>>>> +++ b/src/libcamera/v4l2_subdevice.cpp\n>>>>> @@ -28,6 +28,15 @@ namespace libcamera {\n>>>>>\n>>>>>  LOG_DEFINE_CATEGORY(V4L2Subdev)\n>>>>>\n>>>>> +/**\n>>>>> + * \\typedef SubdevFormatEnum\n>>>>> + * \\brief Type definition for the map of image formats and associated sizes\n>>>>> + *\n>>>>> + * Type definition for the map of media bus codes and associated image\n>>>>> + * resolutions used by V4L2Subdevice to report the enumeration of supported\n>>>>> + * image formats.\n>>>>\n>>>> Should/Could we document how to use this new 'type' in here somehow as\n>>>> the underlying type is now a bit obfuscated?\n>>>>\n>>>\n>>> Not sure heither how to explain this better than looking at the type,\n>>> and seeing it's a map which associates media bus code to a vector of\n>>> image resolutions. Ah, see! I just explained what the new type\n>>> obscures. Should I add this?\n>>\n>> Aha - now that's sounding clearer :)\n>>\n>>\n>>> Thanks\n>>>   j\n>>>\n>>>>\n>>>>> + */\n>>>>> +\n>>>>>  /**\n>>>>>   * \\struct V4L2SubdeviceFormat\n>>>>>   * \\brief The V4L2 sub-device image format and sizes\n>>>>> @@ -210,10 +219,9 @@ int V4L2Subdevice::setCompose(unsigned int pad, Rectangle *rect)\n>>>>>   * \\return A map of image formats associated with a list of image sizes, or\n>>>>>   * an empty map on error or if the pad does not exist\n>>>>>   */\n>>>>> -const std::map<unsigned int, std::vector<SizeRange>>\n>>>>> -V4L2Subdevice::formats(unsigned int pad)\n>>>>> +const SubdevFormatEnum V4L2Subdevice::formats(unsigned int pad)\n>>>>>  {\n>>>>> -\tstd::map<unsigned int, std::vector<SizeRange>> formatMap = {};\n>>>>> +\tSubdevFormatEnum formatMap = {};\n>>>>>  \tstruct v4l2_subdev_mbus_code_enum mbusEnum = {};\n>>>>>  \tint ret;\n>>>>>\n>>>>>","headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["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 4A823610B3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Mar 2019 12:03:38 +0100 (CET)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 97B4531C;\n\tThu, 14 Mar 2019 12:03:37 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1552561417;\n\tbh=9Oy/ZWOU+4kGyBXzDb9Ydl23zIKKuHTqtQR+zNnUS3Y=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=XXsmnCSTX8uaXFcx6xhhq8gHLvLR59d0hKxCx3yQpyQwxOac9V6XwCJRgsdAiVaos\n\tV8HXZPwGXFlj6BFr6pmBMrkRAlN04wjHDrhUMMGyabun8LglGx/UlfvJ88S2M0Ib0a\n\tvzmuKJxXuNNH28dw9lwacb/yvVnLpQP2LwyTUMeQ=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20190312121242.2253-1-jacopo@jmondi.org>\n\t<20190312121242.2253-3-jacopo@jmondi.org>\n\t<5d9f88aa-ec55-66c2-842b-e91f5861f9b4@ideasonboard.com>\n\t<20190314101020.pskl7yjwhqjcmj3j@uno.localdomain>\n\t<ad511fe4-c6a3-3a0a-1779-5de2610c2dca@ideasonboard.com>\n\t<20190314104614.ie53t67scaejiakm@uno.localdomain>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Openpgp":"preference=signencrypt","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tsbsRB8KNNvVXBOVNwko86rQqF9drZuw=","Organization":"Ideas on Board","Message-ID":"<3698334d-c204-6159-931b-df5ad7dcabc5@ideasonboard.com>","Date":"Thu, 14 Mar 2019 11:03:35 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101\n\tThunderbird/60.4.0","MIME-Version":"1.0","In-Reply-To":"<20190314104614.ie53t67scaejiakm@uno.localdomain>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v2 02/14] libcamera: v4l2_subdevice:\n\tDefine format enumeration type","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 14 Mar 2019 11:03:38 -0000"}}]