[{"id":25453,"web_url":"https://patchwork.libcamera.org/comment/25453/","msgid":"<20221019083937.mbn4r4xcly7jhkl2@uno.localdomain>","date":"2022-10-19T08:39:37","subject":"Re: [libcamera-devel] [PATCH v2 3/3] cam: dng_writer: Add support\n\tfor 8-bit raw formats","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Paul\n\nOn Tue, Oct 18, 2022 at 05:09:08PM +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> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n\n>\n> ---\n> Changes in v2:\n> - replace copy loop with std::copy\n> ---\n>  src/cam/dng_writer.cpp | 32 ++++++++++++++++++++++++++++++++\n>  1 file changed, 32 insertions(+)\n>\n> diff --git a/src/cam/dng_writer.cpp b/src/cam/dng_writer.cpp\n> index 6dd7d0f4..c945edce 100644\n> --- a/src/cam/dng_writer.cpp\n> +++ b/src/cam/dng_writer.cpp\n> @@ -126,6 +126,14 @@ 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> +\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> @@ -274,6 +282,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 },\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 9B61CBD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 19 Oct 2022 08:41:34 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 59E1E62E38;\n\tWed, 19 Oct 2022 10:39:42 +0200 (CEST)","from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[IPv6:2001:4b98:dc4:8::229])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6339362DD7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 19 Oct 2022 10:39:41 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 5E054FF810;\n\tWed, 19 Oct 2022 08:39:39 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1666168782;\n\tbh=mTMgJThct/Rl/oAs5kAZejK2iveb8IogOwjelIYFrEM=;\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=uXx4CvIgvzKCp/JP8VGb4bGrgWcbHOjP5szKmElb4HBUL+w/gAh7BvWJQRg9MXNgo\n\tpL/M/yHG6c+p8CdqqIzKtI3pMIRcDC6nBPuZFwa423Nm9VMgini/vQdPHXlPjlkeW2\n\t7EF0pGcOdmJdDnamzhQdmLYezAB6CquZx8vXi7My+NAd6vXIccehtNCUdkG16opEkq\n\tiy6teUG8cpjc34EhkA2EJ9e7vuu6kKWG8mUEhgu7iQ5ZL59FpsJ80IzTVutBacKsHe\n\t3wZj9QlUuEsDMvp7jTBK8WnRjvPCPaZedt/Y37YnY0mzOOETVwkauP0Hmp/LTuq1X/\n\t9ZRelHRs+kUJg==","Date":"Wed, 19 Oct 2022 10:39:37 +0200","To":"Paul Elder <paul.elder@ideasonboard.com>","Message-ID":"<20221019083937.mbn4r4xcly7jhkl2@uno.localdomain>","References":"<20221018080908.2841339-1-paul.elder@ideasonboard.com>\n\t<20221018080908.2841339-4-paul.elder@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20221018080908.2841339-4-paul.elder@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 3/3] cam: dng_writer: Add support\n\tfor 8-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":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25478,"web_url":"https://patchwork.libcamera.org/comment/25478/","msgid":"<CAOgh=FyzW1WjpMu5eVVdf0VjHX9NzexgruE4Ar5Kux1KcYqvzg@mail.gmail.com>","date":"2022-10-19T18:14:19","subject":"Re: [libcamera-devel] [PATCH v2 3/3] cam: dng_writer: Add support\n\tfor 8-bit raw formats","submitter":{"id":101,"url":"https://patchwork.libcamera.org/api/people/101/","name":"Eric Curtin","email":"ecurtin@redhat.com"},"content":"On Tue, 18 Oct 2022 at 09:09, Paul Elder via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> Add support for 8-bit raw formats in DNGWriter.\n>\n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Eric Curtin <ecurtin@redhat.com>\n\n>\n> ---\n> Changes in v2:\n> - replace copy loop with std::copy\n> ---\n>  src/cam/dng_writer.cpp | 32 ++++++++++++++++++++++++++++++++\n>  1 file changed, 32 insertions(+)\n>\n> diff --git a/src/cam/dng_writer.cpp b/src/cam/dng_writer.cpp\n> index 6dd7d0f4..c945edce 100644\n> --- a/src/cam/dng_writer.cpp\n> +++ b/src/cam/dng_writer.cpp\n> @@ -126,6 +126,14 @@ struct Matrix3d {\n>         float m[9];\n>  };\n>\n> +void packScanlineSBGGR8(void *output, const void *input, unsigned int width)\n> +{\n> +       const uint8_t *in = static_cast<const uint8_t *>(input);\n> +       uint8_t *out = static_cast<uint8_t *>(output);\n> +\n> +       std::copy(in, in + width, out);\n> +}\n> +\n>  void packScanlineSBGGR10P(void *output, const void *input, unsigned int width)\n>  {\n>         const uint8_t *in = static_cast<const uint8_t *>(input);\n> @@ -274,6 +282,30 @@ void thumbScanlineIPU3([[maybe_unused]] const FormatInfo &info, void *output,\n>  }\n>\n>  static const std::map<PixelFormat, FormatInfo> formatInfo = {\n> +       { formats::SBGGR8, {\n> +               .bitsPerSample = 8,\n> +               .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n> +               .packScanline = packScanlineSBGGR8,\n> +               .thumbScanline = thumbScanlineSBGGRxxP,\n> +       } },\n> +       { formats::SGBRG8, {\n> +               .bitsPerSample = 8,\n> +               .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n> +               .packScanline = packScanlineSBGGR8,\n> +               .thumbScanline = thumbScanlineSBGGRxxP,\n> +       } },\n> +       { formats::SGRBG8, {\n> +               .bitsPerSample = 8,\n> +               .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n> +               .packScanline = packScanlineSBGGR8,\n> +               .thumbScanline = thumbScanlineSBGGRxxP,\n> +       } },\n> +       { formats::SRGGB8, {\n> +               .bitsPerSample = 8,\n> +               .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n> +               .packScanline = packScanlineSBGGR8,\n> +               .thumbScanline = thumbScanlineSBGGRxxP,\n> +       } },\n>         { formats::SBGGR10_CSI2P, {\n>                 .bitsPerSample = 10,\n>                 .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 0DC76BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 19 Oct 2022 18:14:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 241CF62E61;\n\tWed, 19 Oct 2022 20:14:43 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2005762DFA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 19 Oct 2022 20:14:40 +0200 (CEST)","from mail-vs1-f72.google.com (mail-vs1-f72.google.com\n\t[209.85.217.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id\n\tus-mta-228-v9hcvq8aOymsx9K0M5JY0w-1; Wed, 19 Oct 2022 14:14:35 -0400","by mail-vs1-f72.google.com with SMTP id\n\t65-20020a670344000000b0039b3020da1bso4721459vsd.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 19 Oct 2022 11:14:35 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1666203283;\n\tbh=vSqMDzUb0lxQpdugK96iEj5ROJs99MdxsFMiktOW/fs=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=y+IA9/jqOcYJdR1SmER/QnSYBhIgFa2skGOpWqlg9ygpNGdtu8AWTEbLVTyWxlIme\n\tem1z89jhMK/zrnJ2muyaM8U6/3tp3byuzs6/YUMIa/yFZl+7Qs6S93KsPw1WnGM7sX\n\tesvkGis0FU8Fgskh2Zud1xs/MW68RXUtUhfSOvXgPxzX6B19IJUpLgfYPAAFl5Xwda\n\tZIoznNP0DoEGOu08RaHBS9n/M0WeTi/AA/7wP0pXZ+2KzX8EHzedx3VOurVYABB3/a\n\td/FRngp38DrrqgcwTohdHdw927fdSBtyCOhtSuyyWwyjWULT3ZIl9Xm45Y4YqMn30I\n\ti/wh88Bd+T+5Q==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1666203279;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=nyoVKAiy4/Jok79JxcDohNrVEzgBaryOQfYcvOuF2fw=;\n\tb=WR8Zqukz/l4uDzrnus1wT2SPxNxnUqGR6s+2bX4cp0Skf+kzbr7FN1rjTh5dojwF8djNLN\n\tCJNKH1LIipFbp2zp2LGROSvBSfiDoMY6SGdhkGtm2WLNZhdD+M9xpSveW+HEr37rV/5w4a\n\tBSn5Ozijf554RSrBAI9NTTOANlChEUU="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=redhat.com\n\theader.i=@redhat.com header.b=\"WR8Zqukz\"; \n\tdkim-atps=neutral","X-MC-Unique":"v9hcvq8aOymsx9K0M5JY0w-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=nyoVKAiy4/Jok79JxcDohNrVEzgBaryOQfYcvOuF2fw=;\n\tb=tX/+Iwy34r3Q7Mmr6Odtk61H0wIcXIjsqNn35jUzwjv0VLQCBdw0zQAAu3VqpAbKga\n\thxBzjS4ACZygvmPDDHaeUeosvmY6ja1uwudwrdOH/USOTqhtieq0sggHgEsI8SruLDSj\n\tcAF3WMg+GbXh4hiiJ3Z6FVQDqTn45OHUfYUDD1NCG79nUB/d/X9L3Lk19VbppJOoXqDm\n\t5IYZhpJcF3TEuSbZW245zVb4FATIV6nJv3CQJecyVaRJ1wjggx9G3mQDxGuV9vloTfDx\n\tpX7onEngFT/lrGBWcZtevgrnGuJEYLiFlFbuJnISZ3fAu+Yyyyzchlrj6hudX6v1xYBN\n\tW/lQ==","X-Gm-Message-State":"ACrzQf36h73+ETGrjGyIhWbmVXs+o9WdA/ADqcbiJKaJoAFRCFpBmQX1\n\tzpaKOwulJDzC63P4Gm5A2ZWBogREHS8N+kwYz/VdUwCFbONstfOB2lbup2E0jYLt5m+sr0TpTYv\n\tCls8AuRl9UASlhWY2YgdP5Tx3JY+DoMK9QPKmbMVH8FdZ+E+P0Q==","X-Received":["by 2002:a1f:aa42:0:b0:3ab:81ee:8fa9 with SMTP id\n\tt63-20020a1faa42000000b003ab81ee8fa9mr4466194vke.17.1666203275288; \n\tWed, 19 Oct 2022 11:14:35 -0700 (PDT)","by 2002:a1f:aa42:0:b0:3ab:81ee:8fa9 with SMTP id\n\tt63-20020a1faa42000000b003ab81ee8fa9mr4466185vke.17.1666203275043;\n\tWed, 19 Oct 2022 11:14:35 -0700 (PDT)"],"X-Google-Smtp-Source":"AMsMyM5StErywSc66oZ1PylFg8luCS8JqOdHCHsTCga+VJvYlNqDQ8rISmSOGw1NPSwiDS4gvoHe7wcJUjUO6akMJew=","MIME-Version":"1.0","References":"<20221018080908.2841339-1-paul.elder@ideasonboard.com>\n\t<20221018080908.2841339-4-paul.elder@ideasonboard.com>","In-Reply-To":"<20221018080908.2841339-4-paul.elder@ideasonboard.com>","Date":"Wed, 19 Oct 2022 19:14:19 +0100","Message-ID":"<CAOgh=FyzW1WjpMu5eVVdf0VjHX9NzexgruE4Ar5Kux1KcYqvzg@mail.gmail.com>","To":"Paul Elder <paul.elder@ideasonboard.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 3/3] cam: dng_writer: Add support\n\tfor 8-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":"Eric Curtin via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Eric Curtin <ecurtin@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]