Show a patch.

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

{
    "id": 951,
    "url": "https://patchwork.libcamera.org/api/patches/951/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/951/",
    "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": "<20190408135006.15423-3-niklas.soderlund@ragnatech.se>",
    "date": "2019-04-08T13:50:03",
    "name": "[libcamera-devel,v4,2/5] cam: Extend BufferWriter to include a stream name in file path",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "bc30603d475bcec48e8d41444b9411f2ac772e75",
    "submitter": {
        "id": 5,
        "url": "https://patchwork.libcamera.org/api/people/5/?format=api",
        "name": "Niklas Söderlund",
        "email": "niklas.soderlund@ragnatech.se"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/951/mbox/",
    "series": [
        {
            "id": 246,
            "url": "https://patchwork.libcamera.org/api/series/246/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=246",
            "date": "2019-04-08T13:50:01",
            "name": "cam: Add support to specify multiple stream configurations with roles",
            "version": 4,
            "mbox": "https://patchwork.libcamera.org/series/246/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/951/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/951/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<niklas.soderlund@ragnatech.se>",
        "Received": [
            "from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net\n\t[195.74.38.228])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BA8F960B2E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Apr 2019 15:50:38 +0200 (CEST)",
            "from bismarck.berto.se (unknown [89.233.230.99])\n\tby bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA\n\tid 4396dbfe-5a05-11e9-846a-005056917a89;\n\tMon, 08 Apr 2019 15:50:32 +0200 (CEST)"
        ],
        "X-Halon-ID": "4396dbfe-5a05-11e9-846a-005056917a89",
        "Authorized-sender": "niklas@soderlund.pp.se",
        "From": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Mon,  8 Apr 2019 15:50:03 +0200",
        "Message-Id": "<20190408135006.15423-3-niklas.soderlund@ragnatech.se>",
        "X-Mailer": "git-send-email 2.21.0",
        "In-Reply-To": "<20190408135006.15423-1-niklas.soderlund@ragnatech.se>",
        "References": "<20190408135006.15423-1-niklas.soderlund@ragnatech.se>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v4 2/5] cam: Extend BufferWriter to\n\tinclude a stream name in file path",
        "X-BeenThere": "libcamera-devel@lists.libcamera.org",
        "X-Mailman-Version": "2.1.23",
        "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>",
        "X-List-Received-Date": "Mon, 08 Apr 2019 13:50:39 -0000"
    },
    "content": "To be able to write multiple buffers captured in the same request (and\nhence having the same sequence number) the buffer writer needs to name\neach file uniquely. Add a stream name to the writer function which the\nbuffer writer can add to the part of the pattern it already expands to\nthe sequence number. As cam only supports one stream, hard code the name\nto stream0.\n\nSigned-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/cam/buffer_writer.cpp | 6 ++++--\n src/cam/buffer_writer.h   | 2 +-\n src/cam/main.cpp          | 4 ++--\n 3 files changed, 7 insertions(+), 5 deletions(-)",
    "diff": "diff --git a/src/cam/buffer_writer.cpp b/src/cam/buffer_writer.cpp\nindex 2d2258b4cd1cbbc2..e0374ffcb3199d30 100644\n--- a/src/cam/buffer_writer.cpp\n+++ b/src/cam/buffer_writer.cpp\n@@ -19,7 +19,8 @@ BufferWriter::BufferWriter(const std::string &pattern)\n {\n }\n \n-int BufferWriter::write(libcamera::Buffer *buffer)\n+int BufferWriter::write(libcamera::Buffer *buffer,\n+\t\t\tconst std::string &streamName)\n {\n \tstd::string filename;\n \tsize_t pos;\n@@ -29,7 +30,8 @@ int BufferWriter::write(libcamera::Buffer *buffer)\n \tpos = filename.find_first_of('#');\n \tif (pos != std::string::npos) {\n \t\tstd::stringstream ss;\n-\t\tss << std::setw(6) << std::setfill('0') << buffer->sequence();\n+\t\tss << streamName << \"-\" << std::setw(6)\n+\t\t   << std::setfill('0') << buffer->sequence();\n \t\tfilename.replace(pos, 1, ss.str());\n \t}\n \ndiff --git a/src/cam/buffer_writer.h b/src/cam/buffer_writer.h\nindex 9705773e0e397d45..7bf785d1e83235ff 100644\n--- a/src/cam/buffer_writer.h\n+++ b/src/cam/buffer_writer.h\n@@ -16,7 +16,7 @@ class BufferWriter\n public:\n \tBufferWriter(const std::string &pattern = \"frame-#.bin\");\n \n-\tint write(libcamera::Buffer *buffer);\n+\tint write(libcamera::Buffer *buffer, const std::string &streamName);\n \n private:\n \tstd::string pattern_;\ndiff --git a/src/cam/main.cpp b/src/cam/main.cpp\nindex 41a4d9c6b7afa684..3dd4b24d2401162c 100644\n--- a/src/cam/main.cpp\n+++ b/src/cam/main.cpp\n@@ -57,7 +57,7 @@ static int parseOptions(int argc, char *argv[])\n \t\t\t \"Capture until interrupted by user\", \"capture\");\n \tparser.addOption(OptFile, OptionString,\n \t\t\t \"Write captured frames to disk\\n\"\n-\t\t\t \"The first '#' character in the file name is expanded to the frame sequence number.\\n\"\n+\t\t\t \"The first '#' character in the file name is expanded to the stream name and frame sequence number.\\n\"\n \t\t\t \"The default file name is 'frame-#.bin'.\",\n \t\t\t \"file\", ArgumentOptional, \"filename\");\n \tparser.addOption(OptStream, &streamKeyValue,\n@@ -121,7 +121,7 @@ static void requestComplete(Request *request, const std::map<Stream *, Buffer *>\n \t\t  << std::endl;\n \n \tif (writer)\n-\t\twriter->write(buffer);\n+\t\twriter->write(buffer, \"stream0\");\n \n \trequest = camera->createRequest();\n \tif (!request) {\n",
    "prefixes": [
        "libcamera-devel",
        "v4",
        "2/5"
    ]
}