[{"id":35155,"web_url":"https://patchwork.libcamera.org/comment/35155/","msgid":"<20250726023751.GC27425@pendragon.ideasonboard.com>","date":"2025-07-26T02:37:51","subject":"Re: [PATCH 1/2] Documentation: pipeline-handler: Fix broken links","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nThank you for the patch.\n\nOn Fri, Jul 25, 2025 at 06:21:29PM +0100, Kieran Bingham wrote:\n> The Documentation/linkcheck target reports failing links in the pipeline\n> handler writers guide. Update the links accordingly to the current\n> public versions.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  Documentation/guides/pipeline-handler.rst | 12 ++++++------\n>  1 file changed, 6 insertions(+), 6 deletions(-)\n> \n> diff --git a/Documentation/guides/pipeline-handler.rst b/Documentation/guides/pipeline-handler.rst\n> index 0d5df7269e40..c09690fe7c15 100644\n> --- a/Documentation/guides/pipeline-handler.rst\n> +++ b/Documentation/guides/pipeline-handler.rst\n> @@ -522,7 +522,7 @@ Finally with a successful construction, we return 'true' indicating that the\n>  PipelineHandler successfully matched and constructed a device.\n>  \n>  .. _Camera::create: https://libcamera.org/internal-api-html/classlibcamera_1_1Camera.html#adf5e6c22411f953bfaa1ae21155d6c31\n> -.. _registerCamera: https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#adf02a7f1bbd87aca73c0e8d8e0e6c98b\n> +.. _registerCamera: https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#a97bc7a1ac8e7128d4b3dff91eb03f2a4\n\nThis is going to become a game of cat and mouse :-( The hex ids are made\nof the letter 'a' followed by the md5sum of a textual representation of\nthe member, which includes the name, but also the arguments and other\ndata. The value changes every time the function prototype changes.\n\nFortunately, other people encountered the same issue, and developed a\nsolution: https://sphinxcontrib-doxylink.readthedocs.io/en/stable/. I'm\nexperimenting with this, I'll post patches.\n\n>  \n>  .. code-block:: cpp\n>  \n> @@ -782,8 +782,8 @@ Applications generate a ``CameraConfiguration`` instance by calling the\n>  implementation of the overridden `PipelineHandler::generateConfiguration()`_\n>  function.\n>  \n> -.. _Camera::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1Camera.html#a25c80eb7fc9b1cf32692ce0c7f09991d\n> -.. _PipelineHandler::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#a7932e87735695500ce1f8c7ae449b65b\n> +.. _Camera::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1Camera.html#a3059dba6e3facae4f58212d3d76b5cac\n> +.. _PipelineHandler::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#a83bbbe0826fb159253535ef077cb4343\n>  \n>  Configurations are generated by receiving a list of ``StreamRole`` instances,\n>  which libcamera uses as predefined ways an application intends to use a camera\n> @@ -791,7 +791,7 @@ which libcamera uses as predefined ways an application intends to use a camera\n>  optional hints on how an application intends to use a stream, and a pipeline\n>  handler should return an ideal configuration for each role that is requested.\n>  \n> -.. _StreamRole API: https://libcamera.org/api-html/stream_8h.html#file_a295d1f5e7828d95c0b0aabc0a8baac03\n> +.. _StreamRole API: https://libcamera.org/api-html/namespacelibcamera.html#a295d1f5e7828d95c0b0aabc0a8baac03\n>  \n>  In the pipeline handler ``generateConfiguration`` implementation, remove the\n>  ``return nullptr;``, create a new instance of the ``CameraConfiguration``\n> @@ -1110,7 +1110,7 @@ We can now use the V4L2 control IDs to prepare a list of controls with the\n>  `ControlList`_ class, and set them using the `ControlList::set()`_ function.\n>  \n>  .. _ControlList: https://libcamera.org/api-html/classlibcamera_1_1ControlList.html\n> -.. _ControlList::set(): https://libcamera.org/api-html/classlibcamera_1_1ControlList.html#a74a1a29abff5243e6e37ace8e24eb4ba\n> +.. _ControlList::set(): https://libcamera.org/api-html/classlibcamera_1_1ControlList.html#aa41c425f3075349747fdbfc1e3a6fc46\n>  \n>  In our pipeline ``configure`` function, add the following code after the format\n>  has been set and checked to initialise the ControlList and apply it to the\n> @@ -1281,7 +1281,7 @@ This example pipeline handler identifies the buffer using the `findBuffer`_\n>  helper from the only supported stream and queues it to the capture device\n>  directly with the `queueBuffer`_ function provided by the V4L2VideoDevice.\n>  \n> -.. _findBuffer: https://libcamera.org/api-html/classlibcamera_1_1Request.html#ac66050aeb9b92c64218945158559c4d4\n> +.. _findBuffer: https://libcamera.org/api-html/classlibcamera_1_1Request.html#abaed06e43f6a92590075962f825767f7\n>  .. _queueBuffer: https://libcamera.org/api-html/classlibcamera_1_1V4L2VideoDevice.html#a594cd594686a8c1cf9ae8dba0b2a8a75\n>  \n>  Replace the stubbed contents of ``queueRequestDevice`` with the following:","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 52919C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 26 Jul 2025 02:38:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 79B8569110;\n\tSat, 26 Jul 2025 04:38:01 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 13C45614C3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 26 Jul 2025 04:37:58 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id A100B606;\n\tSat, 26 Jul 2025 04:37:17 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"XwRMAcfa\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1753497437;\n\tbh=gXXQrWlrQfqD3ua5WPQDfuuqsds5QUgIj1UuOhWJkms=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=XwRMAcfabU9JMdkAVNpzzhHrELNS/qW/xKJS6/jRdauw0jJWY+4e55CAVbnPVPEVE\n\tERgXlfwBVudPeJjSdKRxCn+HAYH3j8RB11NG2F/Cp6iu5IFmvzlsXhCl8r3UXai/2X\n\tP3LYRJ6gERXF/Y4FQ0D80FKFZWNoYcD7q084W1fk=","Date":"Sat, 26 Jul 2025 05:37:51 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Subject":"Re: [PATCH 1/2] Documentation: pipeline-handler: Fix broken links","Message-ID":"<20250726023751.GC27425@pendragon.ideasonboard.com>","References":"<20250725172130.2218836-1-kieran.bingham@ideasonboard.com>\n\t<20250725172130.2218836-2-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20250725172130.2218836-2-kieran.bingham@ideasonboard.com>","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>"}}]