[{"id":11952,"web_url":"https://patchwork.libcamera.org/comment/11952/","msgid":"<20200808202731.GF6186@pendragon.ideasonboard.com>","date":"2020-08-08T20:27:31","subject":"Re: [libcamera-devel] [PATCH 7/7] qcam: dng_writer: Record camera\n\tmodel","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 Thu, Aug 06, 2020 at 03:09:37PM +0200, Niklas Söderlund wrote:\n> Record the model property of the camera if available.\n> \n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/qcam/dng_writer.cpp | 13 ++++++++++---\n>  1 file changed, 10 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/qcam/dng_writer.cpp b/src/qcam/dng_writer.cpp\n> index b5b81f0637b545af..3556dad16fd71b64 100644\n> --- a/src/qcam/dng_writer.cpp\n> +++ b/src/qcam/dng_writer.cpp\n> @@ -15,6 +15,7 @@\n>  \n>  #include <libcamera/control_ids.h>\n>  #include <libcamera/formats.h>\n> +#include <libcamera/property_ids.h>\n>  \n>  using namespace libcamera;\n>  \n> @@ -352,6 +353,8 @@ int DNGWriter::write(const char *filename, const Camera *camera,\n>  \t\t     const ControlList &metadata,\n>  \t\t     const FrameBuffer *buffer, const void *data)\n>  {\n> +\tconst ControlList &cameraProperties = camera->properties();\n> +\n>  \tconst auto it = formatInfo.find(config.pixelFormat);\n>  \tif (it == formatInfo.cend()) {\n>  \t\tstd::cerr << \"Unsupported pixel format\" << std::endl;\n> @@ -386,9 +389,13 @@ int DNGWriter::write(const char *filename, const Camera *camera,\n>  \tTIFFSetField(tif, TIFFTAG_DNGBACKWARDVERSION, version);\n>  \tTIFFSetField(tif, TIFFTAG_FILLORDER, FILLORDER_MSB2LSB);\n>  \tTIFFSetField(tif, TIFFTAG_MAKE, \"libcamera\");\n> -\t/* \\todo Report a real model string instead of id. */\n> -\tTIFFSetField(tif, TIFFTAG_MODEL, camera->id().c_str());\n> -\tTIFFSetField(tif, TIFFTAG_UNIQUECAMERAMODEL, camera->id().c_str());\n> +\n> +\tif (cameraProperties.contains(properties::Model)) {\n> +\t\tstd::string model = cameraProperties.get(properties::Model);\n> +\t\tTIFFSetField(tif, TIFFTAG_MODEL, model.c_str());\n> +\t\tTIFFSetField(tif, TIFFTAG_UNIQUECAMERAMODEL, model.c_str());\n> +\t}\n\nI'll review this after the discussion on the model properties completes,\nbut please be already aware that these two TIFF fields are defined as\nASCII strings, not UTF-8.\n\n> +\n>  \tTIFFSetField(tif, TIFFTAG_SOFTWARE, \"qcam\");\n>  \tTIFFSetField(tif, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);\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 C725CBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat,  8 Aug 2020 20:27:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 45D9E60DF1;\n\tSat,  8 Aug 2020 22:27:49 +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 BBBBA6038D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  8 Aug 2020 22:27:47 +0200 (CEST)","from pendragon.ideasonboard.com (85-76-78-184-nat.elisa-mobile.fi\n\t[85.76.78.184])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B4EE4F9;\n\tSat,  8 Aug 2020 22:27:46 +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=\"rorhw+eD\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1596918467;\n\tbh=Gv4jAMpXqzW5E8TddBi78d4IsQHFCruXQKBwlOz+qmU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=rorhw+eDWXxxKeB+K880Zzvro6uczIGgds+4+N3MaKQQYYjOU5TxbSWb2EA/xGoM7\n\tSTsj4GzEOnRS5x/19a8ltnlULtds2lLC2Z3CkZXgLeUfq/RckjM0Ne0pK1OByWkhko\n\tPgynEb62zNCn/8d6UW+rW5iSguKe/l2OJYdmASDg=","Date":"Sat, 8 Aug 2020 23:27:31 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Message-ID":"<20200808202731.GF6186@pendragon.ideasonboard.com>","References":"<20200806130937.2991606-1-niklas.soderlund@ragnatech.se>\n\t<20200806130937.2991606-8-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200806130937.2991606-8-niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH 7/7] qcam: dng_writer: Record camera\n\tmodel","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=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]