Patch Detail
Show a patch.
GET /api/patches/9987/?format=api
{ "id": 9987, "url": "https://patchwork.libcamera.org/api/patches/9987/?format=api", "web_url": "https://patchwork.libcamera.org/patch/9987/", "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": "<20201007075457.4455-1-andrey.konovalov@linaro.org>", "date": "2020-10-07T07:54:57", "name": "[libcamera-devel] libcamera: pipeline: simple: enable mplane devices using contiguous memory", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "53e2da59b2bda85d8de5db04ee9ca12e3be2bf52", "submitter": { "id": 25, "url": "https://patchwork.libcamera.org/api/people/25/?format=api", "name": "Andrey Konovalov", "email": "andrey.konovalov@linaro.org" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/9987/mbox/", "series": [ { "id": 1359, "url": "https://patchwork.libcamera.org/api/series/1359/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1359", "date": "2020-10-07T07:54:57", "name": "[libcamera-devel] libcamera: pipeline: simple: enable mplane devices using contiguous memory", "version": 1, "mbox": "https://patchwork.libcamera.org/series/1359/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/9987/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/9987/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 0BEFBBEEE0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 7 Oct 2020 07:55:23 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9459663BE4;\n\tWed, 7 Oct 2020 09:55:22 +0200 (CEST)", "from mail-lj1-x244.google.com (mail-lj1-x244.google.com\n\t[IPv6:2a00:1450:4864:20::244])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9296463B27\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 7 Oct 2020 09:55:21 +0200 (CEST)", "by mail-lj1-x244.google.com with SMTP id a15so1027453ljk.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 07 Oct 2020 00:55:21 -0700 (PDT)", "from localhost.localdomain (37-144-159-139.broadband.corbina.ru.\n\t[37.144.159.139]) by smtp.googlemail.com with ESMTPSA id\n\tv143sm213885lfa.248.2020.10.07.00.55.19\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 07 Oct 2020 00:55:19 -0700 (PDT)" ], "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"xv9dPwxe\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;\n\th=from:to:cc:subject:date:message-id;\n\tbh=IxMU2snczU8fMNu2/y2pDX4Kt0A8jJl4bZcrTWU4+9Y=;\n\tb=xv9dPwxeFXWoNzoiSdTL0sAVTP90roJW8B0hrzNWDtuB4j/Sgl160rbYW7s8Ii+gPR\n\tYrVdUUfmv2XYnKTs1SuU00QcXIU9ISm1j09sAtWWhi71rndMRAmWOsAfyCxokHVU2QMH\n\tdI0RNuju4mW1Ibz4SMZAFuyIj0Rgpv+e/ydgNg9d2iCZvLjYuZEuWPlqyHSPJFnhDHy+\n\tVNIuFDgZpdDCsW/4m+Z3r5CxxMDdZ8hYTAeyAO8PVXanm6/9g5dACuqFkdOjYxHXnG9q\n\tsUip9DvxGIF+7+OcOj1KV2epaGjghmykEmReskFBh+UtlS6a0ghF1et8SCojfjcA1/4q\n\toGzg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id;\n\tbh=IxMU2snczU8fMNu2/y2pDX4Kt0A8jJl4bZcrTWU4+9Y=;\n\tb=MvNo8YA1iwKDCAARDi23ice1IoqOyJ96Go8quvHkkcn+12DZnRjtQ8OH9LEz4m5kBm\n\tNHEQO40m69jBttKoV/1NH1Llx3sFrjcJC8Ns6WHLuCk7KRB/rWog7/NNjPfWefmG4j79\n\tvl000tPjIjYUNnYdIC8RIXpmCXM2nzNIAMV20R6jukxU7aWG+XncNwnbI5HTcBFtMMgK\n\tYjRAX2JWl17LWL1TOfe6DrYLw928ebD1mqSlSouSiJw9Jb8GVfXN5GGat50Nds97Kd0W\n\trF6AsZOunyLH8Gcv2ZAUpzENQmV25uA+yyW+V3HG443xnUBtz+GOlvu4/WfbLvY6DFxl\n\tOjTg==", "X-Gm-Message-State": "AOAM531UUL1wj04YprRWDVNR1kIIB8gyqEuPZkhmR84KEMf5+OymZvBC\n\trwbAsr1ZcbS1gVF5jq18bQj3U3LHcXg4Fw==", "X-Google-Smtp-Source": "ABdhPJz4D7LrWMBxRrLRk70h6lEvnyH8rtsJCo7LrKUu+vFVZtKrf/kPU4Xr8BaGBxL6++4pC5EAXA==", "X-Received": "by 2002:a2e:6f0d:: with SMTP id k13mr687084ljc.250.1602057320460;\n\tWed, 07 Oct 2020 00:55:20 -0700 (PDT)", "From": "Andrey Konovalov <andrey.konovalov@linaro.org>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Wed, 7 Oct 2020 10:54:57 +0300", "Message-Id": "<20201007075457.4455-1-andrey.konovalov@linaro.org>", "X-Mailer": "git-send-email 2.17.1", "Subject": "[libcamera-devel] [PATCH] libcamera: pipeline: simple: enable\n\tmplane devices using contiguous memory", "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>", "MIME-Version": "1.0", "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 current simple pipeline handler refuses to work with capture devices\nwhich have V4L2_CAP_VIDEO_CAPTURE_MPLANE flag set in the device capabilities\nfield. This is too restrictive, as devices supporting the multi-planar API\ncan be using contiguous memory for semi-planar and planar formats, and this\nwould just work without any changes to libcamera.\n\nDrop the guard against MPLANE devices, and replace it with the check of\nthe number of planes in the format the simple pipeline handler is going to\nuse for capture. This will let MPLANE devices which don't use non-contiguous\nmemory for frame buffers to work with the simple pipeline handler.\n\nSigned-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n---\n src/libcamera/pipeline/simple/simple.cpp | 12 ++++++------\n 1 file changed, 6 insertions(+), 6 deletions(-)", "diff": "diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp\nindex 10223a9b..8dc23623 100644\n--- a/src/libcamera/pipeline/simple/simple.cpp\n+++ b/src/libcamera/pipeline/simple/simple.cpp\n@@ -592,6 +592,12 @@ int SimplePipelineHandler::configure(Camera *camera, CameraConfiguration *c)\n \tif (ret)\n \t\treturn ret;\n \n+\tif (captureFormat.planesCount != 1) {\n+\t\tLOG(SimplePipeline, Error)\n+\t\t\t<< \"Planar formats using non-contiguous memory not supported\";\n+\t\treturn -EINVAL;\n+\t}\n+\n \tif (captureFormat.fourcc != videoFormat ||\n \t captureFormat.size != pipeConfig.captureSize) {\n \t\tLOG(SimplePipeline, Error)\n@@ -845,12 +851,6 @@ V4L2VideoDevice *SimplePipelineHandler::video(const MediaEntity *entity)\n \tif (video->open() < 0)\n \t\treturn nullptr;\n \n-\tif (video->caps().isMultiplanar()) {\n-\t\tLOG(SimplePipeline, Error)\n-\t\t\t<< \"V4L2 multiplanar devices are not supported\";\n-\t\treturn nullptr;\n-\t}\n-\n \tvideo->bufferReady.connect(this, &SimplePipelineHandler::bufferReady);\n \n \tauto element = videos_.emplace(entity, std::move(video));\n", "prefixes": [ "libcamera-devel" ] }