Skip to content

Commit bd124d8

Browse files
committed
Merge branch 'master' into next
2 parents c576b43 + 3f50974 commit bd124d8

File tree

163 files changed

+12219
-2869
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+12219
-2869
lines changed

Documentation/Doxyfile-internal.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
@INCLUDE_PATH = @TOP_BUILDDIR@/Documentation
44
@INCLUDE = Doxyfile-common
55

6+
GENERATE_TAGFILE = @TOP_BUILDDIR@/Documentation/internal-api-html/tagfile.xml
7+
68
HIDE_UNDOC_CLASSES = NO
79
HIDE_UNDOC_MEMBERS = NO
810
HTML_OUTPUT = internal-api-html

Documentation/Doxyfile-public.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
@INCLUDE_PATH = @TOP_BUILDDIR@/Documentation
44
@INCLUDE = Doxyfile-common
55

6+
GENERATE_TAGFILE = @TOP_BUILDDIR@/Documentation/api-html/tagfile.xml
7+
68
HIDE_UNDOC_CLASSES = YES
79
HIDE_UNDOC_MEMBERS = YES
810
HTML_OUTPUT = api-html

Documentation/conf.py renamed to Documentation/conf.py.in

Lines changed: 15 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
# -- Project information -----------------------------------------------------
2222

2323
project = 'libcamera'
24-
copyright = '2018-2019, The libcamera documentation authors'
25-
author = u'Kieran Bingham, Jacopo Mondi, Laurent Pinchart, Niklas Söderlund'
24+
copyright = '2018-2025, The libcamera documentation authors'
25+
author = 'The libcamera documentation authors'
2626

2727
# Version information is provided by the build environment, through the
2828
# sphinx command line.
@@ -37,7 +37,8 @@
3737
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
3838
# ones.
3939
extensions = [
40-
'sphinx.ext.graphviz'
40+
'sphinx.ext.graphviz',
41+
'sphinxcontrib.doxylink',
4142
]
4243

4344
graphviz_output_format = 'svg'
@@ -65,23 +66,30 @@
6566
# directories to ignore when looking for source files.
6667
# This pattern also affects html_static_path and html_extra_path.
6768
exclude_patterns = [
68-
'_build',
69-
'Thumbs.db',
70-
'.DS_Store',
7169
'documentation-contents.rst',
7270
]
7371

7472
# The name of the Pygments (syntax highlighting) style to use.
7573
pygments_style = None
7674

75+
doxylink = {
76+
'doxy-pub': (
77+
'@TOP_BUILDDIR@/Documentation/api-html/tagfile.xml',
78+
'../api-html/',
79+
),
80+
'doxy-int': (
81+
'@TOP_BUILDDIR@/Documentation/internal-api-html/tagfile.xml',
82+
'../internal-api-html/',
83+
),
84+
}
7785

7886
# -- Options for HTML output -------------------------------------------------
7987

8088
# The theme to use for HTML and HTML Help pages. See the documentation for
8189
# a list of builtin themes.
8290
#
8391
html_theme = 'theme'
84-
html_theme_path = ['.']
92+
html_theme_path = ['@THEME_DIR@']
8593

8694
# Theme options are theme-specific and customize the look and feel of a theme
8795
# further. For a list of options available for each theme, see the
@@ -103,78 +111,3 @@
103111
# 'searchbox.html']``.
104112
#
105113
# html_sidebars = {}
106-
107-
108-
# -- Options for HTMLHelp output ---------------------------------------------
109-
110-
# Output file base name for HTML help builder.
111-
htmlhelp_basename = 'libcameradoc'
112-
113-
114-
# -- Options for LaTeX output ------------------------------------------------
115-
116-
latex_elements = {
117-
# The paper size ('letterpaper' or 'a4paper').
118-
#
119-
# 'papersize': 'letterpaper',
120-
121-
# The font size ('10pt', '11pt' or '12pt').
122-
#
123-
# 'pointsize': '10pt',
124-
125-
# Additional stuff for the LaTeX preamble.
126-
#
127-
# 'preamble': '',
128-
129-
# Latex figure (float) alignment
130-
#
131-
# 'figure_align': 'htbp',
132-
}
133-
134-
# Grouping the document tree into LaTeX files. List of tuples
135-
# (source start file, target name, title,
136-
# author, documentclass [howto, manual, or own class]).
137-
latex_documents = [
138-
(master_doc, 'libcamera.tex', 'libcamera Documentation',
139-
author, 'manual'),
140-
]
141-
142-
143-
# -- Options for manual page output ------------------------------------------
144-
145-
# One entry per manual page. List of tuples
146-
# (source start file, name, description, authors, manual section).
147-
man_pages = [
148-
(master_doc, 'libcamera', 'libcamera Documentation',
149-
[author], 1)
150-
]
151-
152-
153-
# -- Options for Texinfo output ----------------------------------------------
154-
155-
# Grouping the document tree into Texinfo files. List of tuples
156-
# (source start file, target name, title, author,
157-
# dir menu entry, description, category)
158-
texinfo_documents = [
159-
(master_doc, 'libcamera', 'libcamera Documentation',
160-
author, 'libcamera', 'One line description of project.',
161-
'Miscellaneous'),
162-
]
163-
164-
165-
# -- Options for Epub output -------------------------------------------------
166-
167-
# Bibliographic Dublin Core info.
168-
epub_title = project
169-
170-
# The unique identifier of the text. This can be a ISBN number
171-
# or the project homepage.
172-
#
173-
# epub_identifier = ''
174-
175-
# A unique identification for the text.
176-
#
177-
# epub_uid = ''
178-
179-
# A list of files that should not be packed into the epub file.
180-
epub_exclude_files = ['search.html']

Documentation/environment_variables.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ The optional `category <Log categories_>`__ is a string matching the categories
9090
defined by each file in the source base using the logging infrastructure. It
9191
can include a wildcard ('*') character at the end to match multiple categories.
9292

93-
For more information refer to the `API documentation <https://libcamera.org/api-html/log_8h.html#details>`__.
93+
For more information refer to the :doxy-int:`API documentation <log.h>`.
9494

9595
Examples:
9696

Documentation/guides/application-developer.rst

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,14 @@ defined names and types without the need of prefixing them.
4646
Camera Manager
4747
--------------
4848

49-
Every libcamera-based application needs an instance of a `CameraManager`_ that
50-
runs for the life of the application. When the Camera Manager starts, it
49+
Every libcamera-based application needs an instance of a :doxy-pub:`CameraManager`
50+
that runs for the life of the application. When the Camera Manager starts, it
5151
enumerates all the cameras detected in the system. Behind the scenes, libcamera
5252
abstracts and manages the complex pipelines that kernel drivers expose through
5353
the `Linux Media Controller`_ and `Video for Linux`_ (V4L2) APIs, meaning that
5454
an application doesn't need to handle device or driver specific details.
5555

56-
.. _CameraManager: https://libcamera.org/api-html/classlibcamera_1_1CameraManager.html
57-
.. _Linux Media Controller: https://www.kernel.org/doc/html/latest/media/uapi/mediactl/media-controller-intro.html
56+
.. _Linux Media Controller: https://www.kernel.org/doc/html/latest/userspace-api/media/mediactl/media-controller.html
5857
.. _Video for Linux: https://www.linuxtv.org/docs.php
5958

6059
Before the ``int main()`` function, create a global shared pointer
@@ -210,10 +209,9 @@ function. If the new values are not supported by the ``Camera`` device, the
210209
validation process adjusts the parameters to what it considers to be the closest
211210
supported values.
212211

213-
The ``validate`` function returns a `Status`_ which applications shall check to
214-
see if the Pipeline Handler adjusted the configuration.
215-
216-
.. _Status: https://libcamera.org/api-html/classlibcamera_1_1CameraConfiguration.html#a64163f21db2fe1ce0a6af5a6f6847744
212+
The ``validate`` function returns a :doxy-pub:`CameraConfiguration::Status`
213+
which applications shall check to see if the Pipeline Handler adjusted the
214+
configuration.
217215

218216
For example, the code above set the width and height to 640x480, but if the
219217
camera cannot produce an image that large, it might adjust the configuration to
@@ -348,10 +346,10 @@ camera device, and associate a buffer for each of them for the ``Stream``.
348346
Event handling and callbacks
349347
----------------------------
350348

351-
The libcamera library uses the concept of `signals and slots` (similar to `Qt
352-
Signals and Slots`_) to connect events with callbacks to handle them.
349+
The libcamera library uses the concept of :doxy-pub:`signals and slots <Signal>`
350+
(similar to `Qt Signals and Slots`_) to connect events with callbacks to handle
351+
them.
353352

354-
.. _signals and slots: https://libcamera.org/api-html/classlibcamera_1_1Signal.html#details
355353
.. _Qt Signals and Slots: https://doc.qt.io/qt-6/signalsandslots.html
356354

357355
The ``Camera`` device emits two signals that applications can connect to in
@@ -400,9 +398,7 @@ Request completion events can be emitted for requests which have been canceled,
400398
for example, by unexpected application shutdown. To avoid an application
401399
processing invalid image data, it's worth checking that the request has
402400
completed successfully. The list of request completion statuses is available in
403-
the `Request::Status`_ class enum documentation.
404-
405-
.. _Request::Status: https://www.libcamera.org/api-html/classlibcamera_1_1Request.html#a2209ba8d51af8167b25f6e3e94d5c45b
401+
the :doxy-pub:`Request::Status` class enum documentation.
406402

407403
.. code:: cpp
408404
@@ -422,9 +418,7 @@ Iterating through the map allows applications to inspect each completed buffer
422418
in this request, and access the metadata associated to each frame.
423419

424420
The metadata buffer contains information such the capture status, a timestamp,
425-
and the bytes used, as described in the `FrameMetadata`_ documentation.
426-
427-
.. _FrameMetaData: https://libcamera.org/api-html/structlibcamera_1_1FrameMetadata.html
421+
and the bytes used, as described in the :doxy-pub:`FrameMetadata` documentation.
428422

429423
.. code:: cpp
430424
@@ -515,13 +509,11 @@ and queue all the previously created requests.
515509
Event processing
516510
~~~~~~~~~~~~~~~~
517511

518-
libcamera creates an internal execution thread at `CameraManager::start()`_
512+
libcamera creates an internal execution thread at :doxy-pub:`CameraManager::start()`
519513
time to decouple its own event processing from the application's main thread.
520514
Applications are thus free to manage their own execution opportunely, and only
521515
need to respond to events generated by libcamera emitted through signals.
522516

523-
.. _CameraManager::start(): https://libcamera.org/api-html/classlibcamera_1_1CameraManager.html#a49e322880a2a26013bb0076788b298c5
524-
525517
Real-world applications will likely either integrate with the event loop of the
526518
framework they use, or create their own event loop to respond to user events.
527519
For the simple application presented in this example, it is enough to prevent

0 commit comments

Comments
 (0)