{"id":26096,"url":"https://patchwork.libcamera.org/api/patches/26096/?format=json","web_url":"https://patchwork.libcamera.org/patch/26096/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<e6fc4a59-7f21-4451-b80b-4ba8ff0e6532@web.de>","date":"2026-02-05T19:25:46","name":"Improve V4L2CameraFile constructor implementation","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"83fe195c5a160e100f7ae12b66e3b2567577dd0b","submitter":{"id":259,"url":"https://patchwork.libcamera.org/api/people/259/?format=json","name":"Markus Elfring","email":"Markus.Elfring@web.de"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/26096/mbox/","series":[{"id":5774,"url":"https://patchwork.libcamera.org/api/series/5774/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5774","date":"2026-02-05T19:25:46","name":"Improve V4L2CameraFile constructor implementation","version":1,"mbox":"https://patchwork.libcamera.org/series/5774/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/26096/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/26096/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 9E334C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  5 Feb 2026 20:11:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 94ED962065;\n\tThu,  5 Feb 2026 21:11:17 +0100 (CET)","from mout.web.de (mout.web.de [217.72.192.78])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 96D5462010\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  5 Feb 2026 20:25:48 +0100 (CET)","from [192.168.178.29] ([94.31.69.222]) by smtp.web.de (mrweb106\n\t[213.165.67.124]) with ESMTPSA (Nemesis) id 1N9cHX-1vicyU4BG9-00xpSR\n\tfor\n\t<libcamera-devel@lists.libcamera.org>; Thu, 05 Feb 2026 20:25:48 +0100"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=web.de header.i=markus.elfring@web.de\n\theader.b=\"aHlkOE2n\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de;\n\ts=s29768273; t=1770319548; x=1770924348; i=markus.elfring@web.de;\n\tbh=iZFsYxwW6O2dxPISVgPBGyj0H4NCwbrWF/070q2Nkvs=;\n\th=X-UI-Sender-Class:Message-ID:Date:MIME-Version:To:From:Subject:\n\tContent-Type:Content-Transfer-Encoding:cc:\n\tcontent-transfer-encoding:content-type:date:from:message-id:\n\tmime-version:reply-to:subject:to;\n\tb=aHlkOE2nIwkK3u1NN24sJimVndoIHuyv6evAYXezWkv7cWrYh4c95mUcMsdQ99tT\n\tyM+p/Gn03/+in2ODzq0Um3ugC5xSYGd5jZg9xOliWCCJwAMN/bnvjAQPGYg9bvR8P\n\tmsI40kR0Dgztlf3fg8s+ggXlMZAPsLx8BB7COKEAL+aMlVTy0FUTsKLcD78Qwr+9N\n\tmt8a9L2Ip34AifCZPNd1dYpdIT+MLiV/l/WGBR9ipcCNXuoLZaE7H6ZXWS8/iCHbs\n\tn0YZosrD1tBjNe6Yel+/MTMG0XwL+RSZELMlbKkLX2UCv7kMFaVpgN67lPAalb4P+\n\tk/aVFVbZISIqUTr+qg==","X-UI-Sender-Class":"814a7b36-bfc1-4dae-8640-3722d8ec6cd6","Message-ID":"<e6fc4a59-7f21-4451-b80b-4ba8ff0e6532@web.de>","Date":"Thu, 5 Feb 2026 20:25:46 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","To":"libcamera-devel@lists.libcamera.org","Content-Language":"en-GB, de-DE","From":"Markus Elfring <Markus.Elfring@web.de>","Subject":"Improve V4L2CameraFile constructor implementation","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:i8UlQDIYuI0DGvYYdHLng8w96Fm9saB0SuCOmIsAUYQawvf0gcB\n\tm1OZx5snrYKcLtLdvUAILVXMXgLN4WFxUqKLpm+lMAu13xBorqJU6wSm4egLtB05KN6S9UV\n\tbZ9oUv60gRV/AUSxV999w5D5PMfbMAVxc3nd6YFTREhKYwnAXWQt29bKZUaFktf7MQ5kQ/y\n\t94Jm1OaEpPiwnesqlvpUA==","X-Spam-Flag":"NO","UI-OutboundReport":"notjunk:1; M01:P0:Vu2oBYWvYcw=;\n\t+ThVRkVrAt0RhckWRx/cKE+bh5r\n\t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","X-Mailman-Approved-At":"Thu, 05 Feb 2026 21:11:15 +0100","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hello,\n\nI suggest to take another look also at implementation details according to\nthe commit “v4l2: v4l2_camera_file: Store file description” from 2021-12-28.\nhttps://gitlab.freedesktop.org/camera/libcamera/-/commit/07d5fff29ce96f3456cf74d740b56a46c5cba507#b2c8de5ff31c2c413e72dfb673beb004acd9fbbe_21_27\n\nHow do you think about to integrate a small source code adjustment\nlike the following?\n\n\n\n\n\nRegards,\nMarkus","diff":"diff --git a/src/v4l2/v4l2_camera_file.cpp b/src/v4l2/v4l2_camera_file.cpp\nindex d8fe854b..aa1299ad 100644\n--- a/src/v4l2/v4l2_camera_file.cpp\n+++ b/src/v4l2/v4l2_camera_file.cpp\n@@ -28,17 +28,22 @@ V4L2CameraFile::V4L2CameraFile(int dirfd, const char *path, int efd,\n \t\tif (dirfd == AT_FDCWD) {\n \t\t\tchar *cwd = getcwd(nullptr, 0);\n \t\t\tif (cwd) {\n-\t\t\t\tdescription_ = std::string(cwd) + \"/\";\n+\t\t\t\tdescription_ = std::string(cwd);\n+\t\t\t\tdescription_.push_back('/');\n \t\t\t\tfree(cwd);\n \t\t\t} else {\n \t\t\t\tdescription_ = std::string(\"(unreachable)/\");\n \t\t\t}\n \t\t} else {\n-\t\t\tdescription_ = \"(dirfd:\" + std::to_string(dirfd) + \")/\";\n+\t\t\tdescription_ = std::string(\"(dirfd:\");\n+\t\t\tdescription_.append(std::to_string(dirfd)).append(\")/\");\n \t\t}\n \t}\n \n-\tdescription_ += std::string(path) + \" (fd:\" + std::to_string(efd) + \")\";\n+\tdescription_.append(std::string(path))\n+\t\t    .append(\" (fd:\")\n+\t\t    .append(std::to_string(efd))\n+\t\t    .push_back(')');\n }\n \n V4L2CameraFile::~V4L2CameraFile()\n","prefixes":[]}