mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-16 14:27:48 +00:00
07e8c30da9
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
3547 lines
130 KiB
Diff
3547 lines
130 KiB
Diff
From 58fa3ca8af541e6704ac11703fc3091d856e0700 Mon Sep 17 00:00:00 2001
|
|
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Date: Tue, 16 Mar 2010 00:26:04 +0100
|
|
Subject: [PATCH 28/43] v4l: v4l2_subdev userspace format API
|
|
|
|
Add a userspace API to get, set and enumerate the media format on a
|
|
subdev pad.
|
|
|
|
The format at the output of a subdev usually depends on the format at
|
|
its input(s). The try format operation is thus not suitable for probing
|
|
format at individual pads, as it can't modify the device state and thus
|
|
can't remember the format tried at the input to compute the output
|
|
format.
|
|
|
|
To fix the problem, pass an extra argument to the get/set format
|
|
operations to select the 'try' or 'active' format.
|
|
|
|
The try format is used when probing the subdev. Setting the try format
|
|
must not change the device configuration but can store data for later
|
|
reuse. Data storage is provided at the file-handle level so applications
|
|
probing the subdev concurently won't interfere with each other.
|
|
|
|
The active format is used when configuring the subdev. It's identical to
|
|
the format handled by the usual get/set operations.
|
|
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Stanimir Varbanov <svarbanov@mm-sol.com>
|
|
Signed-off-by: Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>
|
|
---
|
|
Documentation/DocBook/Makefile | 5 +-
|
|
Documentation/DocBook/media-entities.tmpl | 16 +
|
|
Documentation/DocBook/v4l/dev-subdev.xml | 274 +++
|
|
Documentation/DocBook/v4l/subdev-formats.xml | 2416 ++++++++++++++++++++
|
|
Documentation/DocBook/v4l/v4l2.xml | 4 +
|
|
Documentation/DocBook/v4l/vidioc-streamon.xml | 9 +
|
|
.../DocBook/v4l/vidioc-subdev-enum-frame-size.xml | 148 ++
|
|
.../DocBook/v4l/vidioc-subdev-enum-mbus-code.xml | 113 +
|
|
Documentation/DocBook/v4l/vidioc-subdev-g-fmt.xml | 174 ++
|
|
drivers/media/video/v4l2-subdev.c | 49 +
|
|
include/linux/Kbuild | 1 +
|
|
include/linux/v4l2-subdev.h | 90 +
|
|
include/media/v4l2-subdev.h | 10 +
|
|
13 files changed, 3308 insertions(+), 1 deletions(-)
|
|
create mode 100644 Documentation/DocBook/v4l/dev-subdev.xml
|
|
create mode 100644 Documentation/DocBook/v4l/subdev-formats.xml
|
|
create mode 100644 Documentation/DocBook/v4l/vidioc-subdev-enum-frame-size.xml
|
|
create mode 100644 Documentation/DocBook/v4l/vidioc-subdev-enum-mbus-code.xml
|
|
create mode 100644 Documentation/DocBook/v4l/vidioc-subdev-g-fmt.xml
|
|
create mode 100644 include/linux/v4l2-subdev.h
|
|
|
|
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
|
|
index 8b6e00a..2deb069 100644
|
|
--- a/Documentation/DocBook/Makefile
|
|
+++ b/Documentation/DocBook/Makefile
|
|
@@ -53,7 +53,10 @@ MAN := $(patsubst %.xml, %.9, $(BOOKS))
|
|
mandocs: $(MAN)
|
|
|
|
build_images = mkdir -p $(objtree)/Documentation/DocBook/media/ && \
|
|
- cp $(srctree)/Documentation/DocBook/dvb/*.png $(srctree)/Documentation/DocBook/v4l/*.gif $(objtree)/Documentation/DocBook/media/
|
|
+ cp $(srctree)/Documentation/DocBook/dvb/*.png \
|
|
+ $(srctree)/Documentation/DocBook/v4l/*.gif \
|
|
+ $(srctree)/Documentation/DocBook/v4l/*.png \
|
|
+ $(objtree)/Documentation/DocBook/media/
|
|
|
|
xmldoclinks:
|
|
ifneq ($(objtree),$(srctree))
|
|
diff --git a/Documentation/DocBook/media-entities.tmpl b/Documentation/DocBook/media-entities.tmpl
|
|
index 679c585..538f8fe 100644
|
|
--- a/Documentation/DocBook/media-entities.tmpl
|
|
+++ b/Documentation/DocBook/media-entities.tmpl
|
|
@@ -86,6 +86,10 @@
|
|
<!ENTITY VIDIOC-S-PRIORITY "<link linkend='vidioc-g-priority'><constant>VIDIOC_S_PRIORITY</constant></link>">
|
|
<!ENTITY VIDIOC-S-STD "<link linkend='vidioc-g-std'><constant>VIDIOC_S_STD</constant></link>">
|
|
<!ENTITY VIDIOC-S-TUNER "<link linkend='vidioc-g-tuner'><constant>VIDIOC_S_TUNER</constant></link>">
|
|
+<!ENTITY VIDIOC-SUBDEV-ENUM-FRAME-SIZE "<link linkend='vidioc-subdev-enum-frame-size'><constant>VIDIOC_SUBDEV_ENUM_FRAME_SIZE</constant></link>">
|
|
+<!ENTITY VIDIOC-SUBDEV-ENUM-MBUS-CODE "<link linkend='vidioc-subdev-enum-mbus-code'><constant>VIDIOC_SUBDEV_ENUM_MBUS_CODE</constant></link>">
|
|
+<!ENTITY VIDIOC-SUBDEV-G-FMT "<link linkend='vidioc-subdev-g-fmt'><constant>VIDIOC_SUBDEV_G_FMT</constant></link>">
|
|
+<!ENTITY VIDIOC-SUBDEV-S-FMT "<link linkend='vidioc-subdev-g-fmt'><constant>VIDIOC_SUBDEV_S_FMT</constant></link>">
|
|
<!ENTITY VIDIOC-TRY-ENCODER-CMD "<link linkend='vidioc-encoder-cmd'><constant>VIDIOC_TRY_ENCODER_CMD</constant></link>">
|
|
<!ENTITY VIDIOC-TRY-EXT-CTRLS "<link linkend='vidioc-g-ext-ctrls'><constant>VIDIOC_TRY_EXT_CTRLS</constant></link>">
|
|
<!ENTITY VIDIOC-TRY-FMT "<link linkend='vidioc-g-fmt'><constant>VIDIOC_TRY_FMT</constant></link>">
|
|
@@ -107,6 +111,7 @@
|
|
<!ENTITY v4l2-field "enum <link linkend='v4l2-field'>v4l2_field</link>">
|
|
<!ENTITY v4l2-frmivaltypes "enum <link linkend='v4l2-frmivaltypes'>v4l2_frmivaltypes</link>">
|
|
<!ENTITY v4l2-frmsizetypes "enum <link linkend='v4l2-frmsizetypes'>v4l2_frmsizetypes</link>">
|
|
+<!ENTITY v4l2-mbus-pixelcode "enum <link linkend='v4l2-mbus-pixelcode'>v4l2_mbus_pixelcode</link>">
|
|
<!ENTITY v4l2-memory "enum <link linkend='v4l2-memory'>v4l2_memory</link>">
|
|
<!ENTITY v4l2-mpeg-audio-ac3-bitrate "enum <link linkend='v4l2-mpeg-audio-ac3-bitrate'>v4l2_mpeg_audio_ac3_bitrate</link>">
|
|
<!ENTITY v4l2-mpeg-audio-crc "enum <link linkend='v4l2-mpeg-audio-crc'>v4l2_mpeg_audio_crc</link>">
|
|
@@ -130,6 +135,7 @@
|
|
<!ENTITY v4l2-mpeg-video-encoding "enum <link linkend='v4l2-mpeg-video-encoding'>v4l2_mpeg_video_encoding</link>">
|
|
<!ENTITY v4l2-power-line-frequency "enum <link linkend='v4l2-power-line-frequency'>v4l2_power_line_frequency</link>">
|
|
<!ENTITY v4l2-priority "enum <link linkend='v4l2-priority'>v4l2_priority</link>">
|
|
+<!ENTITY v4l2-subdev-format-whence "enum <link linkend='v4l2-subdev-format-whence'>v4l2_subdev_format_whence</link>">
|
|
<!ENTITY v4l2-tuner-type "enum <link linkend='v4l2-tuner-type'>v4l2_tuner_type</link>">
|
|
<!ENTITY v4l2-preemphasis "enum <link linkend='v4l2-preemphasis'>v4l2_preemphasis</link>">
|
|
|
|
@@ -171,6 +177,7 @@
|
|
<!ENTITY v4l2-hw-freq-seek "struct <link linkend='v4l2-hw-freq-seek'>v4l2_hw_freq_seek</link>">
|
|
<!ENTITY v4l2-input "struct <link linkend='v4l2-input'>v4l2_input</link>">
|
|
<!ENTITY v4l2-jpegcompression "struct <link linkend='v4l2-jpegcompression'>v4l2_jpegcompression</link>">
|
|
+<!ENTITY v4l2-mbus-framefmt "struct <link linkend='v4l2-mbus-framefmt'>v4l2_mbus_framefmt</link>">
|
|
<!ENTITY v4l2-modulator "struct <link linkend='v4l2-modulator'>v4l2_modulator</link>">
|
|
<!ENTITY v4l2-mpeg-vbi-fmt-ivtv "struct <link linkend='v4l2-mpeg-vbi-fmt-ivtv'>v4l2_mpeg_vbi_fmt_ivtv</link>">
|
|
<!ENTITY v4l2-output "struct <link linkend='v4l2-output'>v4l2_output</link>">
|
|
@@ -183,6 +190,9 @@
|
|
<!ENTITY v4l2-sliced-vbi-cap "struct <link linkend='v4l2-sliced-vbi-cap'>v4l2_sliced_vbi_cap</link>">
|
|
<!ENTITY v4l2-sliced-vbi-data "struct <link linkend='v4l2-sliced-vbi-data'>v4l2_sliced_vbi_data</link>">
|
|
<!ENTITY v4l2-sliced-vbi-format "struct <link linkend='v4l2-sliced-vbi-format'>v4l2_sliced_vbi_format</link>">
|
|
+<!ENTITY v4l2-subdev-frame-size-enum "struct <link linkend='v4l2-subdev-frame-size-enum'>v4l2_subdev_frame_size_enum</link>">
|
|
+<!ENTITY v4l2-subdev-format "struct <link linkend='v4l2-subdev-format'>v4l2_subdev_format</link>">
|
|
+<!ENTITY v4l2-subdev-mbus-code-enum "struct <link linkend='v4l2-subdev-mbus-code-enum'>v4l2_subdev_mbus_code_enum</link>">
|
|
<!ENTITY v4l2-standard "struct <link linkend='v4l2-standard'>v4l2_standard</link>">
|
|
<!ENTITY v4l2-streamparm "struct <link linkend='v4l2-streamparm'>v4l2_streamparm</link>">
|
|
<!ENTITY v4l2-timecode "struct <link linkend='v4l2-timecode'>v4l2_timecode</link>">
|
|
@@ -212,6 +222,7 @@
|
|
<!ENTITY ENXIO "<errorcode>ENXIO</errorcode> error code">
|
|
<!ENTITY EMFILE "<errorcode>EMFILE</errorcode> error code">
|
|
<!ENTITY EPERM "<errorcode>EPERM</errorcode> error code">
|
|
+<!ENTITY EPIPE "<errorcode>EPIPE</errorcode> error code">
|
|
<!ENTITY ERANGE "<errorcode>ERANGE</errorcode> error code">
|
|
|
|
<!-- Subsections -->
|
|
@@ -230,6 +241,7 @@
|
|
<!ENTITY sub-dev-raw-vbi SYSTEM "v4l/dev-raw-vbi.xml">
|
|
<!ENTITY sub-dev-rds SYSTEM "v4l/dev-rds.xml">
|
|
<!ENTITY sub-dev-sliced-vbi SYSTEM "v4l/dev-sliced-vbi.xml">
|
|
+<!ENTITY sub-dev-subdev SYSTEM "v4l/dev-subdev.xml">
|
|
<!ENTITY sub-dev-teletext SYSTEM "v4l/dev-teletext.xml">
|
|
<!ENTITY sub-driver SYSTEM "v4l/driver.xml">
|
|
<!ENTITY sub-libv4l SYSTEM "v4l/libv4l.xml">
|
|
@@ -313,6 +325,10 @@
|
|
<!ENTITY sub-reqbufs SYSTEM "v4l/vidioc-reqbufs.xml">
|
|
<!ENTITY sub-s-hw-freq-seek SYSTEM "v4l/vidioc-s-hw-freq-seek.xml">
|
|
<!ENTITY sub-streamon SYSTEM "v4l/vidioc-streamon.xml">
|
|
+<!ENTITY sub-subdev-enum-frame-size SYSTEM "v4l/vidioc-subdev-enum-frame-size.xml">
|
|
+<!ENTITY sub-subdev-enum-mbus-code SYSTEM "v4l/vidioc-subdev-enum-mbus-code.xml">
|
|
+<!ENTITY sub-subdev-formats SYSTEM "v4l/subdev-formats.xml">
|
|
+<!ENTITY sub-subdev-g-fmt SYSTEM "v4l/vidioc-subdev-g-fmt.xml">
|
|
<!ENTITY sub-capture-c SYSTEM "v4l/capture.c.xml">
|
|
<!ENTITY sub-keytable-c SYSTEM "v4l/keytable.c.xml">
|
|
<!ENTITY sub-v4l2grab-c SYSTEM "v4l/v4l2grab.c.xml">
|
|
diff --git a/Documentation/DocBook/v4l/dev-subdev.xml b/Documentation/DocBook/v4l/dev-subdev.xml
|
|
new file mode 100644
|
|
index 0000000..12fdca4
|
|
--- /dev/null
|
|
+++ b/Documentation/DocBook/v4l/dev-subdev.xml
|
|
@@ -0,0 +1,274 @@
|
|
+ <title>Sub-device Interface</title>
|
|
+
|
|
+ <para>The complex nature of V4L2 devices, where hardware is often made of
|
|
+ several integrated circuits that need to interact with each other in a
|
|
+ controlled way, leads to complex V4L2 drivers. The drivers usually reflect
|
|
+ the hardware model in software, and model the different hardware components
|
|
+ as software blocks called sub-devices.</para>
|
|
+
|
|
+ <para>V4L2 sub-devices are usually kernel-only objects. If the V4L2 driver
|
|
+ implements the media device API, they will automatically inherit from media
|
|
+ entities. Applications will be able to enumerate the sub-devices and discover
|
|
+ the hardware topology using the media entities, pads and links enumeration
|
|
+ API.</para>
|
|
+
|
|
+ <para>In addition to make sub-devices discoverable, drivers can also choose
|
|
+ to make them directly configurable by applications. When both the sub-device
|
|
+ driver and the V4L2 device driver support this, sub-devices will feature a
|
|
+ character device node on which ioctls can be called to
|
|
+ <itemizedlist>
|
|
+ <listitem>query, read and write sub-devices controls</listitem>
|
|
+ <listitem>subscribe and unsubscribe to events and retrieve them</listitem>
|
|
+ <listitem>negotiate image formats on individual pads</listitem>
|
|
+ </itemizedlist>
|
|
+ </para>
|
|
+
|
|
+ <para>Sub-device character device nodes, conventionally named
|
|
+ <filename>/dev/v4l-subdev*</filename>, use major number 81.</para>
|
|
+
|
|
+ <section>
|
|
+ <title>Controls</title>
|
|
+ <para>Most V4L2 controls are implemented by sub-device hardware. Drivers
|
|
+ usually merge all controls and expose them through video device nodes.
|
|
+ Applications can control all sub-devices through a single interface.</para>
|
|
+
|
|
+ <para>Complex devices sometimes implement the same control in different
|
|
+ pieces of hardware. This situation is common in embedded platforms, where
|
|
+ both sensors and image processing hardware implement identical functions,
|
|
+ such as contrast adjustment, white balance or faulty pixels correction. As
|
|
+ the V4L2 controls API doesn't support several identical controls in a single
|
|
+ device, all but one of the identical controls are hidden.</para>
|
|
+
|
|
+ <para>Applications can access those hidden controls through the sub-device
|
|
+ node with the V4L2 control API described in <xref linkend="control" />. The
|
|
+ ioctls behave identically as when issued on V4L2 device nodes, with the
|
|
+ exception that they deal only with controls implemented in the sub-device.
|
|
+ </para>
|
|
+
|
|
+ <para>Depending on the driver, those controls might also be exposed through
|
|
+ one (or several) V4L2 device nodes.</para>
|
|
+ </section>
|
|
+
|
|
+ <section>
|
|
+ <title>Events</title>
|
|
+ <para>V4L2 sub-devices can notify applications of events as described in
|
|
+ <xref linkend="event" />. The API behaves identically as when used on V4L2
|
|
+ device nodes, with the exception that it only deals with events generated by
|
|
+ the sub-device. Depending on the driver, those events might also be reported
|
|
+ on one (or several) V4L2 device nodes.</para>
|
|
+ </section>
|
|
+
|
|
+ <section id="pad-level-formats">
|
|
+ <title>Pad-level Formats</title>
|
|
+
|
|
+ <warning>Pad-level formats are only applicable to very complex device that
|
|
+ need to expose low-level format configuration to user space. Generic V4L2
|
|
+ applications do <emphasis>not</emphasis> need to use the API described in
|
|
+ this section.</warning>
|
|
+
|
|
+ <note>For the purpose of this section, the term
|
|
+ <wordasword>format</wordasword> means the combination of media bus data
|
|
+ format, frame width and frame height.</note>
|
|
+
|
|
+ <para>Image formats are typically negotiated on video capture and output
|
|
+ devices using the <link linkend="crop">cropping and scaling</link> ioctls.
|
|
+ The driver is responsible for configuring every block in the video pipeline
|
|
+ according to the requested format at the pipeline input and/or
|
|
+ output.</para>
|
|
+
|
|
+ <para>For complex devices, such as often found in embedded systems,
|
|
+ identical image sizes at the output of a pipeline can be achieved using
|
|
+ different hardware configurations. One such exemple is shown on
|
|
+ <xref linkend="pipeline-scaling" xrefstyle="template: Figure %n" />, where
|
|
+ image scaling can be performed on both the video sensor and the host image
|
|
+ processing hardware.</para>
|
|
+
|
|
+ <figure id="pipeline-scaling">
|
|
+ <title>Image Format Negotation on Pipelines</title>
|
|
+ <mediaobject>
|
|
+ <imageobject>
|
|
+ <imagedata fileref="pipeline.pdf" format="PS" />
|
|
+ </imageobject>
|
|
+ <imageobject>
|
|
+ <imagedata fileref="pipeline.png" format="PNG" />
|
|
+ </imageobject>
|
|
+ <textobject>
|
|
+ <phrase>High quality and high speed pipeline configuration</phrase>
|
|
+ </textobject>
|
|
+ </mediaobject>
|
|
+ </figure>
|
|
+
|
|
+ <para>The sensor scaler is usually of less quality than the host scaler, but
|
|
+ scaling on the sensor is required to achieve higher frame rates. Depending
|
|
+ on the use case (quality vs. speed), the pipeline must be configured
|
|
+ differently. Applications need to configure the formats at every point in
|
|
+ the pipeline explicitly.</para>
|
|
+
|
|
+ <para>Drivers that implement the <link linkend="media-controller-intro">media
|
|
+ API</link> can expose pad-level image format configuration to applications.
|
|
+ When they do, applications can use the &VIDIOC-SUBDEV-G-FMT; and
|
|
+ &VIDIOC-SUBDEV-S-FMT; ioctls. to negotiate formats on a per-pad basis.</para>
|
|
+
|
|
+ <para>Applications are responsible for configuring coherent parameters on
|
|
+ the whole pipeline and making sure that connected pads have compatible
|
|
+ formats. The pipeline is checked for formats mismatch at &VIDIOC-STREAMON;
|
|
+ time, and an &EPIPE; is then returned if the configuration is
|
|
+ invalid.</para>
|
|
+
|
|
+ <para>Pad-level image format configuration support can be tested by calling
|
|
+ the &VIDIOC-SUBDEV-G-FMT; ioctl on pad 0. If the driver returns an &EINVAL;
|
|
+ pad-level format configuration is not supported by the sub-device.</para>
|
|
+
|
|
+ <section>
|
|
+ <title>Format Negotiation</title>
|
|
+
|
|
+ <para>Acceptable formats on pads can (and usually do) depend on a number
|
|
+ of external parameters, such as formats on other pads, active links, or
|
|
+ even controls. Finding a combination of formats on all pads in a video
|
|
+ pipeline, acceptable to both application and driver, can't rely on formats
|
|
+ enumeration only. A format negotiation mechanism is required.</para>
|
|
+
|
|
+ <para>Central to the format negotiation mechanism are the get/set format
|
|
+ operations. When called with the <structfield>which</structfield> argument
|
|
+ set to <constant>V4L2_SUBDEV_FORMAT_TRY</constant>, the
|
|
+ &VIDIOC-SUBDEV-G-FMT; and &VIDIOC-SUBDEV-S-FMT; ioctls operate on a set of
|
|
+ formats parameters that are not connected to the hardware configuration.
|
|
+ Modifying those 'try' formats leaves the device state untouched (this
|
|
+ applies to both the software state stored in the driver and the hardware
|
|
+ state stored in the device itself).</para>
|
|
+
|
|
+ <para>While not kept as part of the device state, try formats are stored
|
|
+ in the sub-device file handles. A &VIDIOC-SUBDEV-G-FMT; call will return
|
|
+ the last try format set <emphasis>on the same sub-device file
|
|
+ handle</emphasis>. Several applications querying the same sub-device at
|
|
+ the same time will thus not interact with each other.</para>
|
|
+
|
|
+ <para>To find out whether a particular format is supported by the device,
|
|
+ applications use the &VIDIOC-SUBDEV-S-FMT; ioctl. Drivers verify and, if
|
|
+ needed, change the requested <structfield>format</structfield> based on
|
|
+ device requirements and return the possibly modified value. Applications
|
|
+ can then choose to try a different format or accept the returned value and
|
|
+ continue.</para>
|
|
+
|
|
+ <para>Formats returned by the driver during a negotiation iteration are
|
|
+ guaranteed to be supported by the device. In particular, drivers guarantee
|
|
+ that a returned format will not be further changed if passed to an
|
|
+ &VIDIOC-SUBDEV-S-FMT; call as-is (as long as external parameters, such as
|
|
+ formats on other pads or links' configuration are not changed).</para>
|
|
+
|
|
+ <para>Drivers automatically propagate formats inside sub-devices. When a
|
|
+ try or active format is set on a pad, corresponding formats on other pads
|
|
+ of the same sub-device can be modified by the driver. Drivers are free to
|
|
+ modify formats as required by the device. However, they should comply with
|
|
+ the following rules when possible:
|
|
+ <itemizedlist>
|
|
+ <listitem>Formats should be propagated from sink pads to source pads.
|
|
+ Modifying a format on a source pad should not modify the format on any
|
|
+ sink pad.</listitem>
|
|
+ <listitem>Sub-devices that scale frames using variable scaling factors
|
|
+ should reset the scale factors to default values when sink pads formats
|
|
+ are modified. If the 1:1 scaling ratio is supported, this means that
|
|
+ source pads formats should be reset to the sink pads formats.</listitem>
|
|
+ </itemizedlist>
|
|
+ </para>
|
|
+
|
|
+ <para>Formats are not propagated across links, as that would involve
|
|
+ propagating them from one sub-device file handle to another. Applications
|
|
+ must then take care to configure both ends of every link explicitly with
|
|
+ compatible formats. Identical formats on the two ends of a link are
|
|
+ guaranteed to be compatible. Drivers are free to accept different formats
|
|
+ matching device requirements as being compatible.</para>
|
|
+
|
|
+ <para><xref linkend="sample-pipeline-config" xrefstyle="template:Table %n"/>
|
|
+ shows a sample configuration sequence for the pipeline described in
|
|
+ <xref linkend="pipeline-scaling" xrefstyle="template:Figure %n"/> (table
|
|
+ columns list entity names and pad numbers).</para>
|
|
+
|
|
+ <table pgwide="0" frame="none" id="sample-pipeline-config">
|
|
+ <title>Sample Pipeline Configuration</title>
|
|
+ <tgroup cols="3">
|
|
+ <colspec colname="what"/>
|
|
+ <colspec colname="sensor-0" />
|
|
+ <colspec colname="frontend-0" />
|
|
+ <colspec colname="frontend-1" />
|
|
+ <colspec colname="scaler-0" />
|
|
+ <colspec colname="scaler-1" />
|
|
+ <thead>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry>Sensor/0</entry>
|
|
+ <entry>Frontend/0</entry>
|
|
+ <entry>Frontend/1</entry>
|
|
+ <entry>Scaler/0</entry>
|
|
+ <entry>Scaler/1</entry>
|
|
+ </row>
|
|
+ </thead>
|
|
+ <tbody valign="top">
|
|
+ <row>
|
|
+ <entry>Initial state</entry>
|
|
+ <entry>2048x1536</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>Configure frontend input</entry>
|
|
+ <entry>2048x1536</entry>
|
|
+ <entry><emphasis>2048x1536</emphasis></entry>
|
|
+ <entry><emphasis>2046x1534</emphasis></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>Configure scaler input</entry>
|
|
+ <entry>2048x1536</entry>
|
|
+ <entry>2048x1536</entry>
|
|
+ <entry>2046x1534</entry>
|
|
+ <entry><emphasis>2046x1534</emphasis></entry>
|
|
+ <entry><emphasis>2046x1534</emphasis></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>Configure scaler output</entry>
|
|
+ <entry>2048x1536</entry>
|
|
+ <entry>2048x1536</entry>
|
|
+ <entry>2046x1534</entry>
|
|
+ <entry>2046x1534</entry>
|
|
+ <entry><emphasis>1280x960</emphasis></entry>
|
|
+ </row>
|
|
+ </tbody>
|
|
+ </tgroup>
|
|
+ </table>
|
|
+
|
|
+ <para>
|
|
+ <orderedlist>
|
|
+ <listitem>Initial state. The sensor output is set to its native 3MP
|
|
+ resolution. Resolutions on the host frontend and scaler input and output
|
|
+ pads are undefined.</listitem>
|
|
+ <listitem>The application configures the frontend input pad resolution to
|
|
+ 2048x1536. The driver propagates the format to the frontend output pad.
|
|
+ Note that the propagated output format can be different, as in this case,
|
|
+ than the input format, as the hardware might need to crop pixels (for
|
|
+ instance when converting a Bayer filter pattern to RGB or YUV).</listitem>
|
|
+ <listitem>The application configures the scaler input pad resolution to
|
|
+ 2046x1534 to match the frontend output resolution. The driver propagates
|
|
+ the format to the scaler output pad.</listitem>
|
|
+ <listitem>The application configures the scaler output pad resolution to
|
|
+ 1280x960.</listitem>
|
|
+ </orderedlist>
|
|
+ </para>
|
|
+
|
|
+ <para>When satisfied with the try results, applications can set the active
|
|
+ formats by setting the <structfield>which</structfield> argument to
|
|
+ <constant>V4L2_SUBDEV_FORMAT_TRY</constant>. Active formats are changed
|
|
+ exactly as try formats by drivers. To avoid modifying the hardware state
|
|
+ during format negotiation, applications should negotiate try formats first
|
|
+ and then modify the active settings using the try formats returned during
|
|
+ the last negotiation iteration. This guarantees that the active format
|
|
+ will be applied as-is by the driver without being modified.
|
|
+ </para>
|
|
+ </section>
|
|
+
|
|
+ </section>
|
|
+
|
|
+ &sub-subdev-formats;
|
|
diff --git a/Documentation/DocBook/v4l/subdev-formats.xml b/Documentation/DocBook/v4l/subdev-formats.xml
|
|
new file mode 100644
|
|
index 0000000..0cae572
|
|
--- /dev/null
|
|
+++ b/Documentation/DocBook/v4l/subdev-formats.xml
|
|
@@ -0,0 +1,2416 @@
|
|
+<section id="v4l2-mbus-format">
|
|
+ <title>Media Bus Formats</title>
|
|
+
|
|
+ <table pgwide="1" frame="none" id="v4l2-mbus-framefmt">
|
|
+ <title>struct <structname>v4l2_mbus_framefmt</structname></title>
|
|
+ <tgroup cols="3">
|
|
+ &cs-str;
|
|
+ <tbody valign="top">
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>width</structfield></entry>
|
|
+ <entry>Image width, in pixels.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>height</structfield></entry>
|
|
+ <entry>Image height, in pixels.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>code</structfield></entry>
|
|
+ <entry>Format code, from &v4l2-mbus-pixelcode;.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>field</structfield></entry>
|
|
+ <entry>Field order, from &v4l2-field;. See
|
|
+ <xref linkend="field-order" /> for details.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>colorspace</structfield></entry>
|
|
+ <entry>Image colorspace, from &v4l2-colorspace;. See
|
|
+ <xref linkend="colorspaces" /> for details.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>reserved</structfield>[7]</entry>
|
|
+ <entry>Reserved for future extensions. Applications and drivers must
|
|
+ set the array to zero.</entry>
|
|
+ </row>
|
|
+ </tbody>
|
|
+ </tgroup>
|
|
+ </table>
|
|
+
|
|
+ <section id="v4l2-mbus-pixelcode">
|
|
+ <title>Media Bus Pixel Codes</title>
|
|
+
|
|
+ <para>The media bus pixel codes describe image formats as flowing over
|
|
+ physical busses (both between separate physical components and inside SoC
|
|
+ devices). This should not be confused with the V4L2 pixel formats that
|
|
+ describe, using four character codes, image formats as stored in memory.
|
|
+ </para>
|
|
+
|
|
+ <para>While there is a relationship between image formats on busses and
|
|
+ image formats in memory (a raw Bayer image won't be magically converted to
|
|
+ JPEG just by storing it to memory), there is no one-to-one correspondance
|
|
+ between them.</para>
|
|
+
|
|
+ <section>
|
|
+ <title>Packed RGB Formats</title>
|
|
+
|
|
+ <para>Those formats transfer pixel data as red, green and blue components.
|
|
+ The format code is made of the following information.
|
|
+ <itemizedlist>
|
|
+ <listitem>The red, green and blue components order code, as encoded in a
|
|
+ pixel sample. Possible values are RGB and BGR.</listitem>
|
|
+ <listitem>The number of bits per component, for each component. The values
|
|
+ can be different for all components. Common values are 555 and 565.
|
|
+ </listitem>
|
|
+ <listitem>The number of bus samples per pixel. Pixels that are wider than
|
|
+ the bus width must be transferred in multiple samples. Common values are
|
|
+ 1 and 2.</listitem>
|
|
+ <listitem>The bus width.</listitem>
|
|
+ <listitem>For formats where the total number of bits per pixel is smaller
|
|
+ than the number of bus samples per pixel times the bus width, a padding
|
|
+ value stating if the bytes are padded in their most high order bits
|
|
+ (PADHI) or low order bits (PADLO).</listitem>
|
|
+ <listitem>For formats where the number of bus samples per pixel is larger
|
|
+ than 1, an endianness value stating if the pixel is transferred MSB first
|
|
+ (BE) or LSB first (LE).</listitem>
|
|
+ </itemizedlist>
|
|
+ </para>
|
|
+
|
|
+ <para>For instance, a format where pixels are encoded as 5-bits red, 5-bits
|
|
+ green and 5-bit blue values padded on the high bit, transferred as 2 8-bit
|
|
+ samples per pixel with the most significant bits (padding, red and half of
|
|
+ the green value) transferred first will be named
|
|
+ <constant>V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE</constant>.
|
|
+ </para>
|
|
+
|
|
+ <para>The following tables list existing packet RGB formats.</para>
|
|
+
|
|
+ <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-rgb">
|
|
+ <title>RGB formats</title>
|
|
+ <tgroup cols="11">
|
|
+ <colspec colname="id" align="left" />
|
|
+ <colspec colname="code" align="center"/>
|
|
+ <colspec colname="bit" />
|
|
+ <colspec colnum="4" colname="b07" align="center" />
|
|
+ <colspec colnum="5" colname="b06" align="center" />
|
|
+ <colspec colnum="6" colname="b05" align="center" />
|
|
+ <colspec colnum="7" colname="b04" align="center" />
|
|
+ <colspec colnum="8" colname="b03" align="center" />
|
|
+ <colspec colnum="9" colname="b02" align="center" />
|
|
+ <colspec colnum="10" colname="b01" align="center" />
|
|
+ <colspec colnum="11" colname="b00" align="center" />
|
|
+ <spanspec namest="b07" nameend="b00" spanname="b0" />
|
|
+ <thead>
|
|
+ <row>
|
|
+ <entry>Identifier</entry>
|
|
+ <entry>Code</entry>
|
|
+ <entry></entry>
|
|
+ <entry spanname="b0">Data organization</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>Bit</entry>
|
|
+ <entry>7</entry>
|
|
+ <entry>6</entry>
|
|
+ <entry>5</entry>
|
|
+ <entry>4</entry>
|
|
+ <entry>3</entry>
|
|
+ <entry>2</entry>
|
|
+ <entry>1</entry>
|
|
+ <entry>0</entry>
|
|
+ </row>
|
|
+ </thead>
|
|
+ <tbody valign="top">
|
|
+ <row id="V4L2-MBUS-FMT-RGB444-2X8-PADHI-BE">
|
|
+ <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE</entry>
|
|
+ <entry>0x1001</entry>
|
|
+ <entry></entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-RGB444-2X8-PADHI-LE">
|
|
+ <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE</entry>
|
|
+ <entry>0x1002</entry>
|
|
+ <entry></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-RGB555-2X8-PADHI-BE">
|
|
+ <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE</entry>
|
|
+ <entry>0x1003</entry>
|
|
+ <entry></entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>r<subscript>4</subscript></entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-RGB555-2X8-PADHI-LE">
|
|
+ <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE</entry>
|
|
+ <entry>0x1004</entry>
|
|
+ <entry></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>r<subscript>4</subscript></entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-BGR565-2X8-BE">
|
|
+ <entry>V4L2_MBUS_FMT_BGR565_2X8_BE</entry>
|
|
+ <entry>0x1005</entry>
|
|
+ <entry></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ <entry>g<subscript>5</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ <entry>r<subscript>4</subscript></entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-BGR565-2X8-LE">
|
|
+ <entry>V4L2_MBUS_FMT_BGR565_2X8_LE</entry>
|
|
+ <entry>0x1006</entry>
|
|
+ <entry></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ <entry>r<subscript>4</subscript></entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ <entry>g<subscript>5</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-RGB565-2X8-BE">
|
|
+ <entry>V4L2_MBUS_FMT_RGB565_2X8_BE</entry>
|
|
+ <entry>0x1007</entry>
|
|
+ <entry></entry>
|
|
+ <entry>r<subscript>4</subscript></entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ <entry>g<subscript>5</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-RGB565-2X8-LE">
|
|
+ <entry>V4L2_MBUS_FMT_RGB565_2X8_LE</entry>
|
|
+ <entry>0x1008</entry>
|
|
+ <entry></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>r<subscript>4</subscript></entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ <entry>g<subscript>5</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ </row>
|
|
+ </tbody>
|
|
+ </tgroup>
|
|
+ </table>
|
|
+ </section>
|
|
+
|
|
+ <section>
|
|
+ <title>Bayer Formats</title>
|
|
+
|
|
+ <para>Those formats transfer pixel data as red, green and blue components.
|
|
+ The format code is made of the following information.
|
|
+ <itemizedlist>
|
|
+ <listitem>The red, green and blue components order code, as encoded in a
|
|
+ pixel sample. The possible values are shown in <xref
|
|
+ linkend="bayer-patterns" />.</listitem>
|
|
+ <listitem>The number of bits per pixel component. All components are
|
|
+ transferred on the same number of bits. Common values are 8, 10 and 12.
|
|
+ </listitem>
|
|
+ <listitem>If the pixel components are DPCM-compressed, a mention of the
|
|
+ DPCM compression and the number of bits per compressed pixel component.
|
|
+ </listitem>
|
|
+ <listitem>The number of bus samples per pixel. Pixels that are wider than
|
|
+ the bus width must be transferred in multiple samples. Common values are
|
|
+ 1 and 2.</listitem>
|
|
+ <listitem>The bus width.</listitem>
|
|
+ <listitem>For formats where the total number of bits per pixel is smaller
|
|
+ than the number of bus samples per pixel times the bus width, a padding
|
|
+ value stating if the bytes are padded in their most high order bits
|
|
+ (PADHI) or low order bits (PADLO).</listitem>
|
|
+ <listitem>For formats where the number of bus samples per pixel is larger
|
|
+ than 1, an endianness value stating if the pixel is transferred MSB first
|
|
+ (BE) or LSB first (LE).</listitem>
|
|
+ </itemizedlist>
|
|
+ </para>
|
|
+
|
|
+ <para>For instance, a format with uncompressed 10-bit Bayer components
|
|
+ arranged in a red, green, green, blue pattern transferred as 2 8-bit
|
|
+ samples per pixel with the least significant bits transferred first will
|
|
+ be named <constant>V4L2_MBUS_FMT_SRGGB10_2X8_PADHI_LE</constant>.
|
|
+ </para>
|
|
+
|
|
+ <figure id="bayer-patterns">
|
|
+ <title>Bayer Patterns</title>
|
|
+ <mediaobject>
|
|
+ <imageobject>
|
|
+ <imagedata fileref="bayer.pdf" format="PS" />
|
|
+ </imageobject>
|
|
+ <imageobject>
|
|
+ <imagedata fileref="bayer.png" format="PNG" />
|
|
+ </imageobject>
|
|
+ <textobject>
|
|
+ <phrase>Bayer filter color patterns</phrase>
|
|
+ </textobject>
|
|
+ </mediaobject>
|
|
+ </figure>
|
|
+
|
|
+ <para>The following table lists existing packet Bayer formats. The data
|
|
+ organization is given as an example for the first pixel only.</para>
|
|
+
|
|
+ <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-bayer">
|
|
+ <title>Bayer Formats</title>
|
|
+ <tgroup cols="15">
|
|
+ <colspec colname="id" align="left" />
|
|
+ <colspec colname="code" align="center"/>
|
|
+ <colspec colname="bit" />
|
|
+ <colspec colnum="4" colname="b11" align="center" />
|
|
+ <colspec colnum="5" colname="b10" align="center" />
|
|
+ <colspec colnum="6" colname="b09" align="center" />
|
|
+ <colspec colnum="7" colname="b08" align="center" />
|
|
+ <colspec colnum="8" colname="b07" align="center" />
|
|
+ <colspec colnum="9" colname="b06" align="center" />
|
|
+ <colspec colnum="10" colname="b05" align="center" />
|
|
+ <colspec colnum="11" colname="b04" align="center" />
|
|
+ <colspec colnum="12" colname="b03" align="center" />
|
|
+ <colspec colnum="13" colname="b02" align="center" />
|
|
+ <colspec colnum="14" colname="b01" align="center" />
|
|
+ <colspec colnum="15" colname="b00" align="center" />
|
|
+ <spanspec namest="b11" nameend="b00" spanname="b0" />
|
|
+ <thead>
|
|
+ <row>
|
|
+ <entry>Identifier</entry>
|
|
+ <entry>Code</entry>
|
|
+ <entry></entry>
|
|
+ <entry spanname="b0">Data organization</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>Bit</entry>
|
|
+ <entry>11</entry>
|
|
+ <entry>10</entry>
|
|
+ <entry>9</entry>
|
|
+ <entry>8</entry>
|
|
+ <entry>7</entry>
|
|
+ <entry>6</entry>
|
|
+ <entry>5</entry>
|
|
+ <entry>4</entry>
|
|
+ <entry>3</entry>
|
|
+ <entry>2</entry>
|
|
+ <entry>1</entry>
|
|
+ <entry>0</entry>
|
|
+ </row>
|
|
+ </thead>
|
|
+ <tbody valign="top">
|
|
+ <row id="V4L2-MBUS-FMT-SBGGR8-1X8">
|
|
+ <entry>V4L2_MBUS_FMT_SBGGR8_1X8</entry>
|
|
+ <entry>0x3001</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>b<subscript>7</subscript></entry>
|
|
+ <entry>b<subscript>6</subscript></entry>
|
|
+ <entry>b<subscript>5</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SGRBG8-1X8">
|
|
+ <entry>V4L2_MBUS_FMT_SGRBG8_1X8</entry>
|
|
+ <entry>0x3002</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>g<subscript>7</subscript></entry>
|
|
+ <entry>g<subscript>6</subscript></entry>
|
|
+ <entry>g<subscript>5</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SBGGR10-DPCM8-1X8">
|
|
+ <entry>V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8</entry>
|
|
+ <entry>0x300b</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>b<subscript>7</subscript></entry>
|
|
+ <entry>b<subscript>6</subscript></entry>
|
|
+ <entry>b<subscript>5</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SGBRG10-DPCM8-1X8">
|
|
+ <entry>V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8</entry>
|
|
+ <entry>0x300c</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>g<subscript>7</subscript></entry>
|
|
+ <entry>g<subscript>6</subscript></entry>
|
|
+ <entry>g<subscript>5</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SGRBG10-DPCM8-1X8">
|
|
+ <entry>V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8</entry>
|
|
+ <entry>0x3009</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>g<subscript>7</subscript></entry>
|
|
+ <entry>g<subscript>6</subscript></entry>
|
|
+ <entry>g<subscript>5</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SRGGB10-DPCM8-1X8">
|
|
+ <entry>V4L2_MBUS_FMT_SRGGB10_DPCM8_1X8</entry>
|
|
+ <entry>0x300d</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>r<subscript>7</subscript></entry>
|
|
+ <entry>r<subscript>6</subscript></entry>
|
|
+ <entry>r<subscript>5</subscript></entry>
|
|
+ <entry>r<subscript>4</subscript></entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SBGGR10-2X8-PADHI-BE">
|
|
+ <entry>V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE</entry>
|
|
+ <entry>0x3003</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>b<subscript>9</subscript></entry>
|
|
+ <entry>b<subscript>8</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>b<subscript>7</subscript></entry>
|
|
+ <entry>b<subscript>6</subscript></entry>
|
|
+ <entry>b<subscript>5</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SBGGR10-2X8-PADHI-LE">
|
|
+ <entry>V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE</entry>
|
|
+ <entry>0x3004</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>b<subscript>7</subscript></entry>
|
|
+ <entry>b<subscript>6</subscript></entry>
|
|
+ <entry>b<subscript>5</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>b<subscript>9</subscript></entry>
|
|
+ <entry>b<subscript>8</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SBGGR10-2X8-PADLO-BE">
|
|
+ <entry>V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE</entry>
|
|
+ <entry>0x3005</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>b<subscript>9</subscript></entry>
|
|
+ <entry>b<subscript>8</subscript></entry>
|
|
+ <entry>b<subscript>7</subscript></entry>
|
|
+ <entry>b<subscript>6</subscript></entry>
|
|
+ <entry>b<subscript>5</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SBGGR10-2X8-PADLO-LE">
|
|
+ <entry>V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE</entry>
|
|
+ <entry>0x3006</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>0</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>b<subscript>9</subscript></entry>
|
|
+ <entry>b<subscript>8</subscript></entry>
|
|
+ <entry>b<subscript>7</subscript></entry>
|
|
+ <entry>b<subscript>6</subscript></entry>
|
|
+ <entry>b<subscript>5</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SBGGR10-1X10">
|
|
+ <entry>V4L2_MBUS_FMT_SBGGR10_1X10</entry>
|
|
+ <entry>0x3007</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>b<subscript>9</subscript></entry>
|
|
+ <entry>b<subscript>8</subscript></entry>
|
|
+ <entry>b<subscript>7</subscript></entry>
|
|
+ <entry>b<subscript>6</subscript></entry>
|
|
+ <entry>b<subscript>5</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SGBRG10-1X10">
|
|
+ <entry>V4L2_MBUS_FMT_SGBRG10_1X10</entry>
|
|
+ <entry>0x300e</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>g<subscript>9</subscript></entry>
|
|
+ <entry>g<subscript>8</subscript></entry>
|
|
+ <entry>g<subscript>7</subscript></entry>
|
|
+ <entry>g<subscript>6</subscript></entry>
|
|
+ <entry>g<subscript>5</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SGRBG10-1X10">
|
|
+ <entry>V4L2_MBUS_FMT_SGRBG10_1X10</entry>
|
|
+ <entry>0x300a</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>g<subscript>9</subscript></entry>
|
|
+ <entry>g<subscript>8</subscript></entry>
|
|
+ <entry>g<subscript>7</subscript></entry>
|
|
+ <entry>g<subscript>6</subscript></entry>
|
|
+ <entry>g<subscript>5</subscript></entry>
|
|
+ <entry>g<subscript>4</subscript></entry>
|
|
+ <entry>g<subscript>3</subscript></entry>
|
|
+ <entry>g<subscript>2</subscript></entry>
|
|
+ <entry>g<subscript>1</subscript></entry>
|
|
+ <entry>g<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SRGGB10-1X10">
|
|
+ <entry>V4L2_MBUS_FMT_SRGGB10_1X10</entry>
|
|
+ <entry>0x300f</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>r<subscript>9</subscript></entry>
|
|
+ <entry>r<subscript>8</subscript></entry>
|
|
+ <entry>r<subscript>7</subscript></entry>
|
|
+ <entry>r<subscript>6</subscript></entry>
|
|
+ <entry>r<subscript>5</subscript></entry>
|
|
+ <entry>r<subscript>4</subscript></entry>
|
|
+ <entry>r<subscript>3</subscript></entry>
|
|
+ <entry>r<subscript>2</subscript></entry>
|
|
+ <entry>r<subscript>1</subscript></entry>
|
|
+ <entry>r<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-SBGGR12-1X12">
|
|
+ <entry>V4L2_MBUS_FMT_SBGGR12_1X12</entry>
|
|
+ <entry>0x3008</entry>
|
|
+ <entry></entry>
|
|
+ <entry>b<subscript>11</subscript></entry>
|
|
+ <entry>b<subscript>10</subscript></entry>
|
|
+ <entry>b<subscript>9</subscript></entry>
|
|
+ <entry>b<subscript>8</subscript></entry>
|
|
+ <entry>b<subscript>7</subscript></entry>
|
|
+ <entry>b<subscript>6</subscript></entry>
|
|
+ <entry>b<subscript>5</subscript></entry>
|
|
+ <entry>b<subscript>4</subscript></entry>
|
|
+ <entry>b<subscript>3</subscript></entry>
|
|
+ <entry>b<subscript>2</subscript></entry>
|
|
+ <entry>b<subscript>1</subscript></entry>
|
|
+ <entry>b<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ </tbody>
|
|
+ </tgroup>
|
|
+ </table>
|
|
+ </section>
|
|
+
|
|
+ <section>
|
|
+ <title>Packed YUV Formats</title>
|
|
+
|
|
+ <para>Those data formats transfer pixel data as (possibly downsampled) Y, U
|
|
+ and V components. The format code is made of the following information.
|
|
+ <itemizedlist>
|
|
+ <listitem>The Y, U and V components order code, as transferred on the
|
|
+ bus. Possible values are YUYV, UYVY, YVYU and VYUY.</listitem>
|
|
+ <listitem>The number of bits per pixel component. All components are
|
|
+ transferred on the same number of bits. Common values are 8, 10 and 12.
|
|
+ </listitem>
|
|
+ <listitem>The number of bus samples per pixel. Pixels that are wider than
|
|
+ the bus width must be transferred in multiple samples. Common values are
|
|
+ 1, 1.5 (encoded as 1_5) and 2.</listitem>
|
|
+ <listitem>The bus width. When the bus width is larger than the number of
|
|
+ bits per pixel component, several components are packed in a single bus
|
|
+ sample. The components are ordered as specified by the order code, with
|
|
+ components on the left of the code transferred in the high order bits.
|
|
+ Common values are 8 and 16.
|
|
+ </listitem>
|
|
+ </itemizedlist>
|
|
+ </para>
|
|
+
|
|
+ <para>For instance, a format where pixels are encoded as 8-bit YUV values
|
|
+ downsampled to 4:2:2 and transferred as 2 8-bit bus samples per pixel in the
|
|
+ U, Y, V, Y order will be named <constant>V4L2_MBUS_FMT_UYVY8_2X8</constant>.
|
|
+ </para>
|
|
+
|
|
+ <para>The following table lisst existing packet YUV formats.</para>
|
|
+
|
|
+ <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-yuv8">
|
|
+ <title>YUV Formats</title>
|
|
+ <tgroup cols="23">
|
|
+ <colspec colname="id" align="left" />
|
|
+ <colspec colname="code" align="center"/>
|
|
+ <colspec colname="bit" />
|
|
+ <colspec colnum="4" colname="b19" align="center" />
|
|
+ <colspec colnum="5" colname="b18" align="center" />
|
|
+ <colspec colnum="6" colname="b17" align="center" />
|
|
+ <colspec colnum="7" colname="b16" align="center" />
|
|
+ <colspec colnum="8" colname="b15" align="center" />
|
|
+ <colspec colnum="9" colname="b14" align="center" />
|
|
+ <colspec colnum="10" colname="b13" align="center" />
|
|
+ <colspec colnum="11" colname="b12" align="center" />
|
|
+ <colspec colnum="12" colname="b11" align="center" />
|
|
+ <colspec colnum="13" colname="b10" align="center" />
|
|
+ <colspec colnum="14" colname="b09" align="center" />
|
|
+ <colspec colnum="15" colname="b08" align="center" />
|
|
+ <colspec colnum="16" colname="b07" align="center" />
|
|
+ <colspec colnum="17" colname="b06" align="center" />
|
|
+ <colspec colnum="18" colname="b05" align="center" />
|
|
+ <colspec colnum="19" colname="b04" align="center" />
|
|
+ <colspec colnum="20" colname="b03" align="center" />
|
|
+ <colspec colnum="21" colname="b02" align="center" />
|
|
+ <colspec colnum="22" colname="b01" align="center" />
|
|
+ <colspec colnum="23" colname="b00" align="center" />
|
|
+ <spanspec namest="b19" nameend="b00" spanname="b0" />
|
|
+ <thead>
|
|
+ <row>
|
|
+ <entry>Identifier</entry>
|
|
+ <entry>Code</entry>
|
|
+ <entry></entry>
|
|
+ <entry spanname="b0">Data organization</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>Bit</entry>
|
|
+ <entry>19</entry>
|
|
+ <entry>18</entry>
|
|
+ <entry>17</entry>
|
|
+ <entry>16</entry>
|
|
+ <entry>15</entry>
|
|
+ <entry>14</entry>
|
|
+ <entry>13</entry>
|
|
+ <entry>12</entry>
|
|
+ <entry>11</entry>
|
|
+ <entry>10</entry>
|
|
+ <entry>9</entry>
|
|
+ <entry>8</entry>
|
|
+ <entry>7</entry>
|
|
+ <entry>6</entry>
|
|
+ <entry>5</entry>
|
|
+ <entry>4</entry>
|
|
+ <entry>3</entry>
|
|
+ <entry>2</entry>
|
|
+ <entry>1</entry>
|
|
+ <entry>0</entry>
|
|
+ </row>
|
|
+ </thead>
|
|
+ <tbody valign="top">
|
|
+ <row id="V4L2-MBUS-FMT-Y8-1X8">
|
|
+ <entry>V4L2_MBUS_FMT_Y8_1X8</entry>
|
|
+ <entry>0x2001</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-UYVY8-1_5X8">
|
|
+ <entry>V4L2_MBUS_FMT_UYVY8_1_5X8</entry>
|
|
+ <entry>0x2002</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-VYUY8-1_5X8">
|
|
+ <entry>V4L2_MBUS_FMT_VYUY8_1_5X8</entry>
|
|
+ <entry>0x2003</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YUYV8-1_5X8">
|
|
+ <entry>V4L2_MBUS_FMT_YUYV8_1_5X8</entry>
|
|
+ <entry>0x2004</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YVYU8-1_5X8">
|
|
+ <entry>V4L2_MBUS_FMT_YVYU8_1_5X8</entry>
|
|
+ <entry>0x2005</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-UYVY8-2X8">
|
|
+ <entry>V4L2_MBUS_FMT_UYVY8_2X8</entry>
|
|
+ <entry>0x2006</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-VYUY8-2X8">
|
|
+ <entry>V4L2_MBUS_FMT_VYUY8_2X8</entry>
|
|
+ <entry>0x2007</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YUYV8-2X8">
|
|
+ <entry>V4L2_MBUS_FMT_YUYV8_2X8</entry>
|
|
+ <entry>0x2008</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YVYU8-2X8">
|
|
+ <entry>V4L2_MBUS_FMT_YVYU8_2X8</entry>
|
|
+ <entry>0x2009</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-Y10-1X10">
|
|
+ <entry>V4L2_MBUS_FMT_Y10_1X10</entry>
|
|
+ <entry>0x200a</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>9</subscript></entry>
|
|
+ <entry>y<subscript>8</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YUYV10-2X10">
|
|
+ <entry>V4L2_MBUS_FMT_YUYV10_2X10</entry>
|
|
+ <entry>0x200b</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>9</subscript></entry>
|
|
+ <entry>y<subscript>8</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>9</subscript></entry>
|
|
+ <entry>u<subscript>8</subscript></entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>9</subscript></entry>
|
|
+ <entry>y<subscript>8</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>9</subscript></entry>
|
|
+ <entry>v<subscript>8</subscript></entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YVYU10-2X10">
|
|
+ <entry>V4L2_MBUS_FMT_YVYU10_2X10</entry>
|
|
+ <entry>0x200c</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>9</subscript></entry>
|
|
+ <entry>y<subscript>8</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>9</subscript></entry>
|
|
+ <entry>v<subscript>8</subscript></entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>9</subscript></entry>
|
|
+ <entry>y<subscript>8</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>9</subscript></entry>
|
|
+ <entry>u<subscript>8</subscript></entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-UYVY8-1X16">
|
|
+ <entry>V4L2_MBUS_FMT_UYVY8_1X16</entry>
|
|
+ <entry>0x200f</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-VYUY8-1X16">
|
|
+ <entry>V4L2_MBUS_FMT_VYUY8_1X16</entry>
|
|
+ <entry>0x2010</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YUYV8-1X16">
|
|
+ <entry>V4L2_MBUS_FMT_YUYV8_1X16</entry>
|
|
+ <entry>0x2011</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YVYU8-1X16">
|
|
+ <entry>V4L2_MBUS_FMT_YVYU8_1X16</entry>
|
|
+ <entry>0x2012</entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>-</entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YUYV10-1X20">
|
|
+ <entry>V4L2_MBUS_FMT_YUYV10_1X20</entry>
|
|
+ <entry>0x200d</entry>
|
|
+ <entry></entry>
|
|
+ <entry>y<subscript>9</subscript></entry>
|
|
+ <entry>y<subscript>8</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ <entry>u<subscript>9</subscript></entry>
|
|
+ <entry>u<subscript>8</subscript></entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>y<subscript>9</subscript></entry>
|
|
+ <entry>y<subscript>8</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ <entry>v<subscript>9</subscript></entry>
|
|
+ <entry>v<subscript>8</subscript></entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row id="V4L2-MBUS-FMT-YVYU10-1X20">
|
|
+ <entry>V4L2_MBUS_FMT_YVYU10_1X20</entry>
|
|
+ <entry>0x200e</entry>
|
|
+ <entry></entry>
|
|
+ <entry>y<subscript>9</subscript></entry>
|
|
+ <entry>y<subscript>8</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ <entry>v<subscript>9</subscript></entry>
|
|
+ <entry>v<subscript>8</subscript></entry>
|
|
+ <entry>v<subscript>7</subscript></entry>
|
|
+ <entry>v<subscript>6</subscript></entry>
|
|
+ <entry>v<subscript>5</subscript></entry>
|
|
+ <entry>v<subscript>4</subscript></entry>
|
|
+ <entry>v<subscript>3</subscript></entry>
|
|
+ <entry>v<subscript>2</subscript></entry>
|
|
+ <entry>v<subscript>1</subscript></entry>
|
|
+ <entry>v<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry></entry>
|
|
+ <entry>y<subscript>9</subscript></entry>
|
|
+ <entry>y<subscript>8</subscript></entry>
|
|
+ <entry>y<subscript>7</subscript></entry>
|
|
+ <entry>y<subscript>6</subscript></entry>
|
|
+ <entry>y<subscript>5</subscript></entry>
|
|
+ <entry>y<subscript>4</subscript></entry>
|
|
+ <entry>y<subscript>3</subscript></entry>
|
|
+ <entry>y<subscript>2</subscript></entry>
|
|
+ <entry>y<subscript>1</subscript></entry>
|
|
+ <entry>y<subscript>0</subscript></entry>
|
|
+ <entry>u<subscript>9</subscript></entry>
|
|
+ <entry>u<subscript>8</subscript></entry>
|
|
+ <entry>u<subscript>7</subscript></entry>
|
|
+ <entry>u<subscript>6</subscript></entry>
|
|
+ <entry>u<subscript>5</subscript></entry>
|
|
+ <entry>u<subscript>4</subscript></entry>
|
|
+ <entry>u<subscript>3</subscript></entry>
|
|
+ <entry>u<subscript>2</subscript></entry>
|
|
+ <entry>u<subscript>1</subscript></entry>
|
|
+ <entry>u<subscript>0</subscript></entry>
|
|
+ </row>
|
|
+ </tbody>
|
|
+ </tgroup>
|
|
+ </table>
|
|
+ </section>
|
|
+ </section>
|
|
+</section>
|
|
diff --git a/Documentation/DocBook/v4l/v4l2.xml b/Documentation/DocBook/v4l/v4l2.xml
|
|
index 839e93e..695e3bf 100644
|
|
--- a/Documentation/DocBook/v4l/v4l2.xml
|
|
+++ b/Documentation/DocBook/v4l/v4l2.xml
|
|
@@ -410,6 +410,7 @@ and discussions on the V4L mailing list.</revremark>
|
|
<section id="radio"> &sub-dev-radio; </section>
|
|
<section id="rds"> &sub-dev-rds; </section>
|
|
<section id="event"> &sub-dev-event; </section>
|
|
+ <section id="subdev"> &sub-dev-subdev; </section>
|
|
</chapter>
|
|
|
|
<chapter id="driver">
|
|
@@ -477,6 +478,9 @@ and discussions on the V4L mailing list.</revremark>
|
|
&sub-reqbufs;
|
|
&sub-s-hw-freq-seek;
|
|
&sub-streamon;
|
|
+ &sub-subdev-enum-frame-size;
|
|
+ &sub-subdev-enum-mbus-code;
|
|
+ &sub-subdev-g-fmt;
|
|
&sub-subscribe-event;
|
|
<!-- End of ioctls. -->
|
|
&sub-mmap;
|
|
diff --git a/Documentation/DocBook/v4l/vidioc-streamon.xml b/Documentation/DocBook/v4l/vidioc-streamon.xml
|
|
index e42bff1..75ed39b 100644
|
|
--- a/Documentation/DocBook/v4l/vidioc-streamon.xml
|
|
+++ b/Documentation/DocBook/v4l/vidioc-streamon.xml
|
|
@@ -93,6 +93,15 @@ synchronize with other events.</para>
|
|
been allocated (memory mapping) or enqueued (output) yet.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
+ <varlistentry>
|
|
+ <term><errorcode>EPIPE</errorcode></term>
|
|
+ <listitem>
|
|
+ <para>The driver implements <link
|
|
+ linkend="pad-level-formats">pad-level format configuration</link> and
|
|
+ the pipeline configuration is invalid.
|
|
+ </para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
</refentry>
|
|
diff --git a/Documentation/DocBook/v4l/vidioc-subdev-enum-frame-size.xml b/Documentation/DocBook/v4l/vidioc-subdev-enum-frame-size.xml
|
|
new file mode 100644
|
|
index 0000000..209e983
|
|
--- /dev/null
|
|
+++ b/Documentation/DocBook/v4l/vidioc-subdev-enum-frame-size.xml
|
|
@@ -0,0 +1,148 @@
|
|
+<refentry id="vidioc-subdev-enum-frame-size">
|
|
+ <refmeta>
|
|
+ <refentrytitle>ioctl VIDIOC_SUBDEV_ENUM_FRAME_SIZE</refentrytitle>
|
|
+ &manvol;
|
|
+ </refmeta>
|
|
+
|
|
+ <refnamediv>
|
|
+ <refname>VIDIOC_SUBDEV_ENUM_FRAME_SIZE</refname>
|
|
+ <refpurpose>Enumerate media bus frame sizes</refpurpose>
|
|
+ </refnamediv>
|
|
+
|
|
+ <refsynopsisdiv>
|
|
+ <funcsynopsis>
|
|
+ <funcprototype>
|
|
+ <funcdef>int <function>ioctl</function></funcdef>
|
|
+ <paramdef>int <parameter>fd</parameter></paramdef>
|
|
+ <paramdef>int <parameter>request</parameter></paramdef>
|
|
+ <paramdef>struct v4l2_subdev_frame_size_enum *
|
|
+ <parameter>argp</parameter></paramdef>
|
|
+ </funcprototype>
|
|
+ </funcsynopsis>
|
|
+ </refsynopsisdiv>
|
|
+
|
|
+ <refsect1>
|
|
+ <title>Arguments</title>
|
|
+
|
|
+ <variablelist>
|
|
+ <varlistentry>
|
|
+ <term><parameter>fd</parameter></term>
|
|
+ <listitem>
|
|
+ <para>&fd;</para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ <varlistentry>
|
|
+ <term><parameter>request</parameter></term>
|
|
+ <listitem>
|
|
+ <para>VIDIOC_SUBDEV_ENUM_FRAME_SIZE</para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ <varlistentry>
|
|
+ <term><parameter>argp</parameter></term>
|
|
+ <listitem>
|
|
+ <para></para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ </variablelist>
|
|
+ </refsect1>
|
|
+
|
|
+ <refsect1>
|
|
+ <title>Description</title>
|
|
+
|
|
+ <para>This ioctl allows applications to enumerate all frame sizes
|
|
+ supported by a sub-device on the given pad for the given media bus format.
|
|
+ Supported formats can be retrieved with the &VIDIOC-SUBDEV-ENUM-MBUS-CODE;
|
|
+ ioctl.</para>
|
|
+
|
|
+ <para>To enumerate frame sizes applications initialize the
|
|
+ <structfield>pad</structfield>, <structfield>code</structfield> and
|
|
+ <structfield>index</structfield> fields of the
|
|
+ &v4l2-subdev-mbus-code-enum; and call the
|
|
+ <constant>VIDIOC_SUBDEV_ENUM_FRAME_SIZE</constant> ioctl with a pointer to
|
|
+ the structure. Drivers fill the minimum and maximum frame sizes or return
|
|
+ an &EINVAL; if one of the input parameters is invalid.</para>
|
|
+
|
|
+ <para>Sub-devices that only support discrete frame sizes (such as most
|
|
+ sensors) will return one or more frame sizes with identical minimum and
|
|
+ maximum values.</para>
|
|
+
|
|
+ <para>Not all possible sizes in given [minimum, maximum] ranges need to be
|
|
+ supported. For instance, a scaler that uses a fixed-point scaling ratio
|
|
+ might not be able to produce every frame size between the minimum and
|
|
+ maximum values. Applications must use the &VIDIOC-SUBDEV-S-FMT; ioctl to
|
|
+ try the sub-device for an exact supported frame size.</para>
|
|
+
|
|
+ <para>Available frame sizes may depend on the current 'try' formats at other
|
|
+ pads of the sub-device, as well as on the current active links and the
|
|
+ current values of V4L2 controls. See &VIDIOC-SUBDEV-G-FMT; for more
|
|
+ information about try formats.</para>
|
|
+
|
|
+ <table pgwide="1" frame="none" id="v4l2-subdev-frame-size-enum">
|
|
+ <title>struct <structname>v4l2_subdev_frame_size_enum</structname></title>
|
|
+ <tgroup cols="3">
|
|
+ &cs-str;
|
|
+ <tbody valign="top">
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>index</structfield></entry>
|
|
+ <entry>Number of the format in the enumeration, set by the
|
|
+ application.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>pad</structfield></entry>
|
|
+ <entry>Pad number as reported by the media controller API.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>code</structfield></entry>
|
|
+ <entry>The media bus format code, as defined in
|
|
+ <xref linkend="v4l2-mbus-format" />.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>min_width</structfield></entry>
|
|
+ <entry>Minimum frame width, in pixels.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>max_width</structfield></entry>
|
|
+ <entry>Maximum frame width, in pixels.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>min_height</structfield></entry>
|
|
+ <entry>Minimum frame height, in pixels.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>max_height</structfield></entry>
|
|
+ <entry>Maximum frame height, in pixels.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>reserved</structfield>[9]</entry>
|
|
+ <entry>Reserved for future extensions. Applications and drivers must
|
|
+ set the array to zero.</entry>
|
|
+ </row>
|
|
+ </tbody>
|
|
+ </tgroup>
|
|
+ </table>
|
|
+ </refsect1>
|
|
+
|
|
+ <refsect1>
|
|
+ &return-value;
|
|
+
|
|
+ <variablelist>
|
|
+ <varlistentry>
|
|
+ <term><errorcode>EINVAL</errorcode></term>
|
|
+ <listitem>
|
|
+ <para>The &v4l2-subdev-frame-size-enum; <structfield>pad</structfield>
|
|
+ references a non-existing pad, the <structfield>code</structfield> is
|
|
+ invalid for the given pad or the <structfield>index</structfield>
|
|
+ field is out of bounds.</para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ </variablelist>
|
|
+ </refsect1>
|
|
+</refentry>
|
|
diff --git a/Documentation/DocBook/v4l/vidioc-subdev-enum-mbus-code.xml b/Documentation/DocBook/v4l/vidioc-subdev-enum-mbus-code.xml
|
|
new file mode 100644
|
|
index 0000000..763dbc7
|
|
--- /dev/null
|
|
+++ b/Documentation/DocBook/v4l/vidioc-subdev-enum-mbus-code.xml
|
|
@@ -0,0 +1,113 @@
|
|
+<refentry id="vidioc-subdev-enum-mbus-code">
|
|
+ <refmeta>
|
|
+ <refentrytitle>ioctl VIDIOC_SUBDEV_ENUM_MBUS_CODE</refentrytitle>
|
|
+ &manvol;
|
|
+ </refmeta>
|
|
+
|
|
+ <refnamediv>
|
|
+ <refname>VIDIOC_SUBDEV_ENUM_MBUS_CODE</refname>
|
|
+ <refpurpose>Enumerate media bus formats</refpurpose>
|
|
+ </refnamediv>
|
|
+
|
|
+ <refsynopsisdiv>
|
|
+ <funcsynopsis>
|
|
+ <funcprototype>
|
|
+ <funcdef>int <function>ioctl</function></funcdef>
|
|
+ <paramdef>int <parameter>fd</parameter></paramdef>
|
|
+ <paramdef>int <parameter>request</parameter></paramdef>
|
|
+ <paramdef>struct v4l2_subdev_mbus_code_enum *
|
|
+ <parameter>argp</parameter></paramdef>
|
|
+ </funcprototype>
|
|
+ </funcsynopsis>
|
|
+ </refsynopsisdiv>
|
|
+
|
|
+ <refsect1>
|
|
+ <title>Arguments</title>
|
|
+
|
|
+ <variablelist>
|
|
+ <varlistentry>
|
|
+ <term><parameter>fd</parameter></term>
|
|
+ <listitem>
|
|
+ <para>&fd;</para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ <varlistentry>
|
|
+ <term><parameter>request</parameter></term>
|
|
+ <listitem>
|
|
+ <para>VIDIOC_SUBDEV_ENUM_MBUS_CODE</para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ <varlistentry>
|
|
+ <term><parameter>argp</parameter></term>
|
|
+ <listitem>
|
|
+ <para></para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ </variablelist>
|
|
+ </refsect1>
|
|
+
|
|
+ <refsect1>
|
|
+ <title>Description</title>
|
|
+
|
|
+ <para>To enumerate media bus formats available at a given sub-device pad
|
|
+ applications initialize the <structfield>pad</structfield> and
|
|
+ <structfield>index</structfield> fields of &v4l2-subdev-mbus-code-enum; and
|
|
+ call the <constant>VIDIOC_SUBDEV_ENUM_MBUS_CODE</constant> ioctl with a
|
|
+ pointer to this structure. Drivers fill the rest of the structure or return
|
|
+ an &EINVAL; if either the <structfield>pad</structfield> or
|
|
+ <structfield>index</structfield> are invalid. All media bus formats are
|
|
+ enumerable by beginning at index zero and incrementing by one until
|
|
+ <errorcode>EINVAL</errorcode> is returned.</para>
|
|
+
|
|
+ <para>Available media bus formats may depend on the current 'try' formats
|
|
+ at other pads of the sub-device, as well as on the current active links. See
|
|
+ &VIDIOC-SUBDEV-G-FMT; for more information about the try formats.</para>
|
|
+
|
|
+ <table pgwide="1" frame="none" id="v4l2-subdev-mbus-code-enum">
|
|
+ <title>struct <structname>v4l2_subdev_mbus_code_enum</structname></title>
|
|
+ <tgroup cols="3">
|
|
+ &cs-str;
|
|
+ <tbody valign="top">
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>pad</structfield></entry>
|
|
+ <entry>Pad number as reported by the media controller API.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>index</structfield></entry>
|
|
+ <entry>Number of the format in the enumeration, set by the
|
|
+ application.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>code</structfield></entry>
|
|
+ <entry>The media bus format code, as defined in
|
|
+ <xref linkend="v4l2-mbus-format" />.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>reserved</structfield>[9]</entry>
|
|
+ <entry>Reserved for future extensions. Applications and drivers must
|
|
+ set the array to zero.</entry>
|
|
+ </row>
|
|
+ </tbody>
|
|
+ </tgroup>
|
|
+ </table>
|
|
+ </refsect1>
|
|
+
|
|
+ <refsect1>
|
|
+ &return-value;
|
|
+
|
|
+ <variablelist>
|
|
+ <varlistentry>
|
|
+ <term><errorcode>EINVAL</errorcode></term>
|
|
+ <listitem>
|
|
+ <para>The &v4l2-subdev-mbus-code-enum; <structfield>pad</structfield>
|
|
+ references a non-existing pad, or the <structfield>index</structfield>
|
|
+ field is out of bounds.</para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ </variablelist>
|
|
+ </refsect1>
|
|
+</refentry>
|
|
diff --git a/Documentation/DocBook/v4l/vidioc-subdev-g-fmt.xml b/Documentation/DocBook/v4l/vidioc-subdev-g-fmt.xml
|
|
new file mode 100644
|
|
index 0000000..f06c41b
|
|
--- /dev/null
|
|
+++ b/Documentation/DocBook/v4l/vidioc-subdev-g-fmt.xml
|
|
@@ -0,0 +1,174 @@
|
|
+<refentry id="vidioc-subdev-g-fmt">
|
|
+ <refmeta>
|
|
+ <refentrytitle>ioctl VIDIOC_SUBDEV_G_FMT, VIDIOC_SUBDEV_S_FMT</refentrytitle>
|
|
+ &manvol;
|
|
+ </refmeta>
|
|
+
|
|
+ <refnamediv>
|
|
+ <refname>VIDIOC_SUBDEV_G_FMT</refname>
|
|
+ <refname>VIDIOC_SUBDEV_S_FMT</refname>
|
|
+ <refpurpose>Get or set the data format on a subdev pad</refpurpose>
|
|
+ </refnamediv>
|
|
+
|
|
+ <refsynopsisdiv>
|
|
+ <funcsynopsis>
|
|
+ <funcprototype>
|
|
+ <funcdef>int <function>ioctl</function></funcdef>
|
|
+ <paramdef>int <parameter>fd</parameter></paramdef>
|
|
+ <paramdef>int <parameter>request</parameter></paramdef>
|
|
+ <paramdef>struct v4l2_subdev_format *<parameter>argp</parameter>
|
|
+ </paramdef>
|
|
+ </funcprototype>
|
|
+ </funcsynopsis>
|
|
+ </refsynopsisdiv>
|
|
+
|
|
+ <refsect1>
|
|
+ <title>Arguments</title>
|
|
+
|
|
+ <variablelist>
|
|
+ <varlistentry>
|
|
+ <term><parameter>fd</parameter></term>
|
|
+ <listitem>
|
|
+ <para>&fd;</para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ <varlistentry>
|
|
+ <term><parameter>request</parameter></term>
|
|
+ <listitem>
|
|
+ <para>VIDIOC_SUBDEV_G_FMT, VIDIOC_SUBDEV_S_FMT</para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ <varlistentry>
|
|
+ <term><parameter>argp</parameter></term>
|
|
+ <listitem>
|
|
+ <para></para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ </variablelist>
|
|
+ </refsect1>
|
|
+
|
|
+ <refsect1>
|
|
+ <title>Description</title>
|
|
+
|
|
+ <para>These ioctls are used to negotiate the frame format at specific
|
|
+ subdev pads in the image pipeline.</para>
|
|
+
|
|
+ <para>To retrieve the current format applications set the
|
|
+ <structfield>pad</structfield> field of a &v4l2-subdev-format; to the
|
|
+ desired pad number as reported by the media API and the
|
|
+ <structfield>which</structfield> field to
|
|
+ <constant>V4L2_SUBDEV_FORMAT_ACTIVE</constant>. When they call the
|
|
+ <constant>VIDIOC_SUBDEV_G_FMT</constant> ioctl with a pointer to this
|
|
+ structure the driver fills the members of the <structfield>format</structfield>
|
|
+ field.</para>
|
|
+
|
|
+ <para>To change the current format applications set both the
|
|
+ <structfield>pad</structfield> and <structfield>which</structfield> fields
|
|
+ and all members of the <structfield>format</structfield> field. When they
|
|
+ call the <constant>VIDIOC_SUBDEV_S_FMT</constant> ioctl with a pointer to this
|
|
+ structure the driver verifies the requested format, adjusts it based on the
|
|
+ hardware capabilities and configures the device. Upon return the
|
|
+ &v4l2-subdev-format; contains the current format as would be returned by a
|
|
+ <constant>VIDIOC_SUBDEV_G_FMT</constant> call.</para>
|
|
+
|
|
+ <para>Applications can query the device capabilities by setting the
|
|
+ <structfield>which</structfield> to
|
|
+ <constant>V4L2_SUBDEV_FORMAT_TRY</constant>. When set, 'try' formats are not
|
|
+ applied to the device by the driver, but are changed exactly as active
|
|
+ formats and stored in the sub-device file handle. Two applications querying
|
|
+ the same sub-device would thus not interact with each other.</para>
|
|
+
|
|
+ <para>For instance, to try a format at the output pad of a sub-device,
|
|
+ applications would first set the try format at the sub-device input with the
|
|
+ <constant>VIDIOC_SUBDEV_S_FMT</constant> ioctl. They would then either
|
|
+ retrieve the default format at the output pad with the
|
|
+ <constant>VIDIOC_SUBDEV_G_FMT</constant> ioctl, or set the desired output
|
|
+ pad format with the <constant>VIDIOC_SUBDEV_S_FMT</constant> ioctl and check
|
|
+ the returned value.</para>
|
|
+
|
|
+ <para>Try formats do not depend on active formats, but can depend on the
|
|
+ current links configuration or sub-device controls value. For instance, a
|
|
+ low-pass noise filter might crop pixels at the frame boundaries, modifying
|
|
+ its output frame size.</para>
|
|
+
|
|
+ <para>Drivers must not return an error solely because the requested format
|
|
+ doesn't match the device capabilities. They must instead modify the format
|
|
+ to match what the hardware can provide. The modified format should be as
|
|
+ close as possible to the original request.</para>
|
|
+
|
|
+ <table pgwide="1" frame="none" id="v4l2-subdev-format">
|
|
+ <title>struct <structname>v4l2_subdev_format</structname></title>
|
|
+ <tgroup cols="3">
|
|
+ &cs-str;
|
|
+ <tbody valign="top">
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>pad</structfield></entry>
|
|
+ <entry>Pad number as reported by the media controller API.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>which</structfield></entry>
|
|
+ <entry>Format to modified, from &v4l2-subdev-format-whence;.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>&v4l2-mbus-framefmt;</entry>
|
|
+ <entry><structfield>format</structfield></entry>
|
|
+ <entry>Definition of an image format, see <xref
|
|
+ linkend="v4l2-mbus-framefmt" /> for details.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>__u32</entry>
|
|
+ <entry><structfield>reserved</structfield>[8]</entry>
|
|
+ <entry>Reserved for future extensions. Applications and drivers must
|
|
+ set the array to zero.</entry>
|
|
+ </row>
|
|
+ </tbody>
|
|
+ </tgroup>
|
|
+ </table>
|
|
+
|
|
+ <table pgwide="1" frame="none" id="v4l2-subdev-format-whence">
|
|
+ <title>enum <structname>v4l2_subdev_format_whence</structname></title>
|
|
+ <tgroup cols="3">
|
|
+ &cs-def;
|
|
+ <tbody valign="top">
|
|
+ <row>
|
|
+ <entry>V4L2_SUBDEV_FORMAT_TRY</entry>
|
|
+ <entry>0</entry>
|
|
+ <entry>Try formats, used for querying device capabilities.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry>V4L2_SUBDEV_FORMAT_ACTIVE</entry>
|
|
+ <entry>1</entry>
|
|
+ <entry>Active formats, applied to the hardware.</entry>
|
|
+ </row>
|
|
+ </tbody>
|
|
+ </tgroup>
|
|
+ </table>
|
|
+ </refsect1>
|
|
+
|
|
+ <refsect1>
|
|
+ &return-value;
|
|
+
|
|
+ <variablelist>
|
|
+ <varlistentry>
|
|
+ <term><errorcode>EBUSY</errorcode></term>
|
|
+ <listitem>
|
|
+ <para>The format can't be changed because the pad is currently busy.
|
|
+ This can be caused, for instance, by an active video stream on the
|
|
+ pad. The ioctl must not be retried without performing another action
|
|
+ to fix the problem first. Only returned by
|
|
+ <constant>VIDIOC_SUBDEV_S_FMT</constant></para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ <varlistentry>
|
|
+ <term><errorcode>EINVAL</errorcode></term>
|
|
+ <listitem>
|
|
+ <para>The &v4l2-subdev-format; <structfield>pad</structfield>
|
|
+ references a non-existing pad, or the <structfield>which</structfield>
|
|
+ field references a non-existing format.</para>
|
|
+ </listitem>
|
|
+ </varlistentry>
|
|
+ </variablelist>
|
|
+ </refsect1>
|
|
+</refentry>
|
|
diff --git a/drivers/media/video/v4l2-subdev.c b/drivers/media/video/v4l2-subdev.c
|
|
index 0f904e2..73aae00 100644
|
|
--- a/drivers/media/video/v4l2-subdev.c
|
|
+++ b/drivers/media/video/v4l2-subdev.c
|
|
@@ -149,6 +149,9 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
|
|
struct video_device *vdev = video_devdata(file);
|
|
struct v4l2_subdev *sd = vdev_to_v4l2_subdev(vdev);
|
|
struct v4l2_fh *vfh = file->private_data;
|
|
+#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
|
|
+ struct v4l2_subdev_fh *subdev_fh = to_v4l2_subdev_fh(vfh);
|
|
+#endif
|
|
|
|
switch (cmd) {
|
|
case VIDIOC_QUERYCTRL:
|
|
@@ -183,7 +186,53 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
|
|
|
|
case VIDIOC_UNSUBSCRIBE_EVENT:
|
|
return v4l2_subdev_call(sd, core, unsubscribe_event, vfh, arg);
|
|
+#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
|
|
+ case VIDIOC_SUBDEV_G_FMT: {
|
|
+ struct v4l2_subdev_format *format = arg;
|
|
+
|
|
+ if (format->which != V4L2_SUBDEV_FORMAT_TRY &&
|
|
+ format->which != V4L2_SUBDEV_FORMAT_ACTIVE)
|
|
+ return -EINVAL;
|
|
+
|
|
+ if (format->pad >= sd->entity.num_pads)
|
|
+ return -EINVAL;
|
|
+
|
|
+ return v4l2_subdev_call(sd, pad, get_fmt, subdev_fh, format);
|
|
+ }
|
|
+
|
|
+ case VIDIOC_SUBDEV_S_FMT: {
|
|
+ struct v4l2_subdev_format *format = arg;
|
|
+
|
|
+ if (format->which != V4L2_SUBDEV_FORMAT_TRY &&
|
|
+ format->which != V4L2_SUBDEV_FORMAT_ACTIVE)
|
|
+ return -EINVAL;
|
|
+
|
|
+ if (format->pad >= sd->entity.num_pads)
|
|
+ return -EINVAL;
|
|
|
|
+ return v4l2_subdev_call(sd, pad, set_fmt, subdev_fh, format);
|
|
+ }
|
|
+
|
|
+ case VIDIOC_SUBDEV_ENUM_MBUS_CODE: {
|
|
+ struct v4l2_subdev_mbus_code_enum *code = arg;
|
|
+
|
|
+ if (code->pad >= sd->entity.num_pads)
|
|
+ return -EINVAL;
|
|
+
|
|
+ return v4l2_subdev_call(sd, pad, enum_mbus_code, subdev_fh,
|
|
+ code);
|
|
+ }
|
|
+
|
|
+ case VIDIOC_SUBDEV_ENUM_FRAME_SIZE: {
|
|
+ struct v4l2_subdev_frame_size_enum *fse = arg;
|
|
+
|
|
+ if (fse->pad >= sd->entity.num_pads)
|
|
+ return -EINVAL;
|
|
+
|
|
+ return v4l2_subdev_call(sd, pad, enum_frame_size, subdev_fh,
|
|
+ fse);
|
|
+ }
|
|
+#endif
|
|
default:
|
|
return -ENOIOCTLCMD;
|
|
}
|
|
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
|
|
index 796e1d8..c0db7f4 100644
|
|
--- a/include/linux/Kbuild
|
|
+++ b/include/linux/Kbuild
|
|
@@ -367,6 +367,7 @@ header-y += usbdevice_fs.h
|
|
header-y += utime.h
|
|
header-y += utsname.h
|
|
header-y += v4l2-mediabus.h
|
|
+header-y += v4l2-subdev.h
|
|
header-y += veth.h
|
|
header-y += vhost.h
|
|
header-y += videodev.h
|
|
diff --git a/include/linux/v4l2-subdev.h b/include/linux/v4l2-subdev.h
|
|
new file mode 100644
|
|
index 0000000..38d0eda
|
|
--- /dev/null
|
|
+++ b/include/linux/v4l2-subdev.h
|
|
@@ -0,0 +1,90 @@
|
|
+/*
|
|
+ * V4L2 subdev userspace API
|
|
+ *
|
|
+ * Copyright (C) 2010 Nokia Corporation
|
|
+ *
|
|
+ * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
+ * Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>
|
|
+ *
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
+ * it under the terms of the GNU General Public License version 2 as
|
|
+ * published by the Free Software Foundation.
|
|
+ *
|
|
+ * This program is distributed in the hope that it will be useful,
|
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * GNU General Public License for more details.
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License
|
|
+ * along with this program; if not, write to the Free Software
|
|
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
+ */
|
|
+
|
|
+#ifndef __LINUX_V4L2_SUBDEV_H
|
|
+#define __LINUX_V4L2_SUBDEV_H
|
|
+
|
|
+#include <linux/ioctl.h>
|
|
+#include <linux/types.h>
|
|
+#include <linux/v4l2-mediabus.h>
|
|
+
|
|
+/**
|
|
+ * enum v4l2_subdev_format_whence - Media bus format type
|
|
+ * @V4L2_SUBDEV_FORMAT_TRY: try format, for negotiation only
|
|
+ * @V4L2_SUBDEV_FORMAT_ACTIVE: active format, applied to the device
|
|
+ */
|
|
+enum v4l2_subdev_format_whence {
|
|
+ V4L2_SUBDEV_FORMAT_TRY = 0,
|
|
+ V4L2_SUBDEV_FORMAT_ACTIVE = 1,
|
|
+};
|
|
+
|
|
+/**
|
|
+ * struct v4l2_subdev_format - Pad-level media bus format
|
|
+ * @which: format type (from enum v4l2_subdev_format_whence)
|
|
+ * @pad: pad number, as reported by the media API
|
|
+ * @format: media bus format (format code and frame size)
|
|
+ */
|
|
+struct v4l2_subdev_format {
|
|
+ __u32 which;
|
|
+ __u32 pad;
|
|
+ struct v4l2_mbus_framefmt format;
|
|
+ __u32 reserved[8];
|
|
+};
|
|
+
|
|
+/**
|
|
+ * struct v4l2_subdev_mbus_code_enum - Media bus format enumeration
|
|
+ * @pad: pad number, as reported by the media API
|
|
+ * @index: format index during enumeration
|
|
+ * @code: format code (from enum v4l2_mbus_pixelcode)
|
|
+ */
|
|
+struct v4l2_subdev_mbus_code_enum {
|
|
+ __u32 pad;
|
|
+ __u32 index;
|
|
+ __u32 code;
|
|
+ __u32 reserved[9];
|
|
+};
|
|
+
|
|
+/**
|
|
+ * struct v4l2_subdev_frame_size_enum - Media bus format enumeration
|
|
+ * @pad: pad number, as reported by the media API
|
|
+ * @index: format index during enumeration
|
|
+ * @code: format code (from enum v4l2_mbus_pixelcode)
|
|
+ */
|
|
+struct v4l2_subdev_frame_size_enum {
|
|
+ __u32 index;
|
|
+ __u32 pad;
|
|
+ __u32 code;
|
|
+ __u32 min_width;
|
|
+ __u32 max_width;
|
|
+ __u32 min_height;
|
|
+ __u32 max_height;
|
|
+ __u32 reserved[9];
|
|
+};
|
|
+
|
|
+#define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format)
|
|
+#define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format)
|
|
+#define VIDIOC_SUBDEV_ENUM_MBUS_CODE \
|
|
+ _IOWR('V', 2, struct v4l2_subdev_mbus_code_enum)
|
|
+#define VIDIOC_SUBDEV_ENUM_FRAME_SIZE \
|
|
+ _IOWR('V', 74, struct v4l2_subdev_frame_size_enum)
|
|
+
|
|
+#endif
|
|
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
|
|
index 4f6ddba..f5611c2 100644
|
|
--- a/include/media/v4l2-subdev.h
|
|
+++ b/include/media/v4l2-subdev.h
|
|
@@ -21,6 +21,7 @@
|
|
#ifndef _V4L2_SUBDEV_H
|
|
#define _V4L2_SUBDEV_H
|
|
|
|
+#include <linux/v4l2-subdev.h>
|
|
#include <media/media-entity.h>
|
|
#include <media/v4l2-common.h>
|
|
#include <media/v4l2-dev.h>
|
|
@@ -425,6 +426,15 @@ struct v4l2_subdev_ir_ops {
|
|
};
|
|
|
|
struct v4l2_subdev_pad_ops {
|
|
+ int (*enum_mbus_code)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
|
|
+ struct v4l2_subdev_mbus_code_enum *code);
|
|
+ int (*enum_frame_size)(struct v4l2_subdev *sd,
|
|
+ struct v4l2_subdev_fh *fh,
|
|
+ struct v4l2_subdev_frame_size_enum *fse);
|
|
+ int (*get_fmt)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
|
|
+ struct v4l2_subdev_format *format);
|
|
+ int (*set_fmt)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
|
|
+ struct v4l2_subdev_format *format);
|
|
};
|
|
|
|
struct v4l2_subdev_ops {
|
|
--
|
|
1.6.6.1
|
|
|