[{"id":3854,"web_url":"https://patchwork.libcamera.org/comment/3854/","msgid":"<20200229103630.GA18738@pendragon.ideasonboard.com>","date":"2020-02-29T10:36:30","subject":"Re: [libcamera-devel] [RFC 1/6] libcamera: Use PixelFormat instead\n\tof unsigned int where appropriate","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Niklas,\n\nThank you for the patch.\n\nOn Fri, Feb 28, 2020 at 04:29:08AM +0100, Niklas Söderlund wrote:\n> Use the PixelFormat instead of unsigned int where a pixel format is to\n> be used. PixelFormat is defined as an unsigned int but is about to be\n> turned into a class to add functionality.\n> \n> There is no functional change in this patch.\n> \n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  src/cam/main.cpp                     | 2 +-\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +-\n>  src/libcamera/pipeline/uvcvideo.cpp  | 4 ++--\n>  src/libcamera/pipeline/vimc.cpp      | 2 +-\n>  src/qcam/format_converter.cpp        | 2 +-\n>  src/qcam/format_converter.h          | 6 ++++--\n>  src/qcam/viewfinder.cpp              | 2 +-\n>  src/qcam/viewfinder.h                | 6 ++++--\n>  8 files changed, 15 insertions(+), 11 deletions(-)\n> \n> diff --git a/src/cam/main.cpp b/src/cam/main.cpp\n> index a38cca959aca05ff..ad4be55fc114fe22 100644\n> --- a/src/cam/main.cpp\n> +++ b/src/cam/main.cpp\n> @@ -281,7 +281,7 @@ int CamApp::infoConfiguration()\n>  \t\tstd::cout << index << \": \" << cfg.toString() << std::endl;\n>  \n>  \t\tconst StreamFormats &formats = cfg.formats();\n> -\t\tfor (unsigned int pixelformat : formats.pixelformats()) {\n> +\t\tfor (PixelFormat pixelformat : formats.pixelformats()) {\n>  \t\t\tstd::cout << \" * Pixelformat: 0x\" << std::hex\n>  \t\t\t\t  << std::setw(8) << pixelformat << \" \"\n>  \t\t\t\t  << formats.range(pixelformat).toString()\n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 387bb070b5050e77..33f97b340716abd0 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -349,7 +349,7 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate()\n>  \n>  \tfor (unsigned int i = 0; i < config_.size(); ++i) {\n>  \t\tStreamConfiguration &cfg = config_[i];\n> -\t\tconst unsigned int pixelFormat = cfg.pixelFormat;\n> +\t\tconst PixelFormat pixelFormat = cfg.pixelFormat;\n>  \t\tconst Size size = cfg.size;\n>  \t\tconst IPU3Stream *stream;\n>  \n> diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp\n> index 29afb121aa46d5d4..cf419e8b25a87389 100644\n> --- a/src/libcamera/pipeline/uvcvideo.cpp\n> +++ b/src/libcamera/pipeline/uvcvideo.cpp\n> @@ -107,10 +107,10 @@ CameraConfiguration::Status UVCCameraConfiguration::validate()\n>  \n>  \tStreamConfiguration &cfg = config_[0];\n>  \tconst StreamFormats &formats = cfg.formats();\n> -\tconst unsigned int pixelFormat = cfg.pixelFormat;\n> +\tconst PixelFormat pixelFormat = cfg.pixelFormat;\n>  \tconst Size size = cfg.size;\n>  \n> -\tconst std::vector<unsigned int> pixelFormats = formats.pixelformats();\n> +\tconst std::vector<PixelFormat> pixelFormats = formats.pixelformats();\n>  \tauto iter = std::find(pixelFormats.begin(), pixelFormats.end(), pixelFormat);\n>  \tif (iter == pixelFormats.end()) {\n>  \t\tcfg.pixelFormat = pixelFormats.front();\n> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\n> index 5d3d12fef30b01b5..93d89729e1faa29f 100644\n> --- a/src/libcamera/pipeline/vimc.cpp\n> +++ b/src/libcamera/pipeline/vimc.cpp\n> @@ -177,7 +177,7 @@ CameraConfiguration *PipelineHandlerVimc::generateConfiguration(Camera *camera,\n>  \n>  \tImageFormats formats;\n>  \n> -\tfor (unsigned int pixelformat : pixelformats) {\n> +\tfor (PixelFormat pixelformat : pixelformats) {\n>  \t\t/* The scaler hardcodes a x3 scale-up ratio. */\n>  \t\tstd::vector<SizeRange> sizes{\n>  \t\t\tSizeRange{ 48, 48, 4096, 2160 }\n> diff --git a/src/qcam/format_converter.cpp b/src/qcam/format_converter.cpp\n> index 383d482231400a44..368cb43fbf17ae4d 100644\n> --- a/src/qcam/format_converter.cpp\n> +++ b/src/qcam/format_converter.cpp\n> @@ -27,7 +27,7 @@\n>  #define CLIP(x)\t\t\tCLAMP(x,0,255)\n>  #endif\n>  \n> -int FormatConverter::configure(unsigned int format, unsigned int width,\n> +int FormatConverter::configure(libcamera::PixelFormat format, unsigned int width,\n>  \t\t\t       unsigned int height)\n>  {\n>  \tswitch (format) {\n> diff --git a/src/qcam/format_converter.h b/src/qcam/format_converter.h\n> index 391e6a44d4ba7d4b..ff488b994ade3c3e 100644\n> --- a/src/qcam/format_converter.h\n> +++ b/src/qcam/format_converter.h\n> @@ -9,12 +9,14 @@\n>  \n>  #include <stddef.h>\n>  \n> +#include <libcamera/pixelformats.h>\n> +\n>  class QImage;\n>  \n>  class FormatConverter\n>  {\n>  public:\n> -\tint configure(unsigned int format, unsigned int width,\n> +\tint configure(libcamera::PixelFormat format, unsigned int width,\n>  \t\t      unsigned int height);\n>  \n>  \tvoid convert(const unsigned char *src, size_t size, QImage *dst);\n> @@ -31,7 +33,7 @@ private:\n>  \tvoid convertRGB(const unsigned char *src, unsigned char *dst);\n>  \tvoid convertYUV(const unsigned char *src, unsigned char *dst);\n>  \n> -\tunsigned int format_;\n> +\tlibcamera::PixelFormat format_;\n>  \tunsigned int width_;\n>  \tunsigned int height_;\n>  \n> diff --git a/src/qcam/viewfinder.cpp b/src/qcam/viewfinder.cpp\n> index d51eebb10aef8663..0ebb8edd49efd1b1 100644\n> --- a/src/qcam/viewfinder.cpp\n> +++ b/src/qcam/viewfinder.cpp\n> @@ -44,7 +44,7 @@ QImage ViewFinder::getCurrentImage()\n>  \treturn image_->copy();\n>  }\n>  \n> -int ViewFinder::setFormat(unsigned int format, unsigned int width,\n> +int ViewFinder::setFormat(libcamera::PixelFormat format, unsigned int width,\n>  \t\t\t  unsigned int height)\n>  {\n>  \tint ret;\n> diff --git a/src/qcam/viewfinder.h b/src/qcam/viewfinder.h\n> index 2ba28b60345b0cb3..2668aa4457657ef9 100644\n> --- a/src/qcam/viewfinder.h\n> +++ b/src/qcam/viewfinder.h\n> @@ -10,6 +10,8 @@\n>  #include <QMutex>\n>  #include <QWidget>\n>  \n> +#include <libcamera/pixelformats.h>\n> +\n>  #include \"format_converter.h\"\n>  \n>  class QImage;\n> @@ -20,7 +22,7 @@ public:\n>  \tViewFinder(QWidget *parent);\n>  \t~ViewFinder();\n>  \n> -\tint setFormat(unsigned int format, unsigned int width,\n> +\tint setFormat(libcamera::PixelFormat format, unsigned int width,\n>  \t\t      unsigned int height);\n>  \tvoid display(const unsigned char *rgb, size_t size);\n>  \n> @@ -31,7 +33,7 @@ protected:\n>  \tQSize sizeHint() const override;\n>  \n>  private:\n> -\tunsigned int format_;\n> +\tlibcamera::PixelFormat format_;\n>  \tunsigned int width_;\n>  \tunsigned int height_;\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 8332460429\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 29 Feb 2020 11:36:54 +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 EA4F6734;\n\tSat, 29 Feb 2020 11:36:53 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1582972614;\n\tbh=Y9ZmHX+hvcYkmeZGYYei/Z9ljjGxgM7BUG5fPMo4AKY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=oyxUrdkQQSzYRjNlZIkfK2Db+iRnzNquPkZotOozKW2cMFJqdGw12SYzb8g2vwAf+\n\taB2jheh+rVXeH34rvdYjHey73IBwY4CUoBPVCl2FXS1em9ICOieortjDrSTw+YtHlM\n\tdE2O2ESXagOjsZA1uwPEXdNPqMOHh0lFi1W8XbjQ=","Date":"Sat, 29 Feb 2020 12:36:30 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20200229103630.GA18738@pendragon.ideasonboard.com>","References":"<20200228032913.497826-1-niklas.soderlund@ragnatech.se>\n\t<20200228032913.497826-2-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20200228032913.497826-2-niklas.soderlund@ragnatech.se>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [RFC 1/6] libcamera: Use PixelFormat instead\n\tof unsigned int where appropriate","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>","X-List-Received-Date":"Sat, 29 Feb 2020 10:36:54 -0000"}}]