mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
Merge branch 'media-uapi' into docs-mw
Mauro says: In the past, media used Docbook to generate documentation, together with some logic to ensure that cross-references would match the actual defined uAPI. The rationale is that we wanted to automatically check for uAPI documentation gaps. The same logic was migrated to Sphinx. Back then, broken links were reported. However, recent versions of it and/or changes at conf.py disabled such checks. The result is that several symbols are now not cross-referenced, and we don't get warnings anymore when something breaks. This series consist on 2 parts: Part 1: extra patches to parse_data_structs.py and kernel_include.py; Part 2: media documentation fixes.
This commit is contained in:
@@ -87,6 +87,8 @@ import os.path
|
||||
import re
|
||||
import sys
|
||||
|
||||
from difflib import get_close_matches
|
||||
|
||||
from docutils import io, nodes, statemachine
|
||||
from docutils.statemachine import ViewList
|
||||
from docutils.parsers.rst import Directive, directives
|
||||
@@ -104,6 +106,8 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
RE_DOMAIN_REF = re.compile(r'\\ :(ref|c:type|c:func):`([^<`]+)(?:<([^>]+)>)?`\\')
|
||||
RE_SIMPLE_REF = re.compile(r'`([^`]+)`')
|
||||
RE_LINENO_REF = re.compile(r'^\s*-\s+LINENO_(\d+):\s+(.*)')
|
||||
RE_SPLIT_DOMAIN = re.compile(r"(.*)\.(.*)")
|
||||
|
||||
def ErrorString(exc): # Shamelessly stolen from docutils
|
||||
return f'{exc.__class__.__name}: {exc}'
|
||||
@@ -212,14 +216,16 @@ class KernelInclude(Directive):
|
||||
- a TOC table containing cross references.
|
||||
"""
|
||||
parser = ParseDataStructs()
|
||||
parser.parse_file(path)
|
||||
|
||||
if 'exception-file' in self.options:
|
||||
source_dir = os.path.dirname(os.path.abspath(
|
||||
self.state_machine.input_lines.source(
|
||||
self.lineno - self.state_machine.input_offset - 1)))
|
||||
exceptions_file = os.path.join(source_dir, self.options['exception-file'])
|
||||
parser.process_exceptions(exceptions_file)
|
||||
else:
|
||||
exceptions_file = None
|
||||
|
||||
parser.parse_file(path, exceptions_file)
|
||||
|
||||
# Store references on a symbol dict to be used at check time
|
||||
if 'warn-broken' in self.options:
|
||||
@@ -242,23 +248,32 @@ class KernelInclude(Directive):
|
||||
# TOC output is a ReST file, not a literal. So, we can add line
|
||||
# numbers
|
||||
|
||||
rawtext = parser.gen_toc()
|
||||
|
||||
include_lines = statemachine.string2lines(rawtext, tab_width,
|
||||
convert_whitespace=True)
|
||||
|
||||
# Append line numbers data
|
||||
|
||||
startline = self.options.get('start-line', None)
|
||||
endline = self.options.get('end-line', None)
|
||||
|
||||
relpath = os.path.relpath(path, srctree)
|
||||
|
||||
result = ViewList()
|
||||
if startline and startline > 0:
|
||||
offset = startline - 1
|
||||
else:
|
||||
offset = 0
|
||||
for line in parser.gen_toc().split("\n"):
|
||||
match = RE_LINENO_REF.match(line)
|
||||
if not match:
|
||||
result.append(line, path)
|
||||
continue
|
||||
|
||||
for ln, line in enumerate(include_lines, start=offset):
|
||||
result.append(line, path, ln)
|
||||
ln, ref = match.groups()
|
||||
ln = int(ln)
|
||||
|
||||
# Filter line range if needed
|
||||
if startline and (ln < startline):
|
||||
continue
|
||||
|
||||
if endline and (ln > endline):
|
||||
continue
|
||||
|
||||
# Sphinx numerates starting with zero, but text editors
|
||||
# and other tools start from one
|
||||
realln = ln + 1
|
||||
result.append(f"- {ref}: {relpath}#{realln}", path, ln)
|
||||
|
||||
self.state_machine.insert_input(result, path)
|
||||
|
||||
@@ -388,6 +403,63 @@ class KernelInclude(Directive):
|
||||
# ==============================================================================
|
||||
|
||||
reported = set()
|
||||
DOMAIN_INFO = {}
|
||||
all_refs = {}
|
||||
|
||||
def fill_domain_info(env):
|
||||
"""
|
||||
Get supported reference types for each Sphinx domain and C namespaces
|
||||
"""
|
||||
if DOMAIN_INFO:
|
||||
return
|
||||
|
||||
for domain_name, domain_instance in env.domains.items():
|
||||
try:
|
||||
object_types = list(domain_instance.object_types.keys())
|
||||
DOMAIN_INFO[domain_name] = object_types
|
||||
except AttributeError:
|
||||
# Ignore domains that we can't retrieve object types, if any
|
||||
pass
|
||||
|
||||
for domain in DOMAIN_INFO.keys():
|
||||
domain_obj = env.get_domain(domain)
|
||||
for name, dispname, objtype, docname, anchor, priority in domain_obj.get_objects():
|
||||
ref_name = name.lower()
|
||||
|
||||
if domain == "c":
|
||||
if '.' in ref_name:
|
||||
ref_name = ref_name.split(".")[-1]
|
||||
|
||||
if not ref_name in all_refs:
|
||||
all_refs[ref_name] = []
|
||||
|
||||
all_refs[ref_name].append(f"\t{domain}:{objtype}:`{name}` (from {docname})")
|
||||
|
||||
def get_suggestions(app, env, node,
|
||||
original_target, original_domain, original_reftype):
|
||||
"""Check if target exists in the other domain or with different reftypes."""
|
||||
original_target = original_target.lower()
|
||||
|
||||
# Remove namespace if present
|
||||
if original_domain == "c":
|
||||
if '.' in original_target:
|
||||
original_target = original_target.split(".")[-1]
|
||||
|
||||
suggestions = []
|
||||
|
||||
# If name exists, propose exact name match on different domains
|
||||
if original_target in all_refs:
|
||||
return all_refs[original_target]
|
||||
|
||||
# If not found, get a close match, using difflib.
|
||||
# Such method is based on Ratcliff-Obershelp Algorithm, which seeks
|
||||
# for a close match within a certain distance. We're using the defaults
|
||||
# here, e.g. cutoff=0.6, proposing 3 alternatives
|
||||
matches = get_close_matches(original_target, all_refs.keys())
|
||||
for match in matches:
|
||||
suggestions += all_refs[match]
|
||||
|
||||
return suggestions
|
||||
|
||||
def check_missing_refs(app, env, node, contnode):
|
||||
"""Check broken refs for the files it creates xrefs"""
|
||||
@@ -404,11 +476,13 @@ def check_missing_refs(app, env, node, contnode):
|
||||
if node.source not in xref_files:
|
||||
return None
|
||||
|
||||
fill_domain_info(env)
|
||||
|
||||
target = node.get('reftarget', '')
|
||||
domain = node.get('refdomain', 'std')
|
||||
reftype = node.get('reftype', '')
|
||||
|
||||
msg = f"can't link to: {domain}:{reftype}:: {target}"
|
||||
msg = f"Invalid xref: {domain}:{reftype}:`{target}`"
|
||||
|
||||
# Don't duplicate warnings
|
||||
data = (node.source, msg)
|
||||
@@ -416,6 +490,10 @@ def check_missing_refs(app, env, node, contnode):
|
||||
return None
|
||||
reported.add(data)
|
||||
|
||||
suggestions = get_suggestions(app, env, node, target, domain, reftype)
|
||||
if suggestions:
|
||||
msg += ". Possible alternatives:\n" + '\n'.join(suggestions)
|
||||
|
||||
logger.warning(msg, location=node, type='ref', subtype='missing')
|
||||
|
||||
return None
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
|
||||
.. _cec_header:
|
||||
|
||||
***************
|
||||
CEC Header File
|
||||
***************
|
||||
****************
|
||||
CEC uAPI Symbols
|
||||
****************
|
||||
|
||||
.. kernel-include:: include/uapi/linux/cec.h
|
||||
:generate-cross-refs:
|
||||
:exception-file: cec.h.rst.exceptions
|
||||
:toc:
|
||||
:warn-broken:
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# All symbols belong to CEC namespace
|
||||
namespace CEC
|
||||
|
||||
# Ignore header name
|
||||
ignore define _CEC_UAPI_H
|
||||
|
||||
|
||||
@@ -1,34 +1,36 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# All symbols belone to this namespace
|
||||
namespace DTV.dmx
|
||||
|
||||
# Ignore header name
|
||||
ignore define _UAPI_DVBDMX_H_
|
||||
|
||||
# Ignore limit constants
|
||||
ignore define DMX_FILTER_SIZE
|
||||
|
||||
# dmx_pes_type_t enum symbols
|
||||
replace enum dmx_ts_pes :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_AUDIO0 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_VIDEO0 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_TELETEXT0 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_SUBTITLE0 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_PCR0 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_AUDIO1 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_VIDEO1 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_TELETEXT1 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_SUBTITLE1 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_PCR1 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_AUDIO2 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_VIDEO2 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_TELETEXT2 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_SUBTITLE2 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_PCR2 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_AUDIO3 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_VIDEO3 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_TELETEXT3 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_SUBTITLE3 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_PCR3 :c:type:`dmx_pes_type`
|
||||
replace symbol DMX_PES_OTHER :c:type:`dmx_pes_type`
|
||||
# dmx_ts_pes_type_t enum symbols
|
||||
replace symbol DMX_PES_AUDIO0 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_VIDEO0 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_TELETEXT0 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_SUBTITLE0 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_PCR0 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_AUDIO1 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_VIDEO1 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_TELETEXT1 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_SUBTITLE1 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_PCR1 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_AUDIO2 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_VIDEO2 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_TELETEXT2 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_SUBTITLE2 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_PCR2 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_AUDIO3 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_VIDEO3 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_TELETEXT3 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_SUBTITLE3 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_PCR3 :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
replace symbol DMX_PES_OTHER :c:type:`DTV.dmx.dmx_ts_pes`
|
||||
|
||||
# Ignore obsolete symbols
|
||||
ignore define DMX_PES_AUDIO
|
||||
@@ -38,29 +40,23 @@ ignore define DMX_PES_SUBTITLE
|
||||
ignore define DMX_PES_PCR
|
||||
|
||||
# dmx_input_t symbols
|
||||
replace enum dmx_input :c:type:`dmx_input`
|
||||
replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
|
||||
replace symbol DMX_IN_DVR :c:type:`dmx_input`
|
||||
replace symbol DMX_IN_FRONTEND :c:enum:`DTV.dmx.dmx_input`
|
||||
replace symbol DMX_IN_DVR :c:enum:`DTV.dmx.dmx_input`
|
||||
|
||||
# Flags for struct dmx_sct_filter_params
|
||||
replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
|
||||
replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
|
||||
replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
|
||||
replace define DMX_CHECK_CRC :c:type:`DTV.dmx.dmx_sct_filter_params`
|
||||
replace define DMX_ONESHOT :c:type:`DTV.dmx.dmx_sct_filter_params`
|
||||
replace define DMX_IMMEDIATE_START :c:type:`DTV.dmx.dmx_sct_filter_params`
|
||||
|
||||
# some typedefs should point to struct/enums
|
||||
replace typedef dmx_filter_t :c:type:`dmx_filter`
|
||||
replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
|
||||
replace typedef dmx_input_t :c:type:`dmx_input`
|
||||
replace symbol DMX_BUFFER_FLAG_HAD_CRC32_DISCARD :c:type:`DTV.dmx.dmx_buffer_flags`
|
||||
replace symbol DMX_BUFFER_FLAG_TEI :c:type:`DTV.dmx.dmx_buffer_flags`
|
||||
replace symbol DMX_BUFFER_PKT_COUNTER_MISMATCH :c:type:`DTV.dmx.dmx_buffer_flags`
|
||||
replace symbol DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED :c:type:`DTV.dmx.dmx_buffer_flags`
|
||||
replace symbol DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR :c:type:`DTV.dmx.dmx_buffer_flags`
|
||||
|
||||
replace symbol DMX_BUFFER_FLAG_HAD_CRC32_DISCARD :c:type:`dmx_buffer_flags`
|
||||
replace symbol DMX_BUFFER_FLAG_TEI :c:type:`dmx_buffer_flags`
|
||||
replace symbol DMX_BUFFER_PKT_COUNTER_MISMATCH :c:type:`dmx_buffer_flags`
|
||||
replace symbol DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED :c:type:`dmx_buffer_flags`
|
||||
replace symbol DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR :c:type:`dmx_buffer_flags`
|
||||
|
||||
replace symbol DMX_OUT_DECODER :c:type:`dmx_output`
|
||||
replace symbol DMX_OUT_TAP :c:type:`dmx_output`
|
||||
replace symbol DMX_OUT_TS_TAP :c:type:`dmx_output`
|
||||
replace symbol DMX_OUT_TSDEMUX_TAP :c:type:`dmx_output`
|
||||
replace symbol DMX_OUT_DECODER :c:type:`DTV.dmx.dmx_output`
|
||||
replace symbol DMX_OUT_TAP :c:type:`DTV.dmx.dmx_output`
|
||||
replace symbol DMX_OUT_TS_TAP :c:type:`DTV.dmx.dmx_output`
|
||||
replace symbol DMX_OUT_TSDEMUX_TAP :c:type:`DTV.dmx.dmx_output`
|
||||
|
||||
replace ioctl DMX_DQBUF dmx_qbuf
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: DTV.dmx
|
||||
|
||||
.. _dmx_types:
|
||||
|
||||
|
||||
@@ -28,13 +28,14 @@ ignore define MAX_DTV_STATS
|
||||
ignore define DTV_IOCTL_MAX_MSGS
|
||||
|
||||
# the same reference is used for both get and set ioctls
|
||||
replace ioctl FE_SET_PROPERTY :c:type:`FE_GET_PROPERTY`
|
||||
replace ioctl FE_SET_PROPERTY :ref:`FE_GET_PROPERTY`
|
||||
replace ioctl FE_GET_PROPERTY :ref:`FE_GET_PROPERTY`
|
||||
|
||||
# Typedefs that use the enum reference
|
||||
replace typedef fe_sec_voltage_t :c:type:`fe_sec_voltage`
|
||||
|
||||
# Replaces for flag constants
|
||||
replace define FE_TUNE_MODE_ONESHOT :c:func:`FE_SET_FRONTEND_TUNE_MODE`
|
||||
replace define FE_TUNE_MODE_ONESHOT :ref:`FE_SET_FRONTEND_TUNE_MODE`
|
||||
replace define LNA_AUTO dtv-lna
|
||||
replace define NO_STREAM_ID_FILTER dtv-stream-id
|
||||
|
||||
|
||||
@@ -1,25 +1,46 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
|
||||
****************************
|
||||
Digital TV uAPI header files
|
||||
****************************
|
||||
|
||||
Digital TV uAPI headers
|
||||
***********************
|
||||
Digital TV uAPI symbols
|
||||
***********************
|
||||
|
||||
.. contents:: Table of Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
|
||||
Frontend
|
||||
========
|
||||
|
||||
.. kernel-include:: include/uapi/linux/dvb/frontend.h
|
||||
:generate-cross-refs:
|
||||
:exception-file: frontend.h.rst.exceptions
|
||||
:toc:
|
||||
:warn-broken:
|
||||
|
||||
Demux
|
||||
=====
|
||||
|
||||
.. kernel-include:: include/uapi/linux/dvb/dmx.h
|
||||
:generate-cross-refs:
|
||||
:exception-file: dmx.h.rst.exceptions
|
||||
:toc:
|
||||
:warn-broken:
|
||||
|
||||
Conditional Access
|
||||
==================
|
||||
|
||||
.. kernel-include:: include/uapi/linux/dvb/ca.h
|
||||
:generate-cross-refs:
|
||||
:exception-file: ca.h.rst.exceptions
|
||||
:toc:
|
||||
:warn-broken:
|
||||
|
||||
Network
|
||||
=======
|
||||
|
||||
.. kernel-include:: include/uapi/linux/dvb/net.h
|
||||
:generate-cross-refs:
|
||||
:exception-file: net.h.rst.exceptions
|
||||
:toc:
|
||||
:warn-broken:
|
||||
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
|
||||
.. _media_header:
|
||||
|
||||
****************************
|
||||
Media Controller Header File
|
||||
****************************
|
||||
*****************************
|
||||
Media controller uAPI symbols
|
||||
*****************************
|
||||
|
||||
.. kernel-include:: include/uapi/linux/media.h
|
||||
:generate-cross-refs:
|
||||
:exception-file: media.h.rst.exceptions
|
||||
:toc:
|
||||
:warn-broken:
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# All symbols are mapped inside MC C domain namespace
|
||||
namespace MC
|
||||
|
||||
# Ignore header name
|
||||
ignore define __LINUX_MEDIA_H
|
||||
|
||||
|
||||
@@ -2,11 +2,19 @@
|
||||
|
||||
.. _lirc_header:
|
||||
|
||||
****************
|
||||
LIRC Header File
|
||||
****************
|
||||
*****************
|
||||
LIRC uAPI symbols
|
||||
*****************
|
||||
|
||||
.. contents:: Table of Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
|
||||
|
||||
|
||||
.. kernel-include:: include/uapi/linux/lirc.h
|
||||
:generate-cross-refs:
|
||||
:exception-file: lirc.h.rst.exceptions
|
||||
:toc:
|
||||
:warn-broken:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _app-pri:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _audio:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
**********
|
||||
References
|
||||
|
||||
@@ -667,6 +667,8 @@ Buffer Flags
|
||||
exposure of the frame has begun. This is only valid for the
|
||||
``V4L2_BUF_TYPE_VIDEO_CAPTURE`` buffer type.
|
||||
|
||||
.. c:enum:: v4l2_memory
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\normalsize
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _capture-example:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
file: media/v4l/capture.c
|
||||
=========================
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
****************************
|
||||
Defining Colorspaces in V4L2
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
********************************
|
||||
Detailed Colorspace Descriptions
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _colorspaces:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _common-defs:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _common:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _compat:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _control:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _crop:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _depth-formats:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _decoder:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _encoder:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _event:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _mem2mem:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _metadata:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _osd:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _overlay:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _radio:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _sdr:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _stateless_decoder:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _subdev:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _touch:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _devices:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _dv-timings:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _camera-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _codec-stateless-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _codec-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _colorimetry-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _detect-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _dv-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _flash-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _fm-rx-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _fm-tx-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _image-process-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _image-source-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _jpeg-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _rf-tuner-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _extended-controls:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _field-order:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. c:namespace:: V4L
|
||||
|
||||
Guidelines for Video4Linux pixel format 4CCs
|
||||
============================================
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _hsv-formats:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _libv4l:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _meta-formats:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: (GPL-2.0-only OR MIT)
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-c3isp-stats:
|
||||
.. _v4l2-meta-fmt-c3isp-params:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-d4xx:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
********************************************************************************************************************************************************************************************************************************************************************************
|
||||
V4L2_META_FMT_GENERIC_8 ('MET8'), V4L2_META_FMT_GENERIC_CSI2_10 ('MC1A'), V4L2_META_FMT_GENERIC_CSI2_12 ('MC1C'), V4L2_META_FMT_GENERIC_CSI2_14 ('MC1E'), V4L2_META_FMT_GENERIC_CSI2_16 ('MC1G'), V4L2_META_FMT_GENERIC_CSI2_20 ('MC1K'), V4L2_META_FMT_GENERIC_CSI2_24 ('MC1O')
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-params:
|
||||
.. _v4l2-meta-fmt-stat-3a:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-rpi-be-cfg:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-rpi-fe-cfg:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-rk-isp1-stat-3a:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-uvc:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-vivid:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-vsp1-hgo:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-meta-fmt-vsp1-hgt:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _pixfmt-bayer:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. -*- coding: utf-8; mode: rst -*-
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-CNF4:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
******************
|
||||
Compressed Formats
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _pixfmt-indexed:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
**********************
|
||||
Standard Image Formats
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-INZI:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-M420:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _packed-hsv:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _packed-yuv:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _pixfmt-reserved:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _pixfmt-rgb:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-sdr-fmt-cs8:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-SDR-FMT-CS14LE:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-sdr-fmt-cu8:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-SDR-FMT-CU16LE:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-SDR-FMT-PCU16BE:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-SDR-FMT-PCU18BE:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-SDR-FMT-PCU20BE:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-SDR-FMT-RU12LE:
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-pix-fmt-ipu3-sbggr10:
|
||||
.. _v4l2-pix-fmt-ipu3-sgbrg10:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SRGGB10:
|
||||
.. _v4l2-pix-fmt-sbggr10:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SBGGR10ALAW8:
|
||||
.. _v4l2-pix-fmt-sgbrg10alaw8:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SBGGR10DPCM8:
|
||||
.. _v4l2-pix-fmt-sgbrg10dpcm8:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SRGGB10P:
|
||||
.. _v4l2-pix-fmt-sbggr10p:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SRGGB12:
|
||||
.. _v4l2-pix-fmt-sbggr12:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SRGGB12P:
|
||||
.. _v4l2-pix-fmt-sbggr12p:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SRGGB14:
|
||||
.. _v4l2-pix-fmt-sbggr14:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SRGGB14P:
|
||||
.. _v4l2-pix-fmt-sbggr14p:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SRGGB16:
|
||||
.. _v4l2-pix-fmt-sbggr16:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _v4l2-pix-fmt-pisp-comp1-rggb:
|
||||
.. _v4l2-pix-fmt-pisp-comp1-grbg:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||||
.. c:namespace:: V4L
|
||||
|
||||
.. _V4L2-PIX-FMT-SRGGB8:
|
||||
.. _v4l2-pix-fmt-sbggr8:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user