Show a patch.

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

{
    "id": 11048,
    "url": "https://patchwork.libcamera.org/api/patches/11048/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/11048/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/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": "<20210129060149.13462-1-paul.elder@ideasonboard.com>",
    "date": "2021-01-29T06:01:49",
    "name": "[libcamera-devel,v2] android: camera_device: Fix exposure time tag in exif and android",
    "commit_ref": "78f49d5e348814ae8d7c6bd0c2686112f790ca88",
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "861ae1d52c96ca597e946b2791a3cbe98384db61",
    "submitter": {
        "id": 17,
        "url": "https://patchwork.libcamera.org/api/people/17/?format=api",
        "name": "Paul Elder",
        "email": "paul.elder@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/11048/mbox/",
    "series": [
        {
            "id": 1623,
            "url": "https://patchwork.libcamera.org/api/series/1623/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1623",
            "date": "2021-01-29T06:01:49",
            "name": "[libcamera-devel,v2] android: camera_device: Fix exposure time tag in exif and android",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/1623/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/11048/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/11048/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 62D7DC33BB\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 29 Jan 2021 06:02:11 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CB48868391;\n\tFri, 29 Jan 2021 07:02:10 +0100 (CET)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AA85860307\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 29 Jan 2021 07:02:08 +0100 (CET)",
            "from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 67B752E0;\n\tFri, 29 Jan 2021 07:02:06 +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=\"VVLb3SYB\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1611900128;\n\tbh=xUtSTC/ZNU9hO4iz41m63zEaC6aJQaI8U+pxHsrsmjQ=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=VVLb3SYBeOomsH5ZnRC9BYLKmMQStw+4SgiVO/EFPIbHIsfUHu+zA/Td0NHfrnUmp\n\tokaDSFqLZCRUpTY1VBW2i00KGpJgI5tS+ied5srhJ00Eo1rkLA8+6yaDM5d81p/8FA\n\t2weg/hB46jfR1vIQfASVjiy2n6R3b9kf6Od+p01k=",
        "From": "Paul Elder <paul.elder@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Fri, 29 Jan 2021 15:01:49 +0900",
        "Message-Id": "<20210129060149.13462-1-paul.elder@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "MIME-Version": "1.0",
        "Subject": "[libcamera-devel] [PATCH v2] android: camera_device: Fix exposure\n\ttime tag in exif and android",
        "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": "The ExposureTime libcamera control is in microseconds while android and\nour exif component use nanoseconds. Convert it appropriately.\n\nCTS also expects the ExposureTime exif tag to match the ExposureTime set\nin the android result metadata. Fix it.\n\nSigned-off-by: Paul Elder <paul.elder@ideasonboard.com>\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n---\nChanges in v2:\n- remove todo to get the information from libcamera::Request::metadata\n- fix potential overflow\n---\n src/android/camera_device.cpp            | 2 +-\n src/android/jpeg/post_processor_jpeg.cpp | 4 ++--\n 2 files changed, 3 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\nindex 741dc8cf..c1025e81 100644\n--- a/src/android/camera_device.cpp\n+++ b/src/android/camera_device.cpp\n@@ -2058,7 +2058,7 @@ CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,\n \t}\n \n \tif (metadata.contains(controls::ExposureTime)) {\n-\t\tint32_t exposure = metadata.get(controls::ExposureTime);\n+\t\tint64_t exposure = metadata.get(controls::ExposureTime) * 1000ULL;\n \t\tresultMetadata->addEntry(ANDROID_SENSOR_EXPOSURE_TIME,\n \t\t\t\t\t &exposure, 1);\n \t}\ndiff --git a/src/android/jpeg/post_processor_jpeg.cpp b/src/android/jpeg/post_processor_jpeg.cpp\nindex cac0087b..1cbab30c 100644\n--- a/src/android/jpeg/post_processor_jpeg.cpp\n+++ b/src/android/jpeg/post_processor_jpeg.cpp\n@@ -112,8 +112,8 @@ int PostProcessorJpeg::process(const FrameBuffer &source,\n \t */\n \texif.setTimestamp(std::time(nullptr), 0ms);\n \n-\t/* \\todo Get this information from libcamera::Request::metadata */\n-\texif.setExposureTime(0);\n+\tret = resultMetadata->getEntry(ANDROID_SENSOR_EXPOSURE_TIME, &entry);\n+\texif.setExposureTime(ret ? *entry.data.i64 : 0);\n \tret = requestMetadata.getEntry(ANDROID_LENS_APERTURE, &entry);\n \tif (ret)\n \t\texif.setAperture(*entry.data.f);\n",
    "prefixes": [
        "libcamera-devel",
        "v2"
    ]
}