{"id":9490,"url":"https://patchwork.libcamera.org/api/covers/9490/?format=json","web_url":"https://patchwork.libcamera.org/cover/9490/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200904103042.1593-1-david.plowman@raspberrypi.com>","date":"2020-09-04T10:30:34","name":"[libcamera-devel,v7,0/8] 2D transforms","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/?format=json","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"mbox":"https://patchwork.libcamera.org/cover/9490/mbox/","series":[{"id":1265,"url":"https://patchwork.libcamera.org/api/series/1265/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1265","date":"2020-09-04T10:30:34","name":"2D transforms","version":7,"mbox":"https://patchwork.libcamera.org/series/1265/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/9490/comments/","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 972E7BE174\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  4 Sep 2020 10:30:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1DF1C6037B;\n\tFri,  4 Sep 2020 12:30:49 +0200 (CEST)","from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com\n\t[IPv6:2a00:1450:4864:20::32b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3480D60371\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  4 Sep 2020 12:30:47 +0200 (CEST)","by mail-wm1-x32b.google.com with SMTP id s13so5576094wmh.4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 04 Sep 2020 03:30:47 -0700 (PDT)","from pi4-davidp.lan (plowpeople3.plus.com. [80.229.223.72])\n\tby smtp.gmail.com with ESMTPSA id\n\tq4sm10294542wru.65.2020.09.04.03.30.45\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 04 Sep 2020 03:30:46 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"R6UTk9/s\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=fTNyjnDJlxQx3+qOWNHY5QNjiJ6B8Im3u0GmkR2VTwk=;\n\tb=R6UTk9/sEniK3NFzoRztQNZoYeXssXFa9rTdYVCQDzP8NJ8rXIB4bDO3wK+J9W3phe\n\teO6lNhzAB2yqyS2W9kLNIEaaY1bfGGuvwU86uQXJLh+YezdyRTApGPV8iApfdrVaLN4i\n\tKAQfcAP/9vUEODyMKvNU3VSWczPSVJIaHwhKlWbuV0HfCpDLFvWWerC7XsAVCEBXnfHr\n\to5tOvM4zwNvpft2NPWz+NhMAdTzLfZf3wGPAw8/se68SFjsTEqxh8hhkeMJiJuG4iftP\n\tM0TfbmwHYgcIfLG10oTD7uSAQjaYtS/PH/OUgCVgqvUbLXNVGj7lRCX4/G9v5lPVL7S6\n\tot4w==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=fTNyjnDJlxQx3+qOWNHY5QNjiJ6B8Im3u0GmkR2VTwk=;\n\tb=QsCit/nzj9IN7uXd6aBfWOrEKtyqtejVxpGqRKcu/SnS79ZW2tjRDKTGB0Q6PqRFnA\n\tbXjEp6yrkVy2GMI8YXmmjs8xS+qZUVWcimLyjVOwvOXJSInb+oNtS/wt8h4RtJ/mMdov\n\tVn4ZYQOqV6XdenPTZtVNrDKE0o69Emtb8aEP2YbPsrJUtiiWsIT2Wi1Or78AVHhwWHrT\n\t/GqGFfbIA7/98f8a4fMY/mXkH6ERshTj+HsTTH3Duf8ycrdckWoxCYv7aV6B5dmYqnpn\n\tMao6L4sZyAUZaqFs1upJc15CwVZHlzgBfFFhsIFWO98UhqeuXkoZBNmuywrfw1XV8/lN\n\ttHjw==","X-Gm-Message-State":"AOAM532pTNuWU5OVUKXdk+BcNDYOsO7Tyjrvavv6udUM5lzbw2nUA/OB\n\tQ3zdy0N/BlPmitZIEOk6tyXa7thRs5S4tA==","X-Google-Smtp-Source":"ABdhPJwzpVF06OxKnPkQkjRshWFxLMEIZfXLYT15wpuTgWzADcxgRcB10L6zha6emcJdF5SYhWrWug==","X-Received":"by 2002:a7b:c00c:: with SMTP id c12mr7396971wmb.54.1599215446558;\n\tFri, 04 Sep 2020 03:30:46 -0700 (PDT)","From":"David Plowman <david.plowman@raspberrypi.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Fri,  4 Sep 2020 11:30:34 +0100","Message-Id":"<20200904103042.1593-1-david.plowman@raspberrypi.com>","X-Mailer":"git-send-email 2.20.1","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH v7 0/8] 2D transforms","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>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hi everyone\n\nThanks for the various comments from Kieran since last time. The\nlatest version I think incorporates that feedback - I moved the\ncombinedTransform_ field into the RPiCameraConfiguration, and removed\nthat extra one I had called userTransform_ because it's the same as\nthe field already named transform. Apart from that everything else is\nunchanged, except for maybe a couple of improved comments. So still 8\nseparate commits as last time:\n\n1. The revert commit - unchanged.\n\n2. V4L2Device::controlInfo method - unchanged.\n\n3. Transform enum - unchanged.\n\n4. BayerFormat class - unchanged apart from cosmetic tidying as per\nfeedback.\n\n5. Add transform to CameraConfiguration - unchanged.\n\n6. This is where combinedTransform_ moves into the\nRPiCameraConfiguration, and userTransform_ is deleted (being just a\nduplicate of the transform field).\n\n7 and 8. Unchanged.\n\nI think that's it!\n\nThanks and best regards\nDavid\n\nDavid Plowman (8):\n  libcamera: pipeline: raspberrypi: Revert \"Set sensor default\n    orientation before configure()\"\n  libcamera: Allow access to v4l2_query_ext_ctrl structure for a V4L2\n    control\n  libcamera: Add Transform enum to represent 2D plane transforms.\n  libcamera: Add BayerFormat type\n  libcamera: Add user Transform to CameraConfiguration\n  libcamera: raspberrypi: Set camera flips correctly from user transform\n  libcamera: raspberrypi: Plumb user transform through to IPA\n  libcamera: ipa: raspberrypi: ALSC: Handle user transform\n\n include/libcamera/camera.h                    |   3 +\n include/libcamera/internal/bayer_format.h     |  60 ++++\n include/libcamera/internal/v4l2_device.h      |   2 +\n include/libcamera/meson.build                 |   1 +\n include/libcamera/transform.h                 |  78 +++++\n src/ipa/raspberrypi/controller/camera_mode.h  |   4 +\n src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  13 +-\n src/ipa/raspberrypi/raspberrypi.cpp           |  48 +--\n src/libcamera/bayer_format.cpp                | 231 +++++++++++++\n src/libcamera/camera.cpp                      |  16 +-\n src/libcamera/meson.build                     |   2 +\n src/libcamera/pipeline/ipu3/ipu3.cpp          |   5 +\n .../pipeline/raspberrypi/raspberrypi.cpp      | 155 ++++++++-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp      |   5 +\n src/libcamera/pipeline/simple/simple.cpp      |   5 +\n src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  |   5 +\n src/libcamera/pipeline/vimc/vimc.cpp          |   5 +\n src/libcamera/transform.cpp                   | 322 ++++++++++++++++++\n src/libcamera/v4l2_device.cpp                 |  15 +\n 19 files changed, 941 insertions(+), 34 deletions(-)\n create mode 100644 include/libcamera/internal/bayer_format.h\n create mode 100644 include/libcamera/transform.h\n create mode 100644 src/libcamera/bayer_format.cpp\n create mode 100644 src/libcamera/transform.cpp"}