[{"id":25441,"web_url":"https://patchwork.libcamera.org/comment/25441/","msgid":"<Y03zvN/cZY1RXC+7@pendragon.ideasonboard.com>","date":"2022-10-18T00:30:52","subject":"Re: [libcamera-devel] [PATCH 3/3] cam: dng_writer: Add support for\n\t8-bit raw formats","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Paul,\n\nThank you for the patch.\n\nOn Tue, Oct 18, 2022 at 02:17:41AM +0900, Paul Elder via libcamera-devel wrote:\n> Add support for 8-bit raw formats in DNGWriter.\n> \n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> ---\n>  src/cam/dng_writer.cpp | 33 +++++++++++++++++++++++++++++++++\n>  1 file changed, 33 insertions(+)\n> \n> diff --git a/src/cam/dng_writer.cpp b/src/cam/dng_writer.cpp\n> index 6dd7d0f4..47ebe033 100644\n> --- a/src/cam/dng_writer.cpp\n> +++ b/src/cam/dng_writer.cpp\n> @@ -126,6 +126,15 @@ struct Matrix3d {\n>  \tfloat m[9];\n>  };\n>  \n> +void packScanlineSBGGR8(void *output, const void *input, unsigned int width)\n> +{\n> +\tconst uint8_t *in = static_cast<const uint8_t *>(input);\n> +\tuint8_t *out = static_cast<uint8_t *>(output);\n> +\n> +\tfor (unsigned int i = 0; i < width; i++)\n> +\t\tout[i] = in[i];\n\n\tstd::copy(in, in + width, out);\n\nor memcpy().\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> +}\n> +\n>  void packScanlineSBGGR10P(void *output, const void *input, unsigned int width)\n>  {\n>  \tconst uint8_t *in = static_cast<const uint8_t *>(input);\n> @@ -274,6 +283,30 @@ void thumbScanlineIPU3([[maybe_unused]] const FormatInfo &info, void *output,\n>  }\n>  \n>  static const std::map<PixelFormat, FormatInfo> formatInfo = {\n> +\t{ formats::SBGGR8, {\n> +\t\t.bitsPerSample = 8,\n> +\t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n> +\t\t.packScanline = packScanlineSBGGR8,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> +\t} },\n> +\t{ formats::SGBRG8, {\n> +\t\t.bitsPerSample = 8,\n> +\t\t.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n> +\t\t.packScanline = packScanlineSBGGR8,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> +\t} },\n> +\t{ formats::SGRBG8, {\n> +\t\t.bitsPerSample = 8,\n> +\t\t.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n> +\t\t.packScanline = packScanlineSBGGR8,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> +\t} },\n> +\t{ formats::SRGGB8, {\n> +\t\t.bitsPerSample = 8,\n> +\t\t.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n> +\t\t.packScanline = packScanlineSBGGR8,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> +\t} },\n>  \t{ formats::SBGGR10_CSI2P, {\n>  \t\t.bitsPerSample = 10,\n>  \t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },","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 477DDBD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 18 Oct 2022 00:31:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5C68462E09;\n\tTue, 18 Oct 2022 02:31:18 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4797061F55\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 18 Oct 2022 02:31:17 +0200 (CEST)","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 8F53D8F8;\n\tTue, 18 Oct 2022 02:31:16 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1666053078;\n\tbh=5s8GnP2SCSME10xc5T1EmCa5o7Vrt4Fw3heOm6ocAr0=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=qPHtlioMabpgqeXeU8oXlWaafXOxxodcr8BuSud7zoRooGBVNg6AHoUpY5ca+hypq\n\t/MKFqkg4eSjhqZF1opZBxweyRQ56i0iFjJHXrTRWU980CHP8BUcVsbqSBRxM0Zw/Mh\n\tayisl7XpF/mn5482kwPkG5sfIvo3Z6ER+Z9wGSG6DJ2jsbVEfoX3lDZT7ANyIG3qNl\n\teyntC/uB71q2BxzbTlsbuBtov1eAS+gJXKIWc02sPPR6OKQkY8shAhlqXYtcvBn6ih\n\tTGCJi2RSHYU0d5aWnOtX1WljSvlnu5Rp9ZeVtDqeNnS//oHQ5JeG057GFbMuDRBco4\n\tk9toceYlEIdkw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1666053076;\n\tbh=5s8GnP2SCSME10xc5T1EmCa5o7Vrt4Fw3heOm6ocAr0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=ZJpB72KQtc+u4gnKGA4eHDSHljKtHi81j9Qn3JEhkHFJn3lS7rsit20dLnQJn6so7\n\tRQe+2dicVtC8gISS+KA/jDMJBQ7h63BuMb4sKYu3e5ilA/Ue/Wa6uSsgkoAxCY4rYn\n\tSSY/X6DTXFpdE6/NRQG3Fe2W7JD1YTJDoHbsqgdQ="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"ZJpB72KQ\"; dkim-atps=neutral","Date":"Tue, 18 Oct 2022 03:30:52 +0300","To":"Paul Elder <paul.elder@ideasonboard.com>","Message-ID":"<Y03zvN/cZY1RXC+7@pendragon.ideasonboard.com>","References":"<20221017171741.3803909-1-paul.elder@ideasonboard.com>\n\t<20221017171741.3803909-4-paul.elder@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20221017171741.3803909-4-paul.elder@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 3/3] cam: dng_writer: Add support for\n\t8-bit raw formats","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>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]