[{"id":10872,"web_url":"https://patchwork.libcamera.org/comment/10872/","msgid":"<20200626013248.GT5865@pendragon.ideasonboard.com>","date":"2020-06-26T01:32:48","subject":"Re: [libcamera-devel] [PATCH v2 2/6] libcamera: v4l2_subdevice:\n\tProvide Formats typedef","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\nMaybe s/typedef/type definition/ (or type alias) in the subject, as it's\nnot a C typedef ?\n\nOn Tue, Jun 09, 2020 at 01:28:40AM +0200, Jacopo Mondi wrote:\n> Provide a type definition for ImageFormats<uint32_t> to allow\n> users of V4L2Subdevice to refer to it as V4L2Subdevice::Formats.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  include/libcamera/internal/camera_sensor.h  |  6 ++----\n>  include/libcamera/internal/v4l2_subdevice.h |  4 +++-\n>  src/libcamera/v4l2_subdevice.cpp            | 10 ++++++++--\n>  test/v4l2_subdevice/list_formats.cpp        |  2 +-\n>  4 files changed, 14 insertions(+), 8 deletions(-)\n> \n> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h\n> index d5814a26a121..06c8292ca301 100644\n> --- a/include/libcamera/internal/camera_sensor.h\n> +++ b/include/libcamera/internal/camera_sensor.h\n> @@ -16,13 +16,11 @@\n>  \n>  #include \"libcamera/internal/formats.h\"\n>  #include \"libcamera/internal/log.h\"\n> +#include \"libcamera/internal/v4l2_subdevice.h\"\n>  \n>  namespace libcamera {\n>  \n>  class MediaEntity;\n> -class V4L2Subdevice;\n> -\n> -struct V4L2SubdeviceFormat;\n>  \n>  struct CameraSensorInfo {\n>  \tstd::string model;\n> @@ -75,7 +73,7 @@ private:\n>  \n>  \tstd::string model_;\n>  \n> -\tImageFormats<uint32_t> formats_;\n> +\tV4L2Subdevice::Formats formats_;\n>  \tSize resolution_;\n>  \tstd::vector<unsigned int> mbusCodes_;\n>  \tstd::vector<Size> sizes_;\n> diff --git a/include/libcamera/internal/v4l2_subdevice.h b/include/libcamera/internal/v4l2_subdevice.h\n> index f811d316dada..c678fc87e80f 100644\n> --- a/include/libcamera/internal/v4l2_subdevice.h\n> +++ b/include/libcamera/internal/v4l2_subdevice.h\n> @@ -32,6 +32,8 @@ struct V4L2SubdeviceFormat {\n>  class V4L2Subdevice : public V4L2Device\n>  {\n>  public:\n> +\tusing Formats = ImageFormats<uint32_t>;\n> +\n>  \tenum Whence {\n>  \t\tActiveFormat,\n>  \t\tTryFormat,\n> @@ -51,7 +53,7 @@ public:\n>  \tint setSelection(unsigned int pad, unsigned int target,\n>  \t\t\t Rectangle *rect);\n>  \n> -\tImageFormats<uint32_t> formats(unsigned int pad);\n> +\tFormats formats(unsigned int pad);\n>  \n>  \tint getFormat(unsigned int pad, V4L2SubdeviceFormat *format,\n>  \t\t      Whence whence = ActiveFormat);\n> diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp\n> index 9fa20e84a904..de7d0c0db2b6 100644\n> --- a/src/libcamera/v4l2_subdevice.cpp\n> +++ b/src/libcamera/v4l2_subdevice.cpp\n> @@ -197,6 +197,12 @@ uint8_t V4L2SubdeviceFormat::bitsPerPixel() const\n>   * any device left open will be closed, and any resources released.\n>   */\n>  \n> +/**\n> + * \\typedef V4L2Subdevice::Formats\n> + * \\brief Enumeration of uint32_t media bus codes associated to image\n> + * resolutions\n\nShould this mention ImageFormats ? Maybe\n\n * \\brief An ImageFormats specialization mapping uint32_t media bus codes to\n * image resolutions\n\n?\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> + */\n> +\n>  /**\n>   * \\enum V4L2Subdevice::Whence\n>   * \\brief Specify the type of format for getFormat() and setFormat() operations\n> @@ -320,9 +326,9 @@ int V4L2Subdevice::setSelection(unsigned int pad, unsigned int target,\n>   *\n>   * \\return A list of the supported device formats\n>   */\n> -ImageFormats<uint32_t> V4L2Subdevice::formats(unsigned int pad)\n> +V4L2Subdevice::Formats V4L2Subdevice::formats(unsigned int pad)\n>  {\n> -\tImageFormats<uint32_t> formats;\n> +\tFormats formats;\n>  \n>  \tif (pad >= entity_->pads().size()) {\n>  \t\tLOG(V4L2, Error) << \"Invalid pad: \" << pad;\n> diff --git a/test/v4l2_subdevice/list_formats.cpp b/test/v4l2_subdevice/list_formats.cpp\n> index 3e8d4cdba045..7f0b3333f617 100644\n> --- a/test/v4l2_subdevice/list_formats.cpp\n> +++ b/test/v4l2_subdevice/list_formats.cpp\n> @@ -47,7 +47,7 @@ void ListFormatsTest::printFormats(unsigned int pad,\n>  int ListFormatsTest::run()\n>  {\n>  \t/* List all formats available on existing \"Scaler\" pads. */\n> -\tImageFormats<uint32_t> formats;\n> +\tV4L2Subdevice::Formats formats;\n>  \n>  \tformats = scaler_->formats(0);\n>  \tif (formats.isEmpty()) {","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 15070C2E65\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 26 Jun 2020 01:32:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9E611609C5;\n\tFri, 26 Jun 2020 03:32:52 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F2A7F603BA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 26 Jun 2020 03:32:50 +0200 (CEST)","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 2DA41595;\n\tFri, 26 Jun 2020 03:32:49 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Q2SKChx9\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1593135170;\n\tbh=cXhMz20+qQrB8K+f+zzqJE23+MrKwBUw4vVmA93oL88=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Q2SKChx9jN+PXWAPJ5DUQc8pewEkqDOvB/r1MSECVVx+q9s6ydRfhr9KaGL5kPU16\n\tbQY+taxkCVUQQE95HH1NpV9PcOr/pKBb4UjnUrMBkZ8sAtc2w9rgvfYHuOaEeODN1g\n\t1+f9rcciwxEFgv4a0jBbwD4+f9EmJzM+ognRhu1A=","Date":"Fri, 26 Jun 2020 04:32:48 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<20200626013248.GT5865@pendragon.ideasonboard.com>","References":"<20200608232844.10150-1-jacopo@jmondi.org>\n\t<20200608232844.10150-3-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200608232844.10150-3-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [PATCH v2 2/6] libcamera: v4l2_subdevice:\n\tProvide Formats typedef","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>"}}]