Show a patch.

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

{
    "id": 10528,
    "url": "https://patchwork.libcamera.org/api/patches/10528/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/10528/",
    "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": "<20201201155930.58584-1-jacopo@jmondi.org>",
    "date": "2020-12-01T15:59:30",
    "name": "[libcamera-devel,v2] android: camera_mode: Reserve 'data' vectors",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "40ec7b589ce3cde8d7822cecf1403f0369780df1",
    "submitter": {
        "id": 3,
        "url": "https://patchwork.libcamera.org/api/people/3/?format=api",
        "name": "Jacopo Mondi",
        "email": "jacopo@jmondi.org"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/10528/mbox/",
    "series": [
        {
            "id": 1496,
            "url": "https://patchwork.libcamera.org/api/series/1496/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1496",
            "date": "2020-12-01T15:59:30",
            "name": "[libcamera-devel,v2] android: camera_mode: Reserve 'data' vectors",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/1496/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/10528/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/10528/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 8AADFBE176\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  1 Dec 2020 15:59:34 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 282BC63503;\n\tTue,  1 Dec 2020 16:59:34 +0100 (CET)",
            "from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net\n\t[217.70.183.196])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D347363460\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  1 Dec 2020 16:59:32 +0100 (CET)",
            "from uno.lan (93-34-118-233.ip49.fastwebnet.it [93.34.118.233])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 4E62EE0006;\n\tTue,  1 Dec 2020 15:59:32 +0000 (UTC)"
        ],
        "X-Originating-IP": "93.34.118.233",
        "From": "Jacopo Mondi <jacopo@jmondi.org>",
        "To": "hanlinchen@chromium.org,\n\tlibcamera-devel@lists.libcamera.org",
        "Date": "Tue,  1 Dec 2020 16:59:30 +0100",
        "Message-Id": "<20201201155930.58584-1-jacopo@jmondi.org>",
        "X-Mailer": "git-send-email 2.29.1",
        "MIME-Version": "1.0",
        "Subject": "[libcamera-devel] [PATCH v2] android: camera_mode: Reserve 'data'\n\tvectors",
        "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 CameraDevice::getStaticMetadata() function populates the\nentries for Android's static metadata by walking the ControlInfo\nsupported values reported by the libcamera pipeline.\n\nThe number of entries to be passed to Android is computed using the\nvector's size which is initialized at vector creation time to the\nmaximum number of available entries.\n\nIn order to report the correct number of metadata do not create the\nvector with the largest possible number of elements but only reserve\nspace for them using std::vector::reserve() which does not modify the\nvector's size.\n\nSigned-off-by: Jacopo Mondi <jacopo@jmondi.org>\n---\nThis patch fixes cros_camera_test:\nCamera3DeviceTest/Camera3DeviceDefaultSettings.ConstructDefaultSettings/1\n---\n src/android/camera_device.cpp | 9 ++++++---\n 1 file changed, 6 insertions(+), 3 deletions(-)\n\n--\n2.29.1",
    "diff": "diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\nindex 4690346e05cb..4eb05df0fdc2 100644\n--- a/src/android/camera_device.cpp\n+++ b/src/android/camera_device.cpp\n@@ -596,7 +596,8 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()\n\n \t/* Color correction static metadata. */\n \t{\n-\t\tstd::vector<uint8_t> data(3);\n+\t\tstd::vector<uint8_t> data;\n+\t\tdata.reserve(3);\n \t\tconst auto &infoMap = controlsInfo.find(&controls::draft::ColorCorrectionAberrationMode);\n \t\tif (infoMap != controlsInfo.end()) {\n \t\t\tfor (const auto &value : infoMap->second.values())\n@@ -782,7 +783,8 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()\n \t\t\t\t  &maxFaceCount, 1);\n\n \t{\n-\t\tstd::vector<uint8_t> data(2);\n+\t\tstd::vector<uint8_t> data;\n+\t\tdata.reserve(2);\n \t\tconst auto &infoMap = controlsInfo.find(&controls::draft::LensShadingMapMode);\n \t\tif (infoMap != controlsInfo.end()) {\n \t\t\tfor (const auto &value : infoMap->second.values())\n@@ -850,7 +852,8 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()\n\n \t/* Noise reduction modes. */\n \t{\n-\t\tstd::vector<uint8_t> data(5);\n+\t\tstd::vector<uint8_t> data;\n+\t\tdata.reserve(5);\n \t\tconst auto &infoMap = controlsInfo.find(&controls::draft::NoiseReductionMode);\n \t\tif (infoMap != controlsInfo.end()) {\n \t\t\tfor (const auto &value : infoMap->second.values())\n",
    "prefixes": [
        "libcamera-devel",
        "v2"
    ]
}