Show a patch.

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

{
    "id": 3337,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/3337/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/3337/",
    "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": "<20200326160819.4088361-3-niklas.soderlund@ragnatech.se>",
    "date": "2020-03-26T16:08:14",
    "name": "[libcamera-devel,RFCv2,2/7] libcamera: pipeline: rkisp1: Queue parameters even if they are not ready",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "250fc04b8f292b72d70f0006099ce2b804a9d066",
    "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/3337/mbox/",
    "series": [
        {
            "id": 783,
            "url": "https://patchwork.libcamera.org/api/1.1/series/783/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=783",
            "date": "2020-03-26T16:08:12",
            "name": "libcamera: ipa_manager: Proxy open-source IPAs to a thread",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/783/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/3337/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/3337/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<niklas.soderlund@ragnatech.se>",
        "Received": [
            "from vsp-unauthed02.binero.net (vsp-unauthed02.binero.net\n\t[195.74.38.227])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 32E5E62684\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 26 Mar 2020 17:10:33 +0100 (CET)",
            "from bismarck.berto.se (p4fca2392.dip0.t-ipconnect.de\n\t[79.202.35.146]) by bin-vsp-out-03.atm.binero.net (Halon) with ESMTPA\n\tid 4cb2ccaf-6f7c-11ea-89d0-0050569116f7;\n\tThu, 26 Mar 2020 17:10:24 +0100 (CET)"
        ],
        "X-Halon-ID": "4cb2ccaf-6f7c-11ea-89d0-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": "Thu, 26 Mar 2020 17:08:14 +0100",
        "Message-Id": "<20200326160819.4088361-3-niklas.soderlund@ragnatech.se>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20200326160819.4088361-1-niklas.soderlund@ragnatech.se>",
        "References": "<20200326160819.4088361-1-niklas.soderlund@ragnatech.se>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [RFCv2 2/7] libcamera: pipeline: rkisp1: Queue\n\tparameters even if they are not ready",
        "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>",
        "X-List-Received-Date": "Thu, 26 Mar 2020 16:10:33 -0000"
    },
    "content": "If the IPA have not filled in the parameters buffer still queue it to\nhardware. Not queuing the buffer results in the pipeline and hardware\ngoing out of sync.\n\nThis is not a permanent fix of the problem and a todo is added to fix it\nproperly. This change do not make the situation worse as the state of\nthe pipeline is just as unknown as if no param buffer is queued as if one\nwith old content in it.\n\nSigned-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n---\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 18 ++++++++++++++----\n 1 file changed, 14 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\nindex 2f909cef7c75ba0f..4ec74c5aa8286ffb 100644\n--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n@@ -351,13 +351,23 @@ protected:\n \t\tif (!info)\n \t\t\tLOG(RkISP1, Fatal) << \"Frame not known\";\n \n-\t\tif (info->paramFilled)\n-\t\t\tpipe_->param_->queueBuffer(info->paramBuffer);\n-\t\telse\n+\t\t/*\n+\t\t * \\todo: If parameters are not filled a better method to handle\n+\t\t * the situation then queing a buffer with unkown content should\n+\t\t * be used.\n+\t\t *\n+\t\t * It seems obsessive to keep an internal zeroed scratch\n+\t\t * parameters buffer around as this should not happen uless the\n+\t\t * devices is under too much load. Perhaps failing the request\n+\t\t * and returning it to the applicaiton with an error code is better\n+\t\t * then to queue it to hardware?\n+\t\t */\n+\t\tif (!info->paramFilled)\n \t\t\tLOG(RkISP1, Error)\n \t\t\t\t<< \"Parameters not ready on time for frame \"\n-\t\t\t\t<< frame() << \", ignore parameters.\";\n+\t\t\t\t<< frame();\n \n+\t\tpipe_->param_->queueBuffer(info->paramBuffer);\n \t\tpipe_->stat_->queueBuffer(info->statBuffer);\n \t\tpipe_->video_->queueBuffer(info->videoBuffer);\n \t}\n",
    "prefixes": [
        "libcamera-devel",
        "RFCv2",
        "2/7"
    ]
}