Show a patch.

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

{
    "id": 8445,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/8445/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/8445/",
    "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": "<20200627030043.2088585-4-niklas.soderlund@ragnatech.se>",
    "date": "2020-06-27T03:00:33",
    "name": "[libcamera-devel,03/13] libcamera: ipu3: Always import buffers for ImgU sinks",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "9c9641bf09467a311f787cfb5d3910a78707270c",
    "submitter": {
        "id": 5,
        "url": "https://patchwork.libcamera.org/api/1.1/people/5/?format=api",
        "name": "Niklas Söderlund",
        "email": "niklas.soderlund@ragnatech.se"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/8445/mbox/",
    "series": [
        {
            "id": 1046,
            "url": "https://patchwork.libcamera.org/api/1.1/series/1046/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1046",
            "date": "2020-06-27T03:00:30",
            "name": "libcamera: ipu3: Refactoring of ImgU",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/1046/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/8445/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/8445/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 C7346C2E66\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 27 Jun 2020 03:00:54 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9F18E60AF7;\n\tSat, 27 Jun 2020 05:00:54 +0200 (CEST)",
            "from vsp-unauthed02.binero.net (vsp-unauthed02.binero.net\n\t[195.74.38.227])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 768A1609C8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 27 Jun 2020 05:00:52 +0200 (CEST)",
            "from bismarck.berto.se (p4fca2eca.dip0.t-ipconnect.de\n\t[79.202.46.202]) by bin-vsp-out-03.atm.binero.net (Halon) with ESMTPA\n\tid 5436d7ec-b822-11ea-86ee-0050569116f7;\n\tSat, 27 Jun 2020 05:00:19 +0200 (CEST)"
        ],
        "X-Halon-ID": "5436d7ec-b822-11ea-86ee-0050569116f7",
        "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": "Sat, 27 Jun 2020 05:00:33 +0200",
        "Message-Id": "<20200627030043.2088585-4-niklas.soderlund@ragnatech.se>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20200627030043.2088585-1-niklas.soderlund@ragnatech.se>",
        "References": "<20200627030043.2088585-1-niklas.soderlund@ragnatech.se>",
        "MIME-Version": "1.0",
        "Subject": "[libcamera-devel] [PATCH 03/13] libcamera: ipu3: Always import\n\tbuffers for ImgU sinks",
        "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=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "When the IPU3 pipeline was first developed buffers of sinks from the\nImgU that where not active still needed to have allocated buffers\nassociated with them or streaming was not allowed to start. This is no\nlonger true, it's enough that the sinks have imported buffers for\nstreaming to start. As we already need to import buffers for streams\nthat are active we can align the two cases and always import buffers.\n\nWith this there is no longer a reason to store the allocated\nFrameBuffers to keep them alive and the vector tracking them can be\nremoved.\n\nSigned-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n---\n src/libcamera/pipeline/ipu3/ipu3.cpp | 25 ++++---------------------\n 1 file changed, 4 insertions(+), 21 deletions(-)",
    "diff": "diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\nindex 405550b1302fb370..5a473e18c082cee8 100644\n--- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n@@ -49,7 +49,6 @@ public:\n \t\tV4L2VideoDevice *dev;\n \t\tunsigned int pad;\n \t\tstd::string name;\n-\t\tstd::vector<std::unique_ptr<FrameBuffer>> buffers;\n \t};\n \n \tImgUDevice()\n@@ -1124,9 +1123,6 @@ int ImgUDevice::configureOutput(ImgUOutput *output,\n  */\n int ImgUDevice::allocateBuffers(IPU3CameraData *data, unsigned int bufferCount)\n {\n-\tIPU3Stream *outStream = &data->outStream_;\n-\tIPU3Stream *vfStream = &data->vfStream_;\n-\n \t/* Share buffers between CIO2 output and ImgU input. */\n \tint ret = input_->importBuffers(bufferCount);\n \tif (ret) {\n@@ -1147,28 +1143,15 @@ int ImgUDevice::allocateBuffers(IPU3CameraData *data, unsigned int bufferCount)\n \t\tgoto error;\n \t}\n \n-\t/*\n-\t * Allocate buffers for both outputs. If an output is active, prepare\n-\t * for buffer import, otherwise allocate internal buffers. Use the same\n-\t * number of buffers in either case.\n-\t */\n-\tif (outStream->active_)\n-\t\tret = output_.dev->importBuffers(bufferCount);\n-\telse\n-\t\tret = output_.dev->allocateBuffers(bufferCount,\n-\t\t\t\t\t\t   &output_.buffers);\n+\tret = output_.dev->importBuffers(bufferCount);\n \tif (ret < 0) {\n-\t\tLOG(IPU3, Error) << \"Failed to allocate ImgU output buffers\";\n+\t\tLOG(IPU3, Error) << \"Failed to import ImgU output buffers\";\n \t\tgoto error;\n \t}\n \n-\tif (vfStream->active_)\n-\t\tret = viewfinder_.dev->importBuffers(bufferCount);\n-\telse\n-\t\tret = viewfinder_.dev->allocateBuffers(bufferCount,\n-\t\t\t\t\t\t       &viewfinder_.buffers);\n+\tret = viewfinder_.dev->importBuffers(bufferCount);\n \tif (ret < 0) {\n-\t\tLOG(IPU3, Error) << \"Failed to allocate ImgU viewfinder buffers\";\n+\t\tLOG(IPU3, Error) << \"Failed to import ImgU viewfinder buffers\";\n \t\tgoto error;\n \t}\n \n",
    "prefixes": [
        "libcamera-devel",
        "03/13"
    ]
}