Show a cover letter.

GET /api/covers/9407/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 9407,
    "url": "https://patchwork.libcamera.org/api/covers/9407/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/9407/",
    "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": "<20200827094930.21662-1-email@uajain.com>",
    "date": "2020-08-27T09:49:51",
    "name": "[libcamera-devel,v3,0/2] Initial EXIF metadata support",
    "submitter": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/people/1/?format=api",
        "name": "Umang Jain",
        "email": "email@uajain.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/9407/mbox/",
    "series": [
        {
            "id": 1246,
            "url": "https://patchwork.libcamera.org/api/series/1246/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1246",
            "date": "2020-08-27T09:49:51",
            "name": "Initial EXIF metadata support",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/1246/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/9407/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 F1A01BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 27 Aug 2020 09:49:55 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 717E9628F7;\n\tThu, 27 Aug 2020 11:49:55 +0200 (CEST)",
            "from wrqvntvw.outbound-mail.sendgrid.net\n\t(wrqvntvw.outbound-mail.sendgrid.net [149.72.39.137])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F090060379\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Aug 2020 11:49:53 +0200 (CEST)",
            "by filterdrecv-p3las1-79f57dbf57-2psdm with SMTP id\n\tfilterdrecv-p3las1-79f57dbf57-2psdm-20-5F4781BF-1F\n\t2020-08-27 09:49:51.624605306 +0000 UTC m=+41465.216497359",
            "from mail.uajain.com (unknown)\n\tby ismtpd0004p1maa1.sendgrid.net (SG) with ESMTP id\n\tTIJB8QJ0QUC8gQMy1sD-Fg for <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Aug 2020 09:49:51.022 +0000 (UTC)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=uajain.com header.i=@uajain.com\n\theader.b=\"d8v9GM8n\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=uajain.com;\n\th=from:subject:mime-version:to:cc:content-transfer-encoding:\n\tcontent-type;\n\ts=s1; bh=IO1hCK24zmcBFkodRVqdCdzr08tPDWCG0iQRwy6OBVo=;\n\tb=d8v9GM8nlcTQFGtXxP6SdUhJkuYlo7hW2rHUZ8NnUFhrIm/Zp75a9IS/sSsE9uRXvGUr\n\t+puHV+WdYKiJhWKPNrVFW5OGWGqjBYPV+oG6PW/kpQrCojQG18p4/zP8seA+wswZZrXqTq\n\tLt0lnDyXGk+D7KSdILwWRndo4gnCvAEHs=",
        "From": "Umang Jain <email@uajain.com>",
        "Date": "Thu, 27 Aug 2020 09:49:51 +0000 (UTC)",
        "Message-Id": "<20200827094930.21662-1-email@uajain.com>",
        "Mime-Version": "1.0",
        "X-SG-EID": "1Q40EQ7YGir8a9gjSIAdTjhngY657NMk9ckeo4dbHZDiOpywc/L3L9rFqlwE4KPcYFho/XlHW4zrk5y9XrA/Wgka5gjg7/X7xiTuEiqOTtFVovSrluY1FN9xPNn1FkRZOt1HRhbLRdmNYHQdb48WGdnpf9pVLKow7UMtlppFMH93daCCqhs/qT+JB1iTHy0x5X63ZiDF/5gV3A7yAfhfPMGbT5lmFfl3reBWKZm6Y1YMJQTmixdHDhp/FW5nbHo8UZ4SIY/274vW02x1ZWghjg==",
        "To": "libcamera-devel@lists.libcamera.org",
        "Subject": "[libcamera-devel] [PATCH v3 0/2] Initial EXIF metadata support",
        "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": "Changes in v3:\n- setTimestamp() now follows the EXIF standard format\n  \"YYYY:MM:DD hh:mm:ss\"\n- Strip re-use of EXIF object for every frame.\n  A new EXIF object is created and each tag is set for it,\n  for each frame while encoding.\n- Exif::generate() returns a int code and Exif::data() will\n  now return a const libcamera::Span of { exif_data_, size_ }.\n- Null terminate strings in Exif::setString().\n- Make setLong, setShort, setString etc. helpers private.\n\nChanges in v2:\n- Patch 2/3 and 3/3 in v1 are merged.\n- We ignore the Frame Metadata timestamp, instead use the 'time of\n  encoding' as the frame timestamp for EXIF data. Since the resolution\n  is only 1s, this seems to be fine (consensus over IRC).\n- EXIF data placeholder is now wrapper inside CameraStream.\n  This prevents setting static metadata repeatedly in v1, like\n  Make/Model etc.\n- Jpeg Encoder encodes the EXIF generated Span<> directly into the\n  image. This avoids JPEG encoder dealing with EXIF specifics inside\n  itself. \n- Orientation tag value is rectified and is similar to how it's done\n  in Chrome HAL.\n- Exif::setWidth() and Exif::setHeight() are merged to achieve common\n  Exif::setSize(libcamera::Size) for setting frame sizes.\n\nKieran Bingham (2):\n  libcamera: android: Add EXIF infrastructure\n  android: jpeg: Support a initial set of  EXIF metadata tags\n\n src/android/camera_device.cpp        |  18 ++-\n src/android/jpeg/encoder.h           |   3 +-\n src/android/jpeg/encoder_libjpeg.cpp |   9 +-\n src/android/jpeg/encoder_libjpeg.h   |   3 +-\n src/android/jpeg/exif.cpp            | 234 +++++++++++++++++++++++++++\n src/android/jpeg/exif.h              |  53 ++++++\n src/android/meson.build              |   2 +\n 7 files changed, 318 insertions(+), 4 deletions(-)\n create mode 100644 src/android/jpeg/exif.cpp\n create mode 100644 src/android/jpeg/exif.h"
}