Patch Detail
Show a patch.
GET /api/1.1/patches/9859/?format=api
{ "id": 9859, "url": "https://patchwork.libcamera.org/api/1.1/patches/9859/?format=api", "web_url": "https://patchwork.libcamera.org/patch/9859/", "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": "<20200929144648.429397-5-niklas.soderlund@ragnatech.se>", "date": "2020-09-29T14:46:45", "name": "[libcamera-devel,v6,4/7] libcamera: pipeline: uvcvideo: Initialize CameraData from MediaDevice", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "e3fc449b6f41f2de56e124d9130109bc7de9b6f6", "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/9859/mbox/", "series": [ { "id": 1336, "url": "https://patchwork.libcamera.org/api/1.1/series/1336/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1336", "date": "2020-09-29T14:46:41", "name": "libcamera: Allow for user-friendly names in", "version": 6, "mbox": "https://patchwork.libcamera.org/series/1336/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/9859/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/9859/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 D41ACC3B5C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 29 Sep 2020 14:47:05 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B1745621DE;\n\tTue, 29 Sep 2020 16:47:05 +0200 (CEST)", "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 CA94E621D6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 29 Sep 2020 16:47:04 +0200 (CEST)", "from bismarck.berto.se (p54ac52a8.dip0.t-ipconnect.de\n\t[84.172.82.168]) by bin-vsp-out-02.atm.binero.net (Halon) with ESMTPA\n\tid a22c3091-0262-11eb-9823-005056917f90;\n\tTue, 29 Sep 2020 16:47:03 +0200 (CEST)" ], "X-Halon-ID": "a22c3091-0262-11eb-9823-005056917f90", "Authorized-sender": "niklas.soderlund@fsdn.se", "From": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Tue, 29 Sep 2020 16:46:45 +0200", "Message-Id": "<20200929144648.429397-5-niklas.soderlund@ragnatech.se>", "X-Mailer": "git-send-email 2.28.0", "In-Reply-To": "<20200929144648.429397-1-niklas.soderlund@ragnatech.se>", "References": "<20200929144648.429397-1-niklas.soderlund@ragnatech.se>", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH v6 4/7] libcamera: pipeline: uvcvideo:\n\tInitialize CameraData from MediaDevice", "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": "The UVCCameraData::init() is the only consumer of the default entry in\nthe media graph, move the lookup of it into the init() function and pass\nit the MediaDevice. This is done in preparation to extend the CameraData\ninitialization to consume more information from the MediaDevice.\n\nSigned-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n* Changes since v3\n- s/form/from/\n---\n src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 30 ++++++++++----------\n 1 file changed, 15 insertions(+), 15 deletions(-)", "diff": "diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp\nindex ba0efc8b893b4a69..eff866b692a926cf 100644\n--- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp\n+++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp\n@@ -44,7 +44,7 @@ public:\n \t\tdelete video_;\n \t}\n \n-\tint init(MediaEntity *entity);\n+\tint init(MediaDevice *media);\n \tvoid addControl(uint32_t cid, const ControlInfo &v4l2info,\n \t\t\tControlInfoMap::Map *ctrls);\n \tvoid bufferReady(FrameBuffer *buffer);\n@@ -463,18 +463,7 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator)\n \n \tstd::unique_ptr<UVCCameraData> data = std::make_unique<UVCCameraData>(this);\n \n-\t/* Locate and initialise the camera data with the default video node. */\n-\tconst std::vector<MediaEntity *> &entities = media->entities();\n-\tauto entity = std::find_if(entities.begin(), entities.end(),\n-\t\t\t\t [](MediaEntity *entity) {\n-\t\t\t\t\t return entity->flags() & MEDIA_ENT_FL_DEFAULT;\n-\t\t\t\t });\n-\tif (entity == entities.end()) {\n-\t\tLOG(UVC, Error) << \"Could not find a default video device\";\n-\t\treturn false;\n-\t}\n-\n-\tif (data->init(*entity))\n+\tif (data->init(media))\n \t\treturn false;\n \n \t/* Create and register the camera. */\n@@ -494,12 +483,23 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator)\n \treturn true;\n }\n \n-int UVCCameraData::init(MediaEntity *entity)\n+int UVCCameraData::init(MediaDevice *media)\n {\n \tint ret;\n \n+\t/* Locate and initialise the camera data with the default video node. */\n+\tconst std::vector<MediaEntity *> &entities = media->entities();\n+\tauto entity = std::find_if(entities.begin(), entities.end(),\n+\t\t\t\t [](MediaEntity *entity) {\n+\t\t\t\t\t return entity->flags() & MEDIA_ENT_FL_DEFAULT;\n+\t\t\t\t });\n+\tif (entity == entities.end()) {\n+\t\tLOG(UVC, Error) << \"Could not find a default video device\";\n+\t\treturn -ENODEV;\n+\t}\n+\n \t/* Create and open the video device. */\n-\tvideo_ = new V4L2VideoDevice(entity);\n+\tvideo_ = new V4L2VideoDevice(*entity);\n \tret = video_->open();\n \tif (ret)\n \t\treturn ret;\n", "prefixes": [ "libcamera-devel", "v6", "4/7" ] }