[{"id":29927,"web_url":"https://patchwork.libcamera.org/comment/29927/","msgid":"<20240613160816.GA6806@pendragon.ideasonboard.com>","date":"2024-06-13T16:08:16","subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Dan,\n\nThank you for the patch.\n\nOn Thu, Jun 13, 2024 at 04:09:49PM +0100, Daniel Scally wrote:\n> Add support for RAW16 formats to the DNGWriter helpers so that we can\n> produce dng files from the mali-c55.\n> \n> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  src/apps/common/dng_writer.cpp | 32 ++++++++++++++++++++++++++++++++\n>  1 file changed, 32 insertions(+)\n> \n> diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp\n> index 59f1fa23..150782e8 100644\n> --- a/src/apps/common/dng_writer.cpp\n> +++ b/src/apps/common/dng_writer.cpp\n> @@ -134,6 +134,14 @@ void packScanlineSBGGR8(void *output, const void *input, unsigned int width)\n>  \tstd::copy(in, in + width, out);\n>  }\n>  \n> +void packScanlineSBGGR16(void *output, const void *input, unsigned int width)\n> +{\n> +\tconst uint16_t *in = static_cast<const uint16_t *>(input);\n> +\tuint16_t *out = static_cast<uint16_t *>(output);\n> +\n> +\tstd::copy(in, in + width, out);\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> @@ -307,6 +315,30 @@ static const std::map<PixelFormat, FormatInfo> formatInfo = {\n>  \t\t.packScanline = packScanlineSBGGR8,\n>  \t\t.thumbScanline = thumbScanlineSBGGRxxP,\n>  \t} },\n> +\t{ formats::SBGGR16, {\n> +\t\t.bitsPerSample = 16,\n> +\t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n> +\t\t.packScanline = packScanlineSBGGR16,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> +\t} },\n> +\t{ formats::SGBRG16, {\n> +\t\t.bitsPerSample = 16,\n> +\t\t.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n> +\t\t.packScanline = packScanlineSBGGR16,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> +\t} },\n> +\t{ formats::SGRBG16, {\n> +\t\t.bitsPerSample = 16,\n> +\t\t.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n> +\t\t.packScanline = packScanlineSBGGR16,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> +\t} },\n> +\t{ formats::SRGGB16, {\n> +\t\t.bitsPerSample = 16,\n> +\t\t.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n> +\t\t.packScanline = packScanlineSBGGR16,\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 286C3BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 13 Jun 2024 16:08:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 50F686548D;\n\tThu, 13 Jun 2024 18:08:38 +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 B676B6548B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 13 Jun 2024 18:08:36 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 68132675;\n\tThu, 13 Jun 2024 18:08:22 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"MgfaZnbc\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1718294902;\n\tbh=wU5f+4y2eTbuBnspAr5Pu+Xsmy5pOPuMvQfV6bLYPZI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=MgfaZnbcriCkBdSSMFlvlP52i5pgBz2NOFTB2skhH9W4wym5oHViC53KqeSOsem/3\n\tPROTUCzRAP4bQT+2onlNPoc6gIKpq8vSPBVTQH3fo+Ust7tTYjezzSkWTAnJgHGA54\n\tvFS0maBngF/v2ZOrqmLXBIuiYsoA515aPWA1+gYU=","Date":"Thu, 13 Jun 2024 19:08:16 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Daniel Scally <dan.scally@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","Message-ID":"<20240613160816.GA6806@pendragon.ideasonboard.com>","References":"<20240613150950.1035299-1-dan.scally@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240613150950.1035299-1-dan.scally@ideasonboard.com>","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":29929,"web_url":"https://patchwork.libcamera.org/comment/29929/","msgid":"<yiu3e2zdcf2i5ifoa3ix4yhjp2jhx7oxks5ksd4fjivebla4fu@236yfz3uwup2>","date":"2024-06-13T16:14:11","subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Hi Dan,\n\nthank you for the patch.\n\nOn Thu, Jun 13, 2024 at 04:09:49PM +0100, Daniel Scally wrote:\n> Add support for RAW16 formats to the DNGWriter helpers so that we can\n> produce dng files from the mali-c55.\n> \n> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> ---\n>  src/apps/common/dng_writer.cpp | 32 ++++++++++++++++++++++++++++++++\n>  1 file changed, 32 insertions(+)\n> \n> diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp\n> index 59f1fa23..150782e8 100644\n> --- a/src/apps/common/dng_writer.cpp\n> +++ b/src/apps/common/dng_writer.cpp\n> @@ -134,6 +134,14 @@ void packScanlineSBGGR8(void *output, const void *input, unsigned int width)\n>  \tstd::copy(in, in + width, out);\n>  }\n>  \n> +void packScanlineSBGGR16(void *output, const void *input, unsigned int width)\n> +{\n> +\tconst uint16_t *in = static_cast<const uint16_t *>(input);\n> +\tuint16_t *out = static_cast<uint16_t *>(output);\n> +\n> +\tstd::copy(in, in + width, out);\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> @@ -307,6 +315,30 @@ static const std::map<PixelFormat, FormatInfo> formatInfo = {\n>  \t\t.packScanline = packScanlineSBGGR8,\n>  \t\t.thumbScanline = thumbScanlineSBGGRxxP,\n>  \t} },\n> +\t{ formats::SBGGR16, {\n> +\t\t.bitsPerSample = 16,\n> +\t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n> +\t\t.packScanline = packScanlineSBGGR16,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n\nI had to look twice to understand why the BGGR16 function is used for\nevery pattern. For me a \"packScanlineRaw16\" would be easier to\nunderstand.\n\nWhatever you prefer.\n\nReviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> \n\n> +\t} },\n> +\t{ formats::SGBRG16, {\n> +\t\t.bitsPerSample = 16,\n> +\t\t.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n> +\t\t.packScanline = packScanlineSBGGR16,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> +\t} },\n> +\t{ formats::SGRBG16, {\n> +\t\t.bitsPerSample = 16,\n> +\t\t.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n> +\t\t.packScanline = packScanlineSBGGR16,\n> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> +\t} },\n> +\t{ formats::SRGGB16, {\n> +\t\t.bitsPerSample = 16,\n> +\t\t.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n> +\t\t.packScanline = packScanlineSBGGR16,\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 },\n> -- \n> 2.30.2\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 E0D98BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 13 Jun 2024 16:14:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 21C6365494;\n\tThu, 13 Jun 2024 18:14:15 +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 16E596548D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 13 Jun 2024 18:14:14 +0200 (CEST)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:3fed:9d83:54f9:6b93])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C1E8B675;\n\tThu, 13 Jun 2024 18:13:59 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"jXRsEta5\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1718295239;\n\tbh=tQXLudiqMo5ZjZdpDXaATv1mqkJOJ3WGLW+e3sgGoKE=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=jXRsEta5hoh6ImYdKNE5tr1pncZPd62qVihzNkyetAbY3FCbiq4ACglxmQueO52Yq\n\toBsCakL1DLcFIgB65eK5hrsbFf1zFPrY0AqWa8CEyw83GeLjOabu1+M/AUnqQ0qk0O\n\tNtnknls1LdsjAIr7TbQDXQLQF/wV1drWx429htAg=","Date":"Thu, 13 Jun 2024 18:14:11 +0200","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Daniel Scally <dan.scally@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","Message-ID":"<yiu3e2zdcf2i5ifoa3ix4yhjp2jhx7oxks5ksd4fjivebla4fu@236yfz3uwup2>","References":"<20240613150950.1035299-1-dan.scally@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240613150950.1035299-1-dan.scally@ideasonboard.com>","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":29931,"web_url":"https://patchwork.libcamera.org/comment/29931/","msgid":"<20240613163038.GA10955@pendragon.ideasonboard.com>","date":"2024-06-13T16:30:38","subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Thu, Jun 13, 2024 at 06:14:11PM +0200, Stefan Klug wrote:\n> On Thu, Jun 13, 2024 at 04:09:49PM +0100, Daniel Scally wrote:\n> > Add support for RAW16 formats to the DNGWriter helpers so that we can\n> > produce dng files from the mali-c55.\n> > \n> > Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> > ---\n> >  src/apps/common/dng_writer.cpp | 32 ++++++++++++++++++++++++++++++++\n> >  1 file changed, 32 insertions(+)\n> > \n> > diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp\n> > index 59f1fa23..150782e8 100644\n> > --- a/src/apps/common/dng_writer.cpp\n> > +++ b/src/apps/common/dng_writer.cpp\n> > @@ -134,6 +134,14 @@ void packScanlineSBGGR8(void *output, const void *input, unsigned int width)\n> >  \tstd::copy(in, in + width, out);\n> >  }\n> >  \n> > +void packScanlineSBGGR16(void *output, const void *input, unsigned int width)\n> > +{\n> > +\tconst uint16_t *in = static_cast<const uint16_t *>(input);\n> > +\tuint16_t *out = static_cast<uint16_t *>(output);\n> > +\n> > +\tstd::copy(in, in + width, out);\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> > @@ -307,6 +315,30 @@ static const std::map<PixelFormat, FormatInfo> formatInfo = {\n> >  \t\t.packScanline = packScanlineSBGGR8,\n> >  \t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> >  \t} },\n> > +\t{ formats::SBGGR16, {\n> > +\t\t.bitsPerSample = 16,\n> > +\t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n> > +\t\t.packScanline = packScanlineSBGGR16,\n> > +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> \n> I had to look twice to understand why the BGGR16 function is used for\n> every pattern. For me a \"packScanlineRaw16\" would be easier to\n> understand.\n\nGood idea.\n\n> Whatever you prefer.\n> \n> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> \n> \n> > +\t} },\n> > +\t{ formats::SGBRG16, {\n> > +\t\t.bitsPerSample = 16,\n> > +\t\t.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n> > +\t\t.packScanline = packScanlineSBGGR16,\n> > +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> > +\t} },\n> > +\t{ formats::SGRBG16, {\n> > +\t\t.bitsPerSample = 16,\n> > +\t\t.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n> > +\t\t.packScanline = packScanlineSBGGR16,\n> > +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> > +\t} },\n> > +\t{ formats::SRGGB16, {\n> > +\t\t.bitsPerSample = 16,\n> > +\t\t.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n> > +\t\t.packScanline = packScanlineSBGGR16,\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 08C89C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 13 Jun 2024 16:31:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1D2356549E;\n\tThu, 13 Jun 2024 18:31:01 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4B6C66548D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 13 Jun 2024 18:30:59 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id DA2B8675;\n\tThu, 13 Jun 2024 18:30:44 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"cIMpALjj\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1718296245;\n\tbh=Nch/KqqQWHyLg45YwRbjNpoPqjanFxePOSjS2kmqTA4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=cIMpALjjjSnmIlCIPysrXb3YIs85zJk2o3LkTfWhSgg37ZVNyi3rnIUfRdT7r6Sbp\n\tVfOZHQLYCrkpyh1Kc5SfY6YeM9+4QhIr1vGCzf/LsGoqkCTu2MRio5SQcME+F9qjQQ\n\trHI5z5kp9VDGHFw7NHKaA1Bw2uHYmTxdaHqNwTnc=","Date":"Thu, 13 Jun 2024 19:30:38 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"Daniel Scally <dan.scally@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","Message-ID":"<20240613163038.GA10955@pendragon.ideasonboard.com>","References":"<20240613150950.1035299-1-dan.scally@ideasonboard.com>\n\t<yiu3e2zdcf2i5ifoa3ix4yhjp2jhx7oxks5ksd4fjivebla4fu@236yfz3uwup2>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<yiu3e2zdcf2i5ifoa3ix4yhjp2jhx7oxks5ksd4fjivebla4fu@236yfz3uwup2>","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":29941,"web_url":"https://patchwork.libcamera.org/comment/29941/","msgid":"<4f9e76f0-7ab8-4e16-9f9e-4993bd7cabb6@ideasonboard.com>","date":"2024-06-13T21:44:08","subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"On 13/06/2024 17:30, Laurent Pinchart wrote:\n> On Thu, Jun 13, 2024 at 06:14:11PM +0200, Stefan Klug wrote:\n>> On Thu, Jun 13, 2024 at 04:09:49PM +0100, Daniel Scally wrote:\n>>> Add support for RAW16 formats to the DNGWriter helpers so that we can\n>>> produce dng files from the mali-c55.\n>>>\n>>> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n>>> ---\n>>>   src/apps/common/dng_writer.cpp | 32 ++++++++++++++++++++++++++++++++\n>>>   1 file changed, 32 insertions(+)\n>>>\n>>> diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp\n>>> index 59f1fa23..150782e8 100644\n>>> --- a/src/apps/common/dng_writer.cpp\n>>> +++ b/src/apps/common/dng_writer.cpp\n>>> @@ -134,6 +134,14 @@ void packScanlineSBGGR8(void *output, const void *input, unsigned int width)\n>>>   \tstd::copy(in, in + width, out);\n>>>   }\n>>>   \n>>> +void packScanlineSBGGR16(void *output, const void *input, unsigned int width)\n>>> +{\n>>> +\tconst uint16_t *in = static_cast<const uint16_t *>(input);\n>>> +\tuint16_t *out = static_cast<uint16_t *>(output);\n>>> +\n>>> +\tstd::copy(in, in + width, out);\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>>> @@ -307,6 +315,30 @@ static const std::map<PixelFormat, FormatInfo> formatInfo = {\n>>>   \t\t.packScanline = packScanlineSBGGR8,\n>>>   \t\t.thumbScanline = thumbScanlineSBGGRxxP,\n>>>   \t} },\n>>> +\t{ formats::SBGGR16, {\n>>> +\t\t.bitsPerSample = 16,\n>>> +\t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n>>> +\t\t.packScanline = packScanlineSBGGR16,\n>>> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n>> I had to look twice to understand why the BGGR16 function is used for\n>> every pattern. For me a \"packScanlineRaw16\" would be easier to\n>> understand.\n> Good idea.\n\nAck! I was kinda following the crowd here, we also have packScanlineSBGGR8, packScanlineSBGGR10P and \npackScanlineSBGGR12P that are used regardless of the format's Bayer Order. Shall I rename those too?\n>\n>> Whatever you prefer.\n>>\n>> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com>\n>>\n>>> +\t} },\n>>> +\t{ formats::SGBRG16, {\n>>> +\t\t.bitsPerSample = 16,\n>>> +\t\t.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n>>> +\t\t.packScanline = packScanlineSBGGR16,\n>>> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n>>> +\t} },\n>>> +\t{ formats::SGRBG16, {\n>>> +\t\t.bitsPerSample = 16,\n>>> +\t\t.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n>>> +\t\t.packScanline = packScanlineSBGGR16,\n>>> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n>>> +\t} },\n>>> +\t{ formats::SRGGB16, {\n>>> +\t\t.bitsPerSample = 16,\n>>> +\t\t.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n>>> +\t\t.packScanline = packScanlineSBGGR16,\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 3D8D7C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 13 Jun 2024 21:44:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1EC6F6548F;\n\tThu, 13 Jun 2024 23:44:13 +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 7F88A6548B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 13 Jun 2024 23:44:11 +0200 (CEST)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id EF5F84CC;\n\tThu, 13 Jun 2024 23:43:56 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"rvVb/yJp\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1718315037;\n\tbh=bRx4zYVZajCNwp73fLc55CcSkHAw4B7espd1CNWAOpY=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=rvVb/yJpHPQQ4u42m2uVvYfdyAetWvvRcWIvSaYO+E0vg/yGbveHvSYKwzmNx9sSA\n\tV0ZMRMc7vJtdhpOaXPTkTcx+HbEE9IAY9zroPg505Ek6274sBN5NT3ZmJXJ/qx+GAd\n\tTWvmbLjR0w9YZONe3i4H/f/NaTMSaNGDDrPrb5bY=","Message-ID":"<4f9e76f0-7ab8-4e16-9f9e-4993bd7cabb6@ideasonboard.com>","Date":"Thu, 13 Jun 2024 22:44:08 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tStefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20240613150950.1035299-1-dan.scally@ideasonboard.com>\n\t<yiu3e2zdcf2i5ifoa3ix4yhjp2jhx7oxks5ksd4fjivebla4fu@236yfz3uwup2>\n\t<20240613163038.GA10955@pendragon.ideasonboard.com>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","Autocrypt":"addr=dan.scally@ideasonboard.com; keydata=\n\t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","In-Reply-To":"<20240613163038.GA10955@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":29942,"web_url":"https://patchwork.libcamera.org/comment/29942/","msgid":"<20240613215306.GB10955@pendragon.ideasonboard.com>","date":"2024-06-13T21:53:06","subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Thu, Jun 13, 2024 at 10:44:08PM +0100, Daniel Scally wrote:\n> \n> On 13/06/2024 17:30, Laurent Pinchart wrote:\n> > On Thu, Jun 13, 2024 at 06:14:11PM +0200, Stefan Klug wrote:\n> >> On Thu, Jun 13, 2024 at 04:09:49PM +0100, Daniel Scally wrote:\n> >>> Add support for RAW16 formats to the DNGWriter helpers so that we can\n> >>> produce dng files from the mali-c55.\n> >>>\n> >>> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> >>> ---\n> >>>   src/apps/common/dng_writer.cpp | 32 ++++++++++++++++++++++++++++++++\n> >>>   1 file changed, 32 insertions(+)\n> >>>\n> >>> diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp\n> >>> index 59f1fa23..150782e8 100644\n> >>> --- a/src/apps/common/dng_writer.cpp\n> >>> +++ b/src/apps/common/dng_writer.cpp\n> >>> @@ -134,6 +134,14 @@ void packScanlineSBGGR8(void *output, const void *input, unsigned int width)\n> >>>   \tstd::copy(in, in + width, out);\n> >>>   }\n> >>>   \n> >>> +void packScanlineSBGGR16(void *output, const void *input, unsigned int width)\n> >>> +{\n> >>> +\tconst uint16_t *in = static_cast<const uint16_t *>(input);\n> >>> +\tuint16_t *out = static_cast<uint16_t *>(output);\n> >>> +\n> >>> +\tstd::copy(in, in + width, out);\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> >>> @@ -307,6 +315,30 @@ static const std::map<PixelFormat, FormatInfo> formatInfo = {\n> >>>   \t\t.packScanline = packScanlineSBGGR8,\n> >>>   \t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> >>>   \t} },\n> >>> +\t{ formats::SBGGR16, {\n> >>> +\t\t.bitsPerSample = 16,\n> >>> +\t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n> >>> +\t\t.packScanline = packScanlineSBGGR16,\n> >>> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> >> I had to look twice to understand why the BGGR16 function is used for\n> >> every pattern. For me a \"packScanlineRaw16\" would be easier to\n> >> understand.\n> > Good idea.\n> \n> Ack! I was kinda following the crowd here, we also have packScanlineSBGGR8, packScanlineSBGGR10P and \n> packScanlineSBGGR12P that are used regardless of the format's Bayer Order. Shall I rename those too?\n\nPlease :-)\n\n> >> Whatever you prefer.\n> >>\n> >> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> >>\n> >>> +\t} },\n> >>> +\t{ formats::SGBRG16, {\n> >>> +\t\t.bitsPerSample = 16,\n> >>> +\t\t.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n> >>> +\t\t.packScanline = packScanlineSBGGR16,\n> >>> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> >>> +\t} },\n> >>> +\t{ formats::SGRBG16, {\n> >>> +\t\t.bitsPerSample = 16,\n> >>> +\t\t.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n> >>> +\t\t.packScanline = packScanlineSBGGR16,\n> >>> +\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n> >>> +\t} },\n> >>> +\t{ formats::SRGGB16, {\n> >>> +\t\t.bitsPerSample = 16,\n> >>> +\t\t.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n> >>> +\t\t.packScanline = packScanlineSBGGR16,\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 1D823BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 13 Jun 2024 21:53:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D20D565492;\n\tThu, 13 Jun 2024 23:53:28 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 671A66548D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 13 Jun 2024 23:53:27 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C87994CC;\n\tThu, 13 Jun 2024 23:53:12 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"YeWXZekz\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1718315593;\n\tbh=tP6M08WdmtkMZT7Lub6gav0npcWFYAoqqPQKhE6ifaI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=YeWXZekzYnA1q7HR6yNldQBjuzrmLTIwbYoqpcMWT/ciUDpPtGNXKrCZRwQ0/fYzf\n\t3rogbWWIuwhYyYL5JGtyxc7MTSwghsDAfCUJPP8dGOvP0fxRmRnZVTlIHpHPVVvlpK\n\tPIdLL1VD/emOTtuLTWogUuWfLdKnKOqdeGerDXv4=","Date":"Fri, 14 Jun 2024 00:53:06 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Dan Scally <dan.scally@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] apps: common: dng_writer: Support RAW16 formats","Message-ID":"<20240613215306.GB10955@pendragon.ideasonboard.com>","References":"<20240613150950.1035299-1-dan.scally@ideasonboard.com>\n\t<yiu3e2zdcf2i5ifoa3ix4yhjp2jhx7oxks5ksd4fjivebla4fu@236yfz3uwup2>\n\t<20240613163038.GA10955@pendragon.ideasonboard.com>\n\t<4f9e76f0-7ab8-4e16-9f9e-4993bd7cabb6@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<4f9e76f0-7ab8-4e16-9f9e-4993bd7cabb6@ideasonboard.com>","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]