Show a patch.

GET /api/1.1/patches/15193/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 15193,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/15193/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/15193/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20211221051549.2647005-1-paul.elder@ideasonboard.com>",
    "date": "2021-12-21T05:15:49",
    "name": "[libcamera-devel] android: capabilities: Add static white level",
    "commit_ref": null,
    "pull_url": null,
    "state": "not-applicable",
    "archived": false,
    "hash": "40cd2117b5daea5a3274275083e53f1f6521f4b5",
    "submitter": {
        "id": 17,
        "url": "https://patchwork.libcamera.org/api/1.1/people/17/?format=api",
        "name": "Paul Elder",
        "email": "paul.elder@ideasonboard.com"
    },
    "delegate": {
        "id": 17,
        "url": "https://patchwork.libcamera.org/api/1.1/users/17/?format=api",
        "username": "epaul",
        "first_name": "Paul",
        "last_name": "Elder",
        "email": "paul.elder@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/patch/15193/mbox/",
    "series": [
        {
            "id": 2853,
            "url": "https://patchwork.libcamera.org/api/1.1/series/2853/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2853",
            "date": "2021-12-21T05:15:49",
            "name": "[libcamera-devel] android: capabilities: Add static white level",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/2853/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/15193/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/15193/checks/",
    "tags": {},
    "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 15D06BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Dec 2021 05:16:59 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5E2B1608E9;\n\tTue, 21 Dec 2021 06:16:58 +0100 (CET)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9545A608A2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Dec 2021 06:16:56 +0100 (CET)",
            "from pyrite.mediacom.info (unknown\n\t[IPv6:2604:2d80:ad90:fb00:96fd:8874:873:6c16])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 992C5881;\n\tTue, 21 Dec 2021 06:16:55 +0100 (CET)"
        ],
        "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=\"bcWCj+xB\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1640063816;\n\tbh=pJpEINjc9eY6CJCGOo+5eQjjcbmlFf1wQuq5ZouA4TU=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=bcWCj+xBNN9Ca1wk+NrjtJMJpLT0a8GbmJ0Bjss5h/SUbFEtmM+2ZVT63/tvr/out\n\tMkHc555ooZQwFBThMPttWX2BT906Q27UtysRx/mKF6npR3zDlj82OKtuQlNlzSECH/\n\ta3hvxZE3fRWbBAnKBHyn4gt57v/msiBIhnl3rV98=",
        "From": "Paul Elder <paul.elder@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Mon, 20 Dec 2021 23:15:49 -0600",
        "Message-Id": "<20211221051549.2647005-1-paul.elder@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH] android: capabilities: Add static white\n\tlevel",
        "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>"
    },
    "content": "Plumb SENSOR_INFO_WHITE_LEVEL into the static metadata. Get the\ninformation from the maximum bit depth raw format supported by the\nsensor. Since we hardcode accept only 16-bit raw formats, take that\nhardcoded value. While at it, save the hardcoded value in a variable so\nthat if it is changed in the future this gets updated automatically.\n\nNote that nothing is added to the capability detector, as white level\nwill always be added to the static metadata. Add a comment to document\nit.\n\nBug: https://bugs.libcamera.org/show_bug.cgi?id=49\nSigned-off-by: Paul Elder <paul.elder@ideasonboard.com>\n---\n src/android/camera_capabilities.cpp | 9 ++++++++-\n src/android/camera_capabilities.h   | 1 +\n 2 files changed, 9 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp\nindex d5e79057..bc62a928 100644\n--- a/src/android/camera_capabilities.cpp\n+++ b/src/android/camera_capabilities.cpp\n@@ -447,6 +447,7 @@ int CameraCapabilities::initialize(std::shared_ptr<Camera> camera,\n \torientation_ = orientation;\n \tfacing_ = facing;\n \tminISO_ = minISO;\n+\trawBitDepth_ = 16;\n \trawStreamAvailable_ = false;\n \tmaxFrameDuration_ = 0;\n \n@@ -667,7 +668,7 @@ int CameraCapabilities::initializeStreamConfigurations()\n \t\tconst PixelFormatInfo &info = PixelFormatInfo::info(mappedFormat);\n \t\tswitch (info.colourEncoding) {\n \t\tcase PixelFormatInfo::ColourEncodingRAW:\n-\t\t\tif (info.bitsPerPixel != 16)\n+\t\t\tif (info.bitsPerPixel != rawBitDepth_)\n \t\t\t\tcontinue;\n \n \t\t\trawStreamAvailable_ = true;\n@@ -1335,6 +1336,12 @@ int CameraCapabilities::initializeStaticMetadata()\n \tstaticMetadata_->addEntry(ANDROID_SENSOR_INFO_MAX_FRAME_DURATION,\n \t\t\t\t  maxFrameDuration_);\n \n+\t/* This is required for FULL. */\n+\tint whiteLevel = (1 << rawBitDepth_) - 1;\n+\tstaticMetadata_->addEntry(ANDROID_SENSOR_INFO_WHITE_LEVEL,\n+\t\t\t\t  whiteLevel);\n+\tavailableCharacteristicsKeys_.insert(ANDROID_SENSOR_INFO_WHITE_LEVEL);\n+\n \t/* Statistics static metadata. */\n \tuint8_t faceDetectMode = ANDROID_STATISTICS_FACE_DETECT_MODE_OFF;\n \tstaticMetadata_->addEntry(ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES,\ndiff --git a/src/android/camera_capabilities.h b/src/android/camera_capabilities.h\nindex 7f554c63..2e6595fb 100644\n--- a/src/android/camera_capabilities.h\n+++ b/src/android/camera_capabilities.h\n@@ -71,6 +71,7 @@ private:\n \tint facing_;\n \tint orientation_;\n \tint minISO_;\n+\tunsigned int rawBitDepth_;\n \tbool rawStreamAvailable_;\n \tint64_t maxFrameDuration_;\n \tcamera_metadata_enum_android_info_supported_hardware_level hwLevel_;\n",
    "prefixes": [
        "libcamera-devel"
    ]
}