Patch Detail
Show a patch.
GET /api/1.1/patches/20938/?format=api
{ "id": 20938, "url": "https://patchwork.libcamera.org/api/1.1/patches/20938/?format=api", "web_url": "https://patchwork.libcamera.org/patch/20938/", "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": "<20240815082944.170109-7-dan.scally@ideasonboard.com>", "date": "2024-08-15T08:29:43", "name": "[v2,6/7] Documentation: Expand introductory content on docs.rst", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "fa882f86376658ae17e90041e8b7fff57ba8b6b9", "submitter": { "id": 156, "url": "https://patchwork.libcamera.org/api/1.1/people/156/?format=api", "name": "Dan Scally", "email": "dan.scally@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/20938/mbox/", "series": [ { "id": 4521, "url": "https://patchwork.libcamera.org/api/1.1/series/4521/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4521", "date": "2024-08-15T08:29:37", "name": "Documentation improvements", "version": 2, "mbox": "https://patchwork.libcamera.org/series/4521/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/20938/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/20938/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 94552C32D6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 15 Aug 2024 08:30:17 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 343FB633C0;\n\tThu, 15 Aug 2024 10:30:16 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 20838633C2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 15 Aug 2024 10:30:05 +0200 (CEST)", "from mail.ideasonboard.com\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B6F94F85;\n\tThu, 15 Aug 2024 10:29:06 +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=\"Pc22Mll1\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1723710546;\n\tbh=qLiC0cUxMUPP5y+43N9jo+3RVFlZdUEGvsXb1YS/Zfk=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=Pc22Mll1yATVLLmtx8iTbeXwzi0wMyXBcGzoBjlAbMEmNNap21zaxAx4ZNhR+g3J/\n\tsQWtY45bYvg6QjAib48MT2NtAN01YXLfIc5+g1FJdnKgfYT03GxTnbDPnj5yvYpFG+\n\tXYd2wNoRP3jf3JyNr0QVtO4ccMSHGJsBxjUIxPCU=", "From": "Daniel Scally <dan.scally@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Daniel Scally <dan.scally@ideasonboard.com>", "Subject": "[PATCH v2 6/7] Documentation: Expand introductory content on\n\tdocs.rst", "Date": "Thu, 15 Aug 2024 09:29:43 +0100", "Message-Id": "<20240815082944.170109-7-dan.scally@ideasonboard.com>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20240815082944.170109-1-dan.scally@ideasonboard.com>", "References": "<20240815082944.170109-1-dan.scally@ideasonboard.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "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": "docs.rst is the landing page for the documentation from the libcamera\nwebsite, but isn't particularly introductory. Move much of the content\nfrom guides/introduction.rst to docs.rst, which will serve as the new\nintroductory page. Remove guides/introduction.rst.\n\nSigned-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n---\nChanges since v1:\n\n\t- Removed deleted file from meson's docs_sources array.\n\n Documentation/c55.svg | 175 +++++++++++++++++++++++\n Documentation/docs.rst | 128 ++++++++++++++++-\n Documentation/documentation-contents.rst | 1 -\n Documentation/guides/introduction.rst | 78 ----------\n Documentation/index.rst | 1 -\n Documentation/meson.build | 1 -\n 6 files changed, 296 insertions(+), 88 deletions(-)\n create mode 100644 Documentation/c55.svg\n delete mode 100644 Documentation/guides/introduction.rst", "diff": "diff --git a/Documentation/c55.svg b/Documentation/c55.svg\nnew file mode 100644\nindex 00000000..9dbd52bb\n--- /dev/null\n+++ b/Documentation/c55.svg\n@@ -0,0 +1,175 @@\n+<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n+<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n+ \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n+<!-- Generated by graphviz version 2.43.0 (0)\n+ -->\n+<!-- Title: board Pages: 1 -->\n+<svg width=\"484pt\" height=\"530pt\"\n+ viewBox=\"0.00 0.00 483.50 530.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n+<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 526)\">\n+<title>board</title>\n+<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-526 479.5,-526 479.5,4 -4,4\"/>\n+<!-- n00000001 -->\n+<g id=\"node1\" class=\"node\">\n+<title>n00000001</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M20.5,-316.5C20.5,-316.5 133.5,-316.5 133.5,-316.5 139.5,-316.5 145.5,-322.5 145.5,-328.5 145.5,-328.5 145.5,-388.5 145.5,-388.5 145.5,-394.5 139.5,-400.5 133.5,-400.5 133.5,-400.5 20.5,-400.5 20.5,-400.5 14.5,-400.5 8.5,-394.5 8.5,-388.5 8.5,-388.5 8.5,-328.5 8.5,-328.5 8.5,-322.5 14.5,-316.5 20.5,-316.5\"/>\n+<text text-anchor=\"middle\" x=\"77\" y=\"-385.3\" font-family=\"Times,serif\" font-size=\"14.00\"> </text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"8.5,-377.5 145.5,-377.5 \"/>\n+<text text-anchor=\"middle\" x=\"77\" y=\"-362.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali-c55 tpg</text>\n+<text text-anchor=\"middle\" x=\"77\" y=\"-347.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l-subdev0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"8.5,-339.5 145.5,-339.5 \"/>\n+<text text-anchor=\"middle\" x=\"77\" y=\"-324.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+</g>\n+<!-- n00000003 -->\n+<g id=\"node2\" class=\"node\">\n+<title>n00000003</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M210.5,-195.5C210.5,-195.5 323.5,-195.5 323.5,-195.5 329.5,-195.5 335.5,-201.5 335.5,-207.5 335.5,-207.5 335.5,-267.5 335.5,-267.5 335.5,-273.5 329.5,-279.5 323.5,-279.5 323.5,-279.5 210.5,-279.5 210.5,-279.5 204.5,-279.5 198.5,-273.5 198.5,-267.5 198.5,-267.5 198.5,-207.5 198.5,-207.5 198.5,-201.5 204.5,-195.5 210.5,-195.5\"/>\n+<text text-anchor=\"middle\" x=\"232.5\" y=\"-264.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"266.5,-256.5 266.5,-279.5 \"/>\n+<text text-anchor=\"middle\" x=\"301\" y=\"-264.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"198.5,-256.5 335.5,-256.5 \"/>\n+<text text-anchor=\"middle\" x=\"267\" y=\"-241.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali-c55 isp</text>\n+<text text-anchor=\"middle\" x=\"267\" y=\"-226.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l-subdev1</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"198.5,-218.5 335.5,-218.5 \"/>\n+<text text-anchor=\"middle\" x=\"221\" y=\"-203.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"243.5,-195.5 243.5,-218.5 \"/>\n+<text text-anchor=\"middle\" x=\"266.5\" y=\"-203.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"289.5,-195.5 289.5,-218.5 \"/>\n+<text text-anchor=\"middle\" x=\"312.5\" y=\"-203.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n+</g>\n+<!-- n00000001->n00000003 -->\n+<g id=\"edge1\" class=\"edge\">\n+<title>n00000001:port0->n00000003:port0</title>\n+<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M147,-327.5C153.23,-327.5 151.15,-320.9 155,-316 169.96,-296.96 169.41,-275.56 186.85,-269.92\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"187.58,-273.36 197,-268.5 186.61,-266.42 187.58,-273.36\"/>\n+</g>\n+<!-- n00000009 -->\n+<g id=\"node3\" class=\"node\">\n+<title>n00000009</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M182,-74.5C182,-74.5 306,-74.5 306,-74.5 312,-74.5 318,-80.5 318,-86.5 318,-86.5 318,-146.5 318,-146.5 318,-152.5 312,-158.5 306,-158.5 306,-158.5 182,-158.5 182,-158.5 176,-158.5 170,-152.5 170,-146.5 170,-146.5 170,-86.5 170,-86.5 170,-80.5 176,-74.5 182,-74.5\"/>\n+<text text-anchor=\"middle\" x=\"207\" y=\"-143.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"244,-135.5 244,-158.5 \"/>\n+<text text-anchor=\"middle\" x=\"281\" y=\"-143.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"170,-135.5 318,-135.5 \"/>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-120.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali-c55 resizer fr</text>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-105.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l-subdev2</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"170,-97.5 318,-97.5 \"/>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-82.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n+</g>\n+<!-- n00000003->n00000009 -->\n+<g id=\"edge2\" class=\"edge\">\n+<title>n00000003:port1->n00000009:port0</title>\n+<path fill=\"none\" stroke=\"black\" stroke-width=\"2\" d=\"M221,-195C221,-181.86 212.79,-177.8 208.95,-168.92\"/>\n+<polygon fill=\"black\" stroke=\"black\" stroke-width=\"2\" points=\"212.36,-168.14 207,-159 205.49,-169.49 212.36,-168.14\"/>\n+</g>\n+<!-- n00000003->n00000009 -->\n+<g id=\"edge3\" class=\"edge\">\n+<title>n00000003:port2->n00000009:port2</title>\n+<path fill=\"none\" stroke=\"black\" stroke-width=\"2\" d=\"M266,-195C266,-181.73 274.79,-177.84 278.91,-168.96\"/>\n+<polygon fill=\"black\" stroke=\"black\" stroke-width=\"2\" points=\"282.38,-169.51 281,-159 275.53,-168.07 282.38,-169.51\"/>\n+</g>\n+<!-- n0000000d -->\n+<g id=\"node4\" class=\"node\">\n+<title>n0000000d</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M12,-74.5C12,-74.5 140,-74.5 140,-74.5 146,-74.5 152,-80.5 152,-86.5 152,-86.5 152,-146.5 152,-146.5 152,-152.5 146,-158.5 140,-158.5 140,-158.5 12,-158.5 12,-158.5 6,-158.5 0,-152.5 0,-146.5 0,-146.5 0,-86.5 0,-86.5 0,-80.5 6,-74.5 12,-74.5\"/>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-143.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"0,-135.5 152,-135.5 \"/>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-120.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali-c55 resizer ds</text>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-105.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l-subdev3</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"0,-97.5 152,-97.5 \"/>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-82.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n+</g>\n+<!-- n00000003->n0000000d -->\n+<g id=\"edge4\" class=\"edge\">\n+<title>n00000003:port1->n0000000d:port0</title>\n+<path fill=\"none\" stroke=\"black\" stroke-width=\"2\" d=\"M197,-206.5C170.51,-206.5 176.57,-180.43 161,-159 160.2,-157.9 159.66,-156.73 159.25,-155.57\"/>\n+<polygon fill=\"black\" stroke=\"black\" stroke-width=\"2\" points=\"161.89,-153.26 153,-147.5 156.36,-157.55 161.89,-153.26\"/>\n+</g>\n+<!-- n0000001c -->\n+<g id=\"node5\" class=\"node\">\n+<title>n0000001c</title>\n+<polygon fill=\"yellow\" stroke=\"black\" points=\"475.5,-135.5 336.5,-135.5 336.5,-97.5 475.5,-97.5 475.5,-135.5\"/>\n+<text text-anchor=\"middle\" x=\"406\" y=\"-120.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali-c55 3a stats</text>\n+<text text-anchor=\"middle\" x=\"406\" y=\"-105.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/video3</text>\n+</g>\n+<!-- n00000003->n0000001c -->\n+<g id=\"edge5\" class=\"edge\">\n+<title>n00000003:port3->n0000001c</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M337,-206.5C368.55,-206.5 387.74,-171.13 397.62,-144.99\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"400.94,-146.11 400.96,-135.51 394.33,-143.78 400.94,-146.11\"/>\n+</g>\n+<!-- n00000010 -->\n+<g id=\"node6\" class=\"node\">\n+<title>n00000010</title>\n+<polygon fill=\"yellow\" stroke=\"black\" points=\"293,-38 195,-38 195,0 293,0 293,-38\"/>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">mali-c55 fr</text>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/video0</text>\n+</g>\n+<!-- n00000009->n00000010 -->\n+<g id=\"edge6\" class=\"edge\">\n+<title>n00000009:port1->n00000010</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M244,-74C244,-65.79 244,-56.87 244,-48.69\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"247.5,-48.49 244,-38.49 240.5,-48.49 247.5,-48.49\"/>\n+</g>\n+<!-- n00000014 -->\n+<g id=\"node7\" class=\"node\">\n+<title>n00000014</title>\n+<polygon fill=\"yellow\" stroke=\"black\" points=\"125,-38 27,-38 27,0 125,0 125,-38\"/>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">mali-c55 ds</text>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/video1</text>\n+</g>\n+<!-- n0000000d->n00000014 -->\n+<g id=\"edge7\" class=\"edge\">\n+<title>n0000000d:port1->n00000014</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M76,-74C76,-65.79 76,-56.87 76,-48.69\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"79.5,-48.49 76,-38.49 72.5,-48.49 79.5,-48.49\"/>\n+</g>\n+<!-- n00000018 -->\n+<g id=\"node8\" class=\"node\">\n+<title>n00000018</title>\n+<polygon fill=\"yellow\" stroke=\"black\" points=\"475.5,-377.5 318.5,-377.5 318.5,-339.5 475.5,-339.5 475.5,-377.5\"/>\n+<text text-anchor=\"middle\" x=\"397\" y=\"-362.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali-c55 3a params</text>\n+<text text-anchor=\"middle\" x=\"397\" y=\"-347.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/video2</text>\n+</g>\n+<!-- n00000018->n00000003 -->\n+<g id=\"edge8\" class=\"edge\">\n+<title>n00000018->n00000003:port4</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M393.36,-339.49C387.61,-316.23 374.19,-277.78 347.14,-269.93\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"347.39,-266.43 337,-268.5 346.42,-273.36 347.39,-266.43\"/>\n+</g>\n+<!-- n00000030 -->\n+<g id=\"node9\" class=\"node\">\n+<title>n00000030</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M175.5,-316.5C175.5,-316.5 288.5,-316.5 288.5,-316.5 294.5,-316.5 300.5,-322.5 300.5,-328.5 300.5,-328.5 300.5,-388.5 300.5,-388.5 300.5,-394.5 294.5,-400.5 288.5,-400.5 288.5,-400.5 175.5,-400.5 175.5,-400.5 169.5,-400.5 163.5,-394.5 163.5,-388.5 163.5,-388.5 163.5,-328.5 163.5,-328.5 163.5,-322.5 169.5,-316.5 175.5,-316.5\"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-385.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"163.5,-377.5 300.5,-377.5 \"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-362.3\" font-family=\"Times,serif\" font-size=\"14.00\">lte-csi2-rx</text>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-347.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l-subdev4</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"163.5,-339.5 300.5,-339.5 \"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-324.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n+</g>\n+<!-- n00000030->n00000003 -->\n+<g id=\"edge9\" class=\"edge\">\n+<title>n00000030:port1->n00000003:port0</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M232,-316C232,-304 232,-298.75 232,-290.12\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"235.5,-290 232,-280 228.5,-290 235.5,-290\"/>\n+</g>\n+<!-- n00000035 -->\n+<g id=\"node10\" class=\"node\">\n+<title>n00000035</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M175.5,-437.5C175.5,-437.5 288.5,-437.5 288.5,-437.5 294.5,-437.5 300.5,-443.5 300.5,-449.5 300.5,-449.5 300.5,-509.5 300.5,-509.5 300.5,-515.5 294.5,-521.5 288.5,-521.5 288.5,-521.5 175.5,-521.5 175.5,-521.5 169.5,-521.5 163.5,-515.5 163.5,-509.5 163.5,-509.5 163.5,-449.5 163.5,-449.5 163.5,-443.5 169.5,-437.5 175.5,-437.5\"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-506.3\" font-family=\"Times,serif\" font-size=\"14.00\"> </text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"163.5,-498.5 300.5,-498.5 \"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-483.3\" font-family=\"Times,serif\" font-size=\"14.00\">imx415 1-001a</text>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-468.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l-subdev5</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"163.5,-460.5 300.5,-460.5 \"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-445.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+</g>\n+<!-- n00000035->n00000030 -->\n+<g id=\"edge10\" class=\"edge\">\n+<title>n00000035:port0->n00000030:port0</title>\n+<path fill=\"none\" stroke=\"black\" stroke-width=\"2\" d=\"M232,-437C232,-425 232,-419.75 232,-411.12\"/>\n+<polygon fill=\"black\" stroke=\"black\" stroke-width=\"2\" points=\"235.5,-411 232,-401 228.5,-411 235.5,-411\"/>\n+</g>\n+</g>\n+</svg>\ndiff --git a/Documentation/docs.rst b/Documentation/docs.rst\nindex d65b2b4f..c495fa61 100644\n--- a/Documentation/docs.rst\n+++ b/Documentation/docs.rst\n@@ -14,12 +14,87 @@ Documentation\n \n API <api-html/index>\n \n-API\n-===\n+What is libcamera exactly?\n+==========================\n+\n+libcamera is an open source complex camera support library for Linux. The\n+library interfaces with Linux kernel uAPIs implemented by device drivers and\n+provides an intuitive API to developers in order to simplify the complexity\n+involved in capturing images from complex cameras on Linux systems.\n+\n+What's a \"complex camera\"?\n+==========================\n+\n+A modern \"camera\" tends to infact be several different pieces of hardware which\n+must all be controlled together in order to capture images. For example the\n+pipeline might consist of a camera sensor which actually records the data, a\n+receiver which accepts those data transmitted from the camera sensor and an\n+image signal processor which processes those data into a useful image in an\n+accepted format. The Linux kernel handles these multimedia devices through the\n+'Linux media' subsystem and provides a set of APIs (application programming\n+interfaces) known collectively as V4L2 (`Video for Linux 2`_) and the\n+`Media Controller`_ API which provide an interface to interact and control media\n+devices.\n+\n+.. _Video for Linux 2: https://www.linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/v4l2.html\n+.. _Media Controller: https://www.linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/mediactl/media-controller.html\n+\n+Included in this subsystem are drivers for camera sensors, CSI2 (Camera\n+Serial Interface) receivers, and ISPs (Image Signal Processors)\n+\n+The usage of these drivers to provide a functioning camera stack is a\n+responsibility that lies in userspace which is commonly implemented separately\n+by vendors without a common architecture or API for application developers. This\n+adds a lot of complexity to the task, particularly when considering that the\n+differences in hardware pipelines and their representation in the kernel's APIs\n+often necessitates bespoke handling.\n+\n+What is libcamera for?\n+======================\n \n-The libcamera API is extensively documented using Doxygen. The :ref:`API\n-nightly build <api>` contains the most up-to-date API documentation, built from\n-the latest master branch.\n+libcamera provides a complete camera stack for Linux based systems to abstract\n+the configuration of hardware and image control algorithms required to obtain\n+desirable results from the camera through the kernel's APIs, reducing those\n+operations to a simple and consistent method for developers. In short instead of\n+having to deal with this:\n+\n+.. figure:: c55.svg\n+\n+You can instead simply deal with this::\n+\n+ >>> import libcamera as lc\n+ >>> camera_manager = lc.CameraManager.singleton()\n+ [0:15:59.582029920] [504] INFO Camera camera_manager.cpp:313 libcamera v0.3.0+182-01e57380\n+ >>> for camera in camera_manager.cameras:\n+ ... print(f' - {camera.id}')\n+ ...\n+ - mali-c55 tpg\n+ - imx415 1-001a\n+\n+And the library handles the rest for you. These documentary pages give more\n+information on the internal workings of libcamera (and the kernel camera stack\n+that lies behind it) as well as guidance on using libcamera in an application or\n+extending the library with support for your hardware (through the pipeline\n+handler and IPA module writer's guides).\n+\n+How should I use it?\n+====================\n+\n+There are a few ways you might want to use libcamera, depending on your\n+application. It's always possible to use the library directly of course, and you\n+can find detailed information on how to do so in the\n+:doc:`application writer's guide <guides/application-developer>`. It may be more\n+appropriate to use one of the frameworks with libcamera support. For example an\n+application powering an embedded media device incorporating capture, encoding\n+and streaming of both video and audio might benefit from using `gstreamer`_ (for\n+which libcamera provides a plugin). Similarly an application for user-facing\n+devices like a laptop would likely benefit accessing cameras through the XDG\n+camera portal and `pipewire`_, which brings the advantages of resource sharing\n+(multiple applications accessing the stream at the same time) and access\n+control.\n+\n+.. _gstreamer: https://gstreamer.freedesktop.org/\n+.. _pipewire: https://pipewire.org/\n \n libcamera Architecture\n ======================\n@@ -177,7 +252,7 @@ Helpers and Support Classes\n \n \n V4L2 Compatibility Layer\n-------------------------\n+========================\n \n V4L2 compatibility is achieved through a shared library that traps all\n accesses to camera devices and routes them to libcamera to emulate high-level\n@@ -190,7 +265,7 @@ designed for video conferencing.\n \n \n Android Camera HAL\n-------------------\n+==================\n \n Camera support for Android is achieved through a generic Android\n camera HAL implementation on top of libcamera. The HAL will implement internally\n@@ -200,3 +275,42 @@ support.\n The Android camera HAL implementation will initially target the\n LIMITED hardware level, with support for the FULL level then being gradually\n implemented.\n+\n+Platform Support\n+================\n+\n+The library currently supports the following hardware platforms specifically\n+with dedicated pipeline handlers:\n+\n+ - Arm Mali-C55 (mali-c55)\n+ - Intel IPU3 (ipu3)\n+ - Rockchip RK3399 (rkisp1)\n+ - RaspberryPi 3 and 4 (rpi/vc4)\n+\n+Furthermore, generic platform support is provided for the following:\n+\n+ - USB video device class cameras (uvcvideo)\n+ - iMX7, Allwinner Sun6i (simple)\n+ - Virtual media controller driver for test use cases (vimc)\n+\n+Licensing\n+=========\n+\n+The libcamera core, is covered by the `LGPL-2.1-or-later`_ license. Pipeline\n+Handlers are a part of the libcamera code base and need to be contributed\n+upstream by device vendors. IPA modules included in libcamera are covered by a\n+free software license, however third-parties may develop IPA modules outside of\n+libcamera and distribute them under a closed-source license, provided they do\n+not include source code from the libcamera project.\n+\n+The libcamera project itself contains multiple libraries, applications and\n+utilities. Licenses are expressed through SPDX tags in text-based files that\n+support comments, and through the .reuse/dep5 file otherwise. A copy of all\n+licenses are stored in the LICENSES directory, and a full summary of the\n+licensing used throughout the project can be found in the COPYING.rst document.\n+\n+Applications which link dynamically against libcamera and use only the public\n+API are an independent work of the authors and have no license restrictions\n+imposed upon them from libcamera.\n+\n+.. _LGPL-2.1-or-later: https://spdx.org/licenses/LGPL-2.1-or-later.html\ndiff --git a/Documentation/documentation-contents.rst b/Documentation/documentation-contents.rst\nindex 613366d1..d978b704 100644\n--- a/Documentation/documentation-contents.rst\n+++ b/Documentation/documentation-contents.rst\n@@ -10,7 +10,6 @@\n * :doc:`/environment_variables`\n * :doc:`/feature_requirements`\n * :doc:`/guides/application-developer`\n- * :doc:`/guides/introduction`\n * :doc:`/guides/ipa`\n * :doc:`/guides/pipeline-handler`\n * :doc:`/guides/tracing`\ndiff --git a/Documentation/guides/introduction.rst b/Documentation/guides/introduction.rst\ndeleted file mode 100644\nindex e419eb9d..00000000\n--- a/Documentation/guides/introduction.rst\n+++ /dev/null\n@@ -1,78 +0,0 @@\n-.. SPDX-License-Identifier: CC-BY-SA-4.0\n-\n-.. include:: ../documentation-contents.rst\n-\n-Developers guide to libcamera\n-=============================\n-\n-The Linux kernel handles multimedia devices through the 'Linux media' subsystem\n-and provides a set of APIs (application programming interfaces) known\n-collectively as V4L2 (`Video for Linux 2`_) and the `Media Controller`_ API\n-which provide an interface to interact and control media devices.\n-\n-Included in this subsystem are drivers for camera sensors, CSI2 (Camera\n-Serial Interface) receivers, and ISPs (Image Signal Processors)\n-\n-The usage of these drivers to provide a functioning camera stack is a\n-responsibility that lies in userspace which is commonly implemented separately\n-by vendors without a common architecture or API for application developers.\n-\n-libcamera provides a complete camera stack for Linux based systems to abstract\n-functionality desired by camera application developers and process the\n-configuration of hardware and image control algorithms required to obtain\n-desirable results from the camera.\n-\n-.. _Video for Linux 2: https://www.linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/v4l2.html\n-.. _Media Controller: https://www.linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/mediactl/media-controller.html\n-\n-\n-In this developers guide the current `Platform Support`_ is detailed, as well as\n-an overview of the `Licensing`_ requirements of the project.\n-\n-This introduction is followed by a walkthrough tutorial to newcomers wishing to\n-support a new platform with the `Pipeline Handler Writers Guide`_ and for those\n-looking to make use of the libcamera native API an `Application Writers Guide`_\n-provides a tutorial of the key APIs exposed by libcamera.\n-\n-.. _Pipeline Handler Writers Guide: pipeline-handler.html\n-.. _Application Writers Guide: application-developer.html\n-\n-.. TODO: Correctly link to the other articles of the guide\n-\n-Platform Support\n-----------------\n-\n-The library currently supports the following hardware platforms specifically\n-with dedicated pipeline handlers:\n-\n- - Intel IPU3 (ipu3)\n- - Rockchip RK3399 (rkisp1)\n- - RaspberryPi 3 and 4 (rpi/vc4)\n-\n-Furthermore, generic platform support is provided for the following:\n-\n- - USB video device class cameras (uvcvideo)\n- - iMX7, Allwinner Sun6i (simple)\n- - Virtual media controller driver for test use cases (vimc)\n-\n-Licensing\n----------\n-\n-The libcamera core, is covered by the `LGPL-2.1-or-later`_ license. Pipeline\n-Handlers are a part of the libcamera code base and need to be contributed\n-upstream by device vendors. IPA modules included in libcamera are covered by a\n-free software license, however third-parties may develop IPA modules outside of\n-libcamera and distribute them under a closed-source license, provided they do\n-not include source code from the libcamera project.\n-\n-The libcamera project itself contains multiple libraries, applications and\n-utilities. Licenses are expressed through SPDX tags in text-based files that\n-support comments, and through the .reuse/dep5 file otherwise. A copy of all\n-licenses are stored in the LICENSES directory, and a full summary of the\n-licensing used throughout the project can be found in the COPYING.rst document.\n-\n-Applications which link dynamically against libcamera and use only the public\n-API are an independent work of the authors and have no license restrictions\n-imposed upon them from libcamera.\n-\n-.. _LGPL-2.1-or-later: https://spdx.org/licenses/LGPL-2.1-or-later.html\ndiff --git a/Documentation/index.rst b/Documentation/index.rst\nindex 59416906..6d7d2ca3 100644\n--- a/Documentation/index.rst\n+++ b/Documentation/index.rst\n@@ -17,7 +17,6 @@\n Application Writer's Guide <guides/application-developer>\n Camera Sensor Model <camera-sensor-model>\n Camera Stack <camera_stack>\n- Developer Guide <guides/introduction>\n Environment variables <environment_variables>\n Feature Requirements <feature_requirements>\n IPA Writer's guide <guides/ipa>\ndiff --git a/Documentation/meson.build b/Documentation/meson.build\nindex 74cffc11..32642f32 100644\n--- a/Documentation/meson.build\n+++ b/Documentation/meson.build\n@@ -134,7 +134,6 @@ if sphinx.found()\n 'environment_variables.rst',\n \t'feature_requirements.rst','\n 'guides/application-developer.rst',\n- 'guides/introduction.rst',\n 'guides/ipa.rst',\n 'guides/pipeline-handler.rst',\n 'guides/tracing.rst',\n", "prefixes": [ "v2", "6/7" ] }