From patchwork Fri Jul 25 17:21:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 23970 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 8B13FC3237 for ; Fri, 25 Jul 2025 17:21:39 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id DBB5B69110; Fri, 25 Jul 2025 19:21:36 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="T+jT7322"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id ECC59690F9 for ; Fri, 25 Jul 2025 19:21:34 +0200 (CEST) Received: from Monstersaurus.lan (cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E0D5CC73; Fri, 25 Jul 2025 19:20:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753464055; bh=MTpWTjDjfgBZ1WwHEy+wX5aqv7DiaydgG8H8XBAoK6E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=T+jT7322Llq3UdVcuLuAqe51jURya3Am/rr+zZYP6AjOEpGqk3437IL5zTBFE+u7G LMABStbaBxJTHE0GAdBb4mMlJC1uUkC2rAWkSB8zVHI/aDsQF84Vkqj+9OJ3gGMsuF joffO1YpP2iJ+d5WdpusWPObyWWAgwVe3iBFUKXs= From: Kieran Bingham To: libcamera devel Cc: Kieran Bingham Subject: [PATCH 1/2] Documentation: pipeline-handler: Fix broken links Date: Fri, 25 Jul 2025 18:21:29 +0100 Message-ID: <20250725172130.2218836-2-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250725172130.2218836-1-kieran.bingham@ideasonboard.com> References: <20250725172130.2218836-1-kieran.bingham@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The Documentation/linkcheck target reports failing links in the pipeline handler writers guide. Update the links accordingly to the current public versions. Signed-off-by: Kieran Bingham --- Documentation/guides/pipeline-handler.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/guides/pipeline-handler.rst b/Documentation/guides/pipeline-handler.rst index 0d5df7269e40..c09690fe7c15 100644 --- a/Documentation/guides/pipeline-handler.rst +++ b/Documentation/guides/pipeline-handler.rst @@ -522,7 +522,7 @@ Finally with a successful construction, we return 'true' indicating that the PipelineHandler successfully matched and constructed a device. .. _Camera::create: https://libcamera.org/internal-api-html/classlibcamera_1_1Camera.html#adf5e6c22411f953bfaa1ae21155d6c31 -.. _registerCamera: https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#adf02a7f1bbd87aca73c0e8d8e0e6c98b +.. _registerCamera: https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#a97bc7a1ac8e7128d4b3dff91eb03f2a4 .. code-block:: cpp @@ -782,8 +782,8 @@ Applications generate a ``CameraConfiguration`` instance by calling the implementation of the overridden `PipelineHandler::generateConfiguration()`_ function. -.. _Camera::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1Camera.html#a25c80eb7fc9b1cf32692ce0c7f09991d -.. _PipelineHandler::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#a7932e87735695500ce1f8c7ae449b65b +.. _Camera::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1Camera.html#a3059dba6e3facae4f58212d3d76b5cac +.. _PipelineHandler::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#a83bbbe0826fb159253535ef077cb4343 Configurations are generated by receiving a list of ``StreamRole`` instances, which libcamera uses as predefined ways an application intends to use a camera @@ -791,7 +791,7 @@ which libcamera uses as predefined ways an application intends to use a camera optional hints on how an application intends to use a stream, and a pipeline handler should return an ideal configuration for each role that is requested. -.. _StreamRole API: https://libcamera.org/api-html/stream_8h.html#file_a295d1f5e7828d95c0b0aabc0a8baac03 +.. _StreamRole API: https://libcamera.org/api-html/namespacelibcamera.html#a295d1f5e7828d95c0b0aabc0a8baac03 In the pipeline handler ``generateConfiguration`` implementation, remove the ``return nullptr;``, create a new instance of the ``CameraConfiguration`` @@ -1110,7 +1110,7 @@ We can now use the V4L2 control IDs to prepare a list of controls with the `ControlList`_ class, and set them using the `ControlList::set()`_ function. .. _ControlList: https://libcamera.org/api-html/classlibcamera_1_1ControlList.html -.. _ControlList::set(): https://libcamera.org/api-html/classlibcamera_1_1ControlList.html#a74a1a29abff5243e6e37ace8e24eb4ba +.. _ControlList::set(): https://libcamera.org/api-html/classlibcamera_1_1ControlList.html#aa41c425f3075349747fdbfc1e3a6fc46 In our pipeline ``configure`` function, add the following code after the format has been set and checked to initialise the ControlList and apply it to the @@ -1281,7 +1281,7 @@ This example pipeline handler identifies the buffer using the `findBuffer`_ helper from the only supported stream and queues it to the capture device directly with the `queueBuffer`_ function provided by the V4L2VideoDevice. -.. _findBuffer: https://libcamera.org/api-html/classlibcamera_1_1Request.html#ac66050aeb9b92c64218945158559c4d4 +.. _findBuffer: https://libcamera.org/api-html/classlibcamera_1_1Request.html#abaed06e43f6a92590075962f825767f7 .. _queueBuffer: https://libcamera.org/api-html/classlibcamera_1_1V4L2VideoDevice.html#a594cd594686a8c1cf9ae8dba0b2a8a75 Replace the stubbed contents of ``queueRequestDevice`` with the following: From patchwork Fri Jul 25 17:21:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 23971 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id C8321C3323 for ; Fri, 25 Jul 2025 17:21:40 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 41B136910B; Fri, 25 Jul 2025 19:21:38 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gKi2zp8a"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 198FE690FC for ; Fri, 25 Jul 2025 19:21:35 +0200 (CEST) Received: from Monstersaurus.lan (cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2233FEFE; Fri, 25 Jul 2025 19:20:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753464055; bh=Y2cDa9yT4qP0Zt4TCSdei8IHwV96H7ur7GaZ0L4u9EE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gKi2zp8a95mAxaj4aY140hc9R0bTFh0qFsmMd1nMOhe6GGxGZvz8ikI5FlKlOVAgZ owN1GmDNM3ens2iCiJBXjgGJoMqHFqDsf6mnlkzDnR91l7WdgbE7H3asR6b2iJFhdf 29LVOHmOeLszmDJqCZltZDYD4oXolrNjVKazReao= From: Kieran Bingham To: libcamera devel Cc: Kieran Bingham Subject: [PATCH 2/2] Documentation: application: Update mediactl URL Date: Fri, 25 Jul 2025 18:21:30 +0100 Message-ID: <20250725172130.2218836-3-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250725172130.2218836-1-kieran.bingham@ideasonboard.com> References: <20250725172130.2218836-1-kieran.bingham@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The linux kernel documentation for the Media Controller has moved. Update the URL accordingly to the new location. The existing link pointed to the 'introduction' page - but this isn't easy to identify or get an overview of the full documentation available for media controller. Instead point the link to the top level of the media controller userspace API pages. Signed-off-by: Kieran Bingham Reviewed-by: Laurent Pinchart --- Documentation/guides/application-developer.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/guides/application-developer.rst b/Documentation/guides/application-developer.rst index 6501345a9e0a..4a18ae3a1025 100644 --- a/Documentation/guides/application-developer.rst +++ b/Documentation/guides/application-developer.rst @@ -54,7 +54,7 @@ the `Linux Media Controller`_ and `Video for Linux`_ (V4L2) APIs, meaning that an application doesn't need to handle device or driver specific details. .. _CameraManager: https://libcamera.org/api-html/classlibcamera_1_1CameraManager.html -.. _Linux Media Controller: https://www.kernel.org/doc/html/latest/media/uapi/mediactl/media-controller-intro.html +.. _Linux Media Controller: https://www.kernel.org/doc/html/latest/userspace-api/media/mediactl/media-controller.html .. _Video for Linux: https://www.linuxtv.org/docs.php Before the ``int main()`` function, create a global shared pointer