[media] v4l: doc: Remove row numbers from tables
Shorten the tables by removing row numbers in comments, allowing for later insertion of rows with minimal diffs. All changes have been generated by the following script. import io import re import sys def process_table(fname, data): if fname.endswith('hist-v4l2.rst'): data = re.sub(u'\n{1,2}\t( ?) -( ?) ?', u'\n\t\\1 -\\2', data, flags = re.MULTILINE) data = re.sub(u'\n(\t| )- \.\. row [0-9]+\n\t ?-( ?) ?', u'\\1* -\\2', data, flags = re.MULTILINE) else: data = re.sub(u'\n{1,2} -( ?) ?', u'\n -\\1', data, flags = re.MULTILINE) data = re.sub(u'(\n?)(\n\n - \.\. row 1\n)', u'\n\\2', data, flags = re.MULTILINE) data = re.sub(u'\n - \.\. row [0-9]+\n -( ?) ?', u' * -\\1', data, flags = re.MULTILINE) data = re.sub(u'\n - \.\. row [0-9]+\n \.\. (_[A-Z0-9_`-]*:)', u'\n - .. \\1', data, flags = re.MULTILINE) data = re.sub(u'\n - \.\. (_[A-Z0-9_`-]*:)\n -', u' * .. \\1\n\n -', data, flags = re.MULTILINE) data = re.sub(u'^ - ', u' -', data, flags = re.MULTILINE) data = re.sub(u'^(\t{1,2}) ', u'\\1', data, flags = re.MULTILINE) return data def process_file(fname, data): buf = io.StringIO(data) output = '' in_table = False table_separator = 0 for line in buf.readlines(): if line.find('.. flat-table::') != -1: in_table = True table = '' elif in_table and not re.match('^[\t\n]|( )', line): in_table = False output += process_table(fname, table) if in_table: table += line else: output += line if in_table: in_table = False output += process_table(fname, table) return output fname = sys.argv[1] data = file(fname, 'rb').read().decode('utf-8') data = process_file(fname, data) file(fname, 'wb').write(data.encode('utf-8')) Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
c19584882a
commit
c2b66cafdf
File diff suppressed because it is too large
Load Diff
|
@ -198,104 +198,41 @@ Control IDs
|
|||
:stub-columns: 0
|
||||
:widths: 11 24
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_COLORFX_NONE``
|
||||
|
||||
- Color effect is disabled.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_COLORFX_ANTIQUE``
|
||||
|
||||
- An aging (old photo) effect.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_COLORFX_ART_FREEZE``
|
||||
|
||||
- Frost color effect.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_COLORFX_AQUA``
|
||||
|
||||
- Water color, cool tone.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_COLORFX_BW``
|
||||
|
||||
- Black and white.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_COLORFX_EMBOSS``
|
||||
|
||||
- Emboss, the highlights and shadows replace light/dark boundaries
|
||||
and low contrast areas are set to a gray background.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_COLORFX_GRASS_GREEN``
|
||||
|
||||
- Grass green.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_COLORFX_NEGATIVE``
|
||||
|
||||
- Negative.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``V4L2_COLORFX_SEPIA``
|
||||
|
||||
- Sepia tone.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- ``V4L2_COLORFX_SKETCH``
|
||||
|
||||
- Sketch.
|
||||
|
||||
- .. row 11
|
||||
|
||||
- ``V4L2_COLORFX_SKIN_WHITEN``
|
||||
|
||||
- Skin whiten.
|
||||
|
||||
- .. row 12
|
||||
|
||||
- ``V4L2_COLORFX_SKY_BLUE``
|
||||
|
||||
- Sky blue.
|
||||
|
||||
- .. row 13
|
||||
|
||||
- ``V4L2_COLORFX_SOLARIZATION``
|
||||
|
||||
- Solarization, the image is partially reversed in tone, only color
|
||||
values above or below a certain threshold are inverted.
|
||||
|
||||
- .. row 14
|
||||
|
||||
- ``V4L2_COLORFX_SILHOUETTE``
|
||||
|
||||
- Silhouette (outline).
|
||||
|
||||
- .. row 15
|
||||
|
||||
- ``V4L2_COLORFX_VIVID``
|
||||
|
||||
- Vivid colors.
|
||||
|
||||
- .. row 16
|
||||
|
||||
- ``V4L2_COLORFX_SET_CBCR``
|
||||
|
||||
- The Cb and Cr chroma components are replaced by fixed coefficients
|
||||
determined by ``V4L2_CID_COLORFX_CBCR`` control.
|
||||
* - ``V4L2_COLORFX_NONE``
|
||||
- Color effect is disabled.
|
||||
* - ``V4L2_COLORFX_ANTIQUE``
|
||||
- An aging (old photo) effect.
|
||||
* - ``V4L2_COLORFX_ART_FREEZE``
|
||||
- Frost color effect.
|
||||
* - ``V4L2_COLORFX_AQUA``
|
||||
- Water color, cool tone.
|
||||
* - ``V4L2_COLORFX_BW``
|
||||
- Black and white.
|
||||
* - ``V4L2_COLORFX_EMBOSS``
|
||||
- Emboss, the highlights and shadows replace light/dark boundaries
|
||||
and low contrast areas are set to a gray background.
|
||||
* - ``V4L2_COLORFX_GRASS_GREEN``
|
||||
- Grass green.
|
||||
* - ``V4L2_COLORFX_NEGATIVE``
|
||||
- Negative.
|
||||
* - ``V4L2_COLORFX_SEPIA``
|
||||
- Sepia tone.
|
||||
* - ``V4L2_COLORFX_SKETCH``
|
||||
- Sketch.
|
||||
* - ``V4L2_COLORFX_SKIN_WHITEN``
|
||||
- Skin whiten.
|
||||
* - ``V4L2_COLORFX_SKY_BLUE``
|
||||
- Sky blue.
|
||||
* - ``V4L2_COLORFX_SOLARIZATION``
|
||||
- Solarization, the image is partially reversed in tone, only color
|
||||
values above or below a certain threshold are inverted.
|
||||
* - ``V4L2_COLORFX_SILHOUETTE``
|
||||
- Silhouette (outline).
|
||||
* - ``V4L2_COLORFX_VIVID``
|
||||
- Vivid colors.
|
||||
* - ``V4L2_COLORFX_SET_CBCR``
|
||||
- The Cb and Cr chroma components are replaced by fixed coefficients
|
||||
determined by ``V4L2_CID_COLORFX_CBCR`` control.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -110,120 +110,77 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
* - __u32
|
||||
- ``sampling_rate``
|
||||
- Samples per second, i. e. unit 1 Hz.
|
||||
* - __u32
|
||||
- ``offset``
|
||||
- Horizontal offset of the VBI image, relative to the leading edge
|
||||
of the line synchronization pulse and counted in samples: The
|
||||
first sample in the VBI image will be located ``offset`` /
|
||||
``sampling_rate`` seconds following the leading edge. See also
|
||||
:ref:`vbi-hsync`.
|
||||
* - __u32
|
||||
- ``samples_per_line``
|
||||
-
|
||||
* - __u32
|
||||
- ``sample_format``
|
||||
- Defines the sample format as in :ref:`pixfmt`, a
|
||||
four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``,
|
||||
i. e. each sample consists of 8 bits with lower values oriented
|
||||
towards the black level. Do not assume any other correlation of
|
||||
values with the signal level. For example, the MSB does not
|
||||
necessarily indicate if the signal is 'high' or 'low' because 128
|
||||
may not be the mean value of the signal. Drivers shall not convert
|
||||
the sample format by software.
|
||||
* - __u32
|
||||
- ``start``\ [#f2]_
|
||||
- This is the scanning system line number associated with the first
|
||||
line of the VBI image, of the first and the second field
|
||||
respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid
|
||||
values. The ``V4L2_VBI_ITU_525_F1_START``,
|
||||
``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and
|
||||
``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers
|
||||
for each field for each 525 or 625 line format as a convenience.
|
||||
Don't forget that ITU line numbering starts at 1, not 0. VBI input
|
||||
drivers can return start values 0 if the hardware cannot reliable
|
||||
identify scanning lines, VBI acquisition may not require this
|
||||
information.
|
||||
* - __u32
|
||||
- ``count``\ [#f2]_
|
||||
- The number of lines in the first and second field image,
|
||||
respectively.
|
||||
* - :cspan:`2`
|
||||
|
||||
- .. row 1
|
||||
Drivers should be as flexibility as possible. For example, it may
|
||||
be possible to extend or move the VBI capture window down to the
|
||||
picture area, implementing a 'full field mode' to capture data
|
||||
service transmissions embedded in the picture.
|
||||
|
||||
- __u32
|
||||
An application can set the first or second ``count`` value to zero
|
||||
if no data is required from the respective field; ``count``\ [1]
|
||||
if the scanning system is progressive, i. e. not interlaced. The
|
||||
corresponding start value shall be ignored by the application and
|
||||
driver. Anyway, drivers may not support single field capturing and
|
||||
return both count values non-zero.
|
||||
|
||||
- ``sampling_rate``
|
||||
Both ``count`` values set to zero, or line numbers are outside the
|
||||
bounds depicted\ [#f4]_, or a field image covering lines of two
|
||||
fields, are invalid and shall not be returned by the driver.
|
||||
|
||||
- Samples per second, i. e. unit 1 Hz.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``offset``
|
||||
|
||||
- Horizontal offset of the VBI image, relative to the leading edge
|
||||
of the line synchronization pulse and counted in samples: The
|
||||
first sample in the VBI image will be located ``offset`` /
|
||||
``sampling_rate`` seconds following the leading edge. See also
|
||||
:ref:`vbi-hsync`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``samples_per_line``
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``sample_format``
|
||||
|
||||
- Defines the sample format as in :ref:`pixfmt`, a
|
||||
four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``,
|
||||
i. e. each sample consists of 8 bits with lower values oriented
|
||||
towards the black level. Do not assume any other correlation of
|
||||
values with the signal level. For example, the MSB does not
|
||||
necessarily indicate if the signal is 'high' or 'low' because 128
|
||||
may not be the mean value of the signal. Drivers shall not convert
|
||||
the sample format by software.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``start``\ [#f2]_
|
||||
|
||||
- This is the scanning system line number associated with the first
|
||||
line of the VBI image, of the first and the second field
|
||||
respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid
|
||||
values. The ``V4L2_VBI_ITU_525_F1_START``,
|
||||
``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and
|
||||
``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers
|
||||
for each field for each 525 or 625 line format as a convenience.
|
||||
Don't forget that ITU line numbering starts at 1, not 0. VBI input
|
||||
drivers can return start values 0 if the hardware cannot reliable
|
||||
identify scanning lines, VBI acquisition may not require this
|
||||
information.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``count``\ [#f2]_
|
||||
|
||||
- The number of lines in the first and second field image,
|
||||
respectively.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- :cspan:`2`
|
||||
|
||||
Drivers should be as flexibility as possible. For example, it may
|
||||
be possible to extend or move the VBI capture window down to the
|
||||
picture area, implementing a 'full field mode' to capture data
|
||||
service transmissions embedded in the picture.
|
||||
|
||||
An application can set the first or second ``count`` value to zero
|
||||
if no data is required from the respective field; ``count``\ [1]
|
||||
if the scanning system is progressive, i. e. not interlaced. The
|
||||
corresponding start value shall be ignored by the application and
|
||||
driver. Anyway, drivers may not support single field capturing and
|
||||
return both count values non-zero.
|
||||
|
||||
Both ``count`` values set to zero, or line numbers are outside the
|
||||
bounds depicted\ [#f4]_, or a field image covering lines of two
|
||||
fields, are invalid and shall not be returned by the driver.
|
||||
|
||||
To initialize the ``start`` and ``count`` fields, applications
|
||||
must first determine the current video standard selection. The
|
||||
:ref:`v4l2_std_id <v4l2-std-id>` or the ``framelines`` field
|
||||
of struct :c:type:`v4l2_standard` can be evaluated
|
||||
for this purpose.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- See :ref:`vbifmt-flags` below. Currently only drivers set flags,
|
||||
applications must set this field to zero.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [#f2]_
|
||||
|
||||
- This array is reserved for future extensions. Drivers and
|
||||
applications must set it to zero.
|
||||
To initialize the ``start`` and ``count`` fields, applications
|
||||
must first determine the current video standard selection. The
|
||||
:ref:`v4l2_std_id <v4l2-std-id>` or the ``framelines`` field
|
||||
of struct :c:type:`v4l2_standard` can be evaluated
|
||||
for this purpose.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- See :ref:`vbifmt-flags` below. Currently only drivers set flags,
|
||||
applications must set this field to zero.
|
||||
* - __u32
|
||||
- ``reserved``\ [#f2]_
|
||||
- This array is reserved for future extensions. Drivers and
|
||||
applications must set it to zero.
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{4.0cm}|p{1.5cm}|p{12.0cm}|
|
||||
|
@ -235,40 +192,30 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_VBI_UNSYNC``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- This flag indicates hardware which does not properly distinguish
|
||||
between fields. Normally the VBI image stores the first field
|
||||
(lower scanning line numbers) first in memory. This may be a top
|
||||
or bottom field depending on the video standard. When this flag is
|
||||
set the first or second field may be stored first, however the
|
||||
fields are still in correct temporal order with the older field
|
||||
first in memory. [#f3]_
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_VBI_INTERLACED``
|
||||
|
||||
- 0x0002
|
||||
|
||||
- By default the two field images will be passed sequentially; all
|
||||
lines of the first field followed by all lines of the second field
|
||||
(compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and
|
||||
``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in
|
||||
memory depends on the video standard). When this flag is set, the
|
||||
two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The
|
||||
first line of the first field followed by the first line of the
|
||||
second field, then the two second lines, and so on. Such a layout
|
||||
may be necessary when the hardware has been programmed to capture
|
||||
or output interlaced video images and is unable to separate the
|
||||
fields for VBI capturing at the same time. For simplicity setting
|
||||
this flag implies that both ``count`` values are equal and
|
||||
non-zero.
|
||||
* - ``V4L2_VBI_UNSYNC``
|
||||
- 0x0001
|
||||
- This flag indicates hardware which does not properly distinguish
|
||||
between fields. Normally the VBI image stores the first field
|
||||
(lower scanning line numbers) first in memory. This may be a top
|
||||
or bottom field depending on the video standard. When this flag is
|
||||
set the first or second field may be stored first, however the
|
||||
fields are still in correct temporal order with the older field
|
||||
first in memory. [#f3]_
|
||||
* - ``V4L2_VBI_INTERLACED``
|
||||
- 0x0002
|
||||
- By default the two field images will be passed sequentially; all
|
||||
lines of the first field followed by all lines of the second field
|
||||
(compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and
|
||||
``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in
|
||||
memory depends on the video standard). When this flag is set, the
|
||||
two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The
|
||||
first line of the first field followed by the first line of the
|
||||
second field, then the two second lines, and so on. Such a layout
|
||||
may be necessary when the hardware has been programmed to capture
|
||||
or output interlaced video images and is unable to separate the
|
||||
fields for VBI capturing at the same time. For simplicity setting
|
||||
this flag implies that both ``count`` values are equal and
|
||||
non-zero.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -102,30 +102,15 @@ RDS datastructures
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 5
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u8
|
||||
|
||||
- ``lsb``
|
||||
|
||||
- Least Significant Byte of RDS Block
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u8
|
||||
|
||||
- ``msb``
|
||||
|
||||
- Most Significant Byte of RDS Block
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u8
|
||||
|
||||
- ``block``
|
||||
|
||||
- Block description
|
||||
* - __u8
|
||||
- ``lsb``
|
||||
- Least Significant Byte of RDS Block
|
||||
* - __u8
|
||||
- ``msb``
|
||||
- Most Significant Byte of RDS Block
|
||||
* - __u8
|
||||
- ``block``
|
||||
- Block description
|
||||
|
||||
|
||||
|
||||
|
@ -138,33 +123,17 @@ RDS datastructures
|
|||
:stub-columns: 0
|
||||
:widths: 1 5
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Bits 0-2
|
||||
|
||||
- Block (aka offset) of the received data.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Bits 3-5
|
||||
|
||||
- Deprecated. Currently identical to bits 0-2. Do not use these
|
||||
bits.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Bit 6
|
||||
|
||||
- Corrected bit. Indicates that an error was corrected for this data
|
||||
block.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Bit 7
|
||||
|
||||
- Error bit. Indicates that an uncorrectable error occurred during
|
||||
reception of this block.
|
||||
* - Bits 0-2
|
||||
- Block (aka offset) of the received data.
|
||||
* - Bits 3-5
|
||||
- Deprecated. Currently identical to bits 0-2. Do not use these
|
||||
bits.
|
||||
* - Bit 6
|
||||
- Corrected bit. Indicates that an error was corrected for this data
|
||||
block.
|
||||
* - Bit 7
|
||||
- Error bit. Indicates that an uncorrectable error occurred during
|
||||
reception of this block.
|
||||
|
||||
|
||||
|
||||
|
@ -177,87 +146,39 @@ RDS datastructures
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 1 5
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- V4L2_RDS_BLOCK_MSK
|
||||
|
||||
-
|
||||
- 7
|
||||
|
||||
- Mask for bits 0-2 to get the block ID.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- V4L2_RDS_BLOCK_A
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
- Block A.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- V4L2_RDS_BLOCK_B
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- Block B.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- V4L2_RDS_BLOCK_C
|
||||
|
||||
-
|
||||
- 2
|
||||
|
||||
- Block C.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- V4L2_RDS_BLOCK_D
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- Block D.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- V4L2_RDS_BLOCK_C_ALT
|
||||
|
||||
-
|
||||
- 4
|
||||
|
||||
- Block C'.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- V4L2_RDS_BLOCK_INVALID
|
||||
|
||||
- read-only
|
||||
|
||||
- 7
|
||||
|
||||
- An invalid block.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- V4L2_RDS_BLOCK_CORRECTED
|
||||
|
||||
- read-only
|
||||
|
||||
- 0x40
|
||||
|
||||
- A bit error was detected but corrected.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- V4L2_RDS_BLOCK_ERROR
|
||||
|
||||
- read-only
|
||||
|
||||
- 0x80
|
||||
|
||||
- An uncorrectable error occurred.
|
||||
* - V4L2_RDS_BLOCK_MSK
|
||||
-
|
||||
- 7
|
||||
- Mask for bits 0-2 to get the block ID.
|
||||
* - V4L2_RDS_BLOCK_A
|
||||
-
|
||||
- 0
|
||||
- Block A.
|
||||
* - V4L2_RDS_BLOCK_B
|
||||
-
|
||||
- 1
|
||||
- Block B.
|
||||
* - V4L2_RDS_BLOCK_C
|
||||
-
|
||||
- 2
|
||||
- Block C.
|
||||
* - V4L2_RDS_BLOCK_D
|
||||
-
|
||||
- 3
|
||||
- Block D.
|
||||
* - V4L2_RDS_BLOCK_C_ALT
|
||||
-
|
||||
- 4
|
||||
- Block C'.
|
||||
* - V4L2_RDS_BLOCK_INVALID
|
||||
- read-only
|
||||
- 7
|
||||
- An invalid block.
|
||||
* - V4L2_RDS_BLOCK_CORRECTED
|
||||
- read-only
|
||||
- 0x40
|
||||
- A bit error was detected but corrected.
|
||||
* - V4L2_RDS_BLOCK_ERROR
|
||||
- read-only
|
||||
- 0x80
|
||||
- An uncorrectable error occurred.
|
||||
|
|
|
@ -87,35 +87,20 @@ data transfer, set by the driver in order to inform application.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pixelformat``
|
||||
|
||||
- The data format or type of compression, set by the application.
|
||||
This is a little endian
|
||||
:ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR
|
||||
formats in :ref:`sdr-formats`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``buffersize``
|
||||
|
||||
- Maximum size in bytes required for data. Value is set by the
|
||||
driver.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u8
|
||||
|
||||
- ``reserved[24]``
|
||||
|
||||
- This array is reserved for future extensions. Drivers and
|
||||
applications must set it to zero.
|
||||
* - __u32
|
||||
- ``pixelformat``
|
||||
- The data format or type of compression, set by the application.
|
||||
This is a little endian
|
||||
:ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR
|
||||
formats in :ref:`sdr-formats`.
|
||||
* - __u32
|
||||
- ``buffersize``
|
||||
- Maximum size in bytes required for data. Value is set by the
|
||||
driver.
|
||||
* - __u8
|
||||
- ``reserved[24]``
|
||||
- This array is reserved for future extensions. Drivers and
|
||||
applications must set it to zero.
|
||||
|
||||
|
||||
An SDR device may support :ref:`read/write <rw>` and/or streaming
|
||||
|
|
|
@ -114,138 +114,90 @@ struct v4l2_sliced_vbi_format
|
|||
:stub-columns: 0
|
||||
:widths: 3 3 2 2 2
|
||||
|
||||
* - __u32
|
||||
- ``service_set``
|
||||
- :cspan:`2`
|
||||
|
||||
- .. row 1
|
||||
If ``service_set`` is non-zero when passed with
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
|
||||
:ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`, the ``service_lines``
|
||||
array will be filled by the driver according to the services
|
||||
specified in this field. For example, if ``service_set`` is
|
||||
initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``,
|
||||
a driver for the cx25840 video decoder sets lines 7-22 of both
|
||||
fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first
|
||||
field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to
|
||||
zero, then the values of ``service_lines`` will be used instead.
|
||||
|
||||
- __u32
|
||||
On return the driver sets this field to the union of all elements
|
||||
of the returned ``service_lines`` array. It may contain less
|
||||
services than requested, perhaps just one, if the hardware cannot
|
||||
handle more services simultaneously. It may be empty (zero) if
|
||||
none of the requested services are supported by the hardware.
|
||||
* - __u16
|
||||
- ``service_lines``\ [2][24]
|
||||
- :cspan:`2`
|
||||
|
||||
- ``service_set``
|
||||
Applications initialize this array with sets of data services the
|
||||
driver shall look for or insert on the respective scan line.
|
||||
Subject to hardware capabilities drivers return the requested set,
|
||||
a subset, which may be just a single service, or an empty set.
|
||||
When the hardware cannot handle multiple services on the same line
|
||||
the driver shall choose one. No assumptions can be made on which
|
||||
service the driver chooses.
|
||||
|
||||
- :cspan:`2`
|
||||
Data services are defined in :ref:`vbi-services2`. Array indices
|
||||
map to ITU-R line numbers\ [#f2]_ as follows:
|
||||
* -
|
||||
-
|
||||
- Element
|
||||
- 525 line systems
|
||||
- 625 line systems
|
||||
* -
|
||||
-
|
||||
- ``service_lines``\ [0][1]
|
||||
- 1
|
||||
- 1
|
||||
* -
|
||||
-
|
||||
- ``service_lines``\ [0][23]
|
||||
- 23
|
||||
- 23
|
||||
* -
|
||||
-
|
||||
- ``service_lines``\ [1][1]
|
||||
- 264
|
||||
- 314
|
||||
* -
|
||||
-
|
||||
- ``service_lines``\ [1][23]
|
||||
- 286
|
||||
- 336
|
||||
* -
|
||||
-
|
||||
- :cspan:`2` Drivers must set ``service_lines`` [0][0] and
|
||||
``service_lines``\ [1][0] to zero. The
|
||||
``V4L2_VBI_ITU_525_F1_START``, ``V4L2_VBI_ITU_525_F2_START``,
|
||||
``V4L2_VBI_ITU_625_F1_START`` and ``V4L2_VBI_ITU_625_F2_START``
|
||||
defines give the start line numbers for each field for each 525 or
|
||||
625 line format as a convenience. Don't forget that ITU line
|
||||
numbering starts at 1, not 0.
|
||||
* - __u32
|
||||
- ``io_size``
|
||||
- :cspan:`2` Maximum number of bytes passed by one
|
||||
:ref:`read() <func-read>` or :ref:`write() <func-write>` call,
|
||||
and the buffer size in bytes for the
|
||||
:ref:`VIDIOC_QBUF` and
|
||||
:ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. Drivers set this field
|
||||
to the size of struct
|
||||
:c:type:`v4l2_sliced_vbi_data` times the
|
||||
number of non-zero elements in the returned ``service_lines``
|
||||
array (that is the number of lines potentially carrying data).
|
||||
* - __u32
|
||||
- ``reserved``\ [2]
|
||||
- :cspan:`2` This array is reserved for future extensions.
|
||||
|
||||
If ``service_set`` is non-zero when passed with
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
|
||||
:ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`, the ``service_lines``
|
||||
array will be filled by the driver according to the services
|
||||
specified in this field. For example, if ``service_set`` is
|
||||
initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``,
|
||||
a driver for the cx25840 video decoder sets lines 7-22 of both
|
||||
fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first
|
||||
field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to
|
||||
zero, then the values of ``service_lines`` will be used instead.
|
||||
|
||||
On return the driver sets this field to the union of all elements
|
||||
of the returned ``service_lines`` array. It may contain less
|
||||
services than requested, perhaps just one, if the hardware cannot
|
||||
handle more services simultaneously. It may be empty (zero) if
|
||||
none of the requested services are supported by the hardware.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u16
|
||||
|
||||
- ``service_lines``\ [2][24]
|
||||
|
||||
- :cspan:`2`
|
||||
|
||||
Applications initialize this array with sets of data services the
|
||||
driver shall look for or insert on the respective scan line.
|
||||
Subject to hardware capabilities drivers return the requested set,
|
||||
a subset, which may be just a single service, or an empty set.
|
||||
When the hardware cannot handle multiple services on the same line
|
||||
the driver shall choose one. No assumptions can be made on which
|
||||
service the driver chooses.
|
||||
|
||||
Data services are defined in :ref:`vbi-services2`. Array indices
|
||||
map to ITU-R line numbers\ [#f2]_ as follows:
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
-
|
||||
- Element
|
||||
|
||||
- 525 line systems
|
||||
|
||||
- 625 line systems
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
-
|
||||
- ``service_lines``\ [0][1]
|
||||
|
||||
- 1
|
||||
|
||||
- 1
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
-
|
||||
- ``service_lines``\ [0][23]
|
||||
|
||||
- 23
|
||||
|
||||
- 23
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
-
|
||||
- ``service_lines``\ [1][1]
|
||||
|
||||
- 264
|
||||
|
||||
- 314
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
-
|
||||
- ``service_lines``\ [1][23]
|
||||
|
||||
- 286
|
||||
|
||||
- 336
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
-
|
||||
- :cspan:`2` Drivers must set ``service_lines`` [0][0] and
|
||||
``service_lines``\ [1][0] to zero. The
|
||||
``V4L2_VBI_ITU_525_F1_START``, ``V4L2_VBI_ITU_525_F2_START``,
|
||||
``V4L2_VBI_ITU_625_F1_START`` and ``V4L2_VBI_ITU_625_F2_START``
|
||||
defines give the start line numbers for each field for each 525 or
|
||||
625 line format as a convenience. Don't forget that ITU line
|
||||
numbering starts at 1, not 0.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- __u32
|
||||
|
||||
- ``io_size``
|
||||
|
||||
- :cspan:`2` Maximum number of bytes passed by one
|
||||
:ref:`read() <func-read>` or :ref:`write() <func-write>` call,
|
||||
and the buffer size in bytes for the
|
||||
:ref:`VIDIOC_QBUF` and
|
||||
:ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. Drivers set this field
|
||||
to the size of struct
|
||||
:c:type:`v4l2_sliced_vbi_data` times the
|
||||
number of non-zero elements in the returned ``service_lines``
|
||||
array (that is the number of lines potentially carrying data).
|
||||
|
||||
- .. row 10
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [2]
|
||||
|
||||
- :cspan:`2` This array is reserved for future extensions.
|
||||
|
||||
Applications and drivers must set it to zero.
|
||||
Applications and drivers must set it to zero.
|
||||
|
||||
|
||||
.. _vbi-services2:
|
||||
|
@ -264,95 +216,50 @@ Sliced VBI services
|
|||
:stub-columns: 0
|
||||
:widths: 2 1 1 2 2
|
||||
|
||||
* - Symbol
|
||||
- Value
|
||||
- Reference
|
||||
- Lines, usually
|
||||
- Payload
|
||||
* - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)
|
||||
- 0x0001
|
||||
- :ref:`ets300706`,
|
||||
|
||||
- .. row 1
|
||||
:ref:`itu653`
|
||||
- PAL/SECAM line 7-22, 320-335 (second field 7-22)
|
||||
- Last 42 of the 45 byte Teletext packet, that is without clock
|
||||
run-in and framing code, lsb first transmitted.
|
||||
* - ``V4L2_SLICED_VPS``
|
||||
- 0x0400
|
||||
- :ref:`ets300231`
|
||||
- PAL line 16
|
||||
- Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb
|
||||
first transmitted.
|
||||
* - ``V4L2_SLICED_CAPTION_525``
|
||||
- 0x1000
|
||||
- :ref:`cea608`
|
||||
- NTSC line 21, 284 (second field 21)
|
||||
- Two bytes in transmission order, including parity bit, lsb first
|
||||
transmitted.
|
||||
* - ``V4L2_SLICED_WSS_625``
|
||||
- 0x4000
|
||||
- :ref:`itu1119`,
|
||||
|
||||
- Symbol
|
||||
:ref:`en300294`
|
||||
- PAL/SECAM line 23
|
||||
-
|
||||
|
||||
- Value
|
||||
::
|
||||
|
||||
- Reference
|
||||
|
||||
- Lines, usually
|
||||
|
||||
- Payload
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)
|
||||
|
||||
- 0x0001
|
||||
|
||||
- :ref:`ets300706`,
|
||||
|
||||
:ref:`itu653`
|
||||
|
||||
- PAL/SECAM line 7-22, 320-335 (second field 7-22)
|
||||
|
||||
- Last 42 of the 45 byte Teletext packet, that is without clock
|
||||
run-in and framing code, lsb first transmitted.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_SLICED_VPS``
|
||||
|
||||
- 0x0400
|
||||
|
||||
- :ref:`ets300231`
|
||||
|
||||
- PAL line 16
|
||||
|
||||
- Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb
|
||||
first transmitted.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_SLICED_CAPTION_525``
|
||||
|
||||
- 0x1000
|
||||
|
||||
- :ref:`cea608`
|
||||
|
||||
- NTSC line 21, 284 (second field 21)
|
||||
|
||||
- Two bytes in transmission order, including parity bit, lsb first
|
||||
transmitted.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_SLICED_WSS_625``
|
||||
|
||||
- 0x4000
|
||||
|
||||
- :ref:`itu1119`,
|
||||
|
||||
:ref:`en300294`
|
||||
|
||||
- PAL/SECAM line 23
|
||||
|
||||
-
|
||||
|
||||
::
|
||||
|
||||
Byte 0 1
|
||||
msb lsb msb lsb
|
||||
Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_SLICED_VBI_525``
|
||||
|
||||
- 0x1000
|
||||
|
||||
- :cspan:`2` Set of services applicable to 525 line systems.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_SLICED_VBI_625``
|
||||
|
||||
- 0x4401
|
||||
|
||||
- :cspan:`2` Set of services applicable to 625 line systems.
|
||||
Byte 0 1
|
||||
msb lsb msb lsb
|
||||
Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9
|
||||
* - ``V4L2_SLICED_VBI_525``
|
||||
- 0x1000
|
||||
- :cspan:`2` Set of services applicable to 525 line systems.
|
||||
* - ``V4L2_SLICED_VBI_625``
|
||||
- 0x4401
|
||||
- :cspan:`2` Set of services applicable to 625 line systems.
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
@ -395,63 +302,38 @@ struct v4l2_sliced_vbi_data
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``id``
|
||||
|
||||
- A flag from :ref:`vbi-services` identifying the type of data in
|
||||
this packet. Only a single bit must be set. When the ``id`` of a
|
||||
captured packet is zero, the packet is empty and the contents of
|
||||
other fields are undefined. Applications shall ignore empty
|
||||
packets. When the ``id`` of a packet for output is zero the
|
||||
contents of the ``data`` field are undefined and the driver must
|
||||
no longer insert data on the requested ``field`` and ``line``.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``field``
|
||||
|
||||
- The video field number this data has been captured from, or shall
|
||||
be inserted at. ``0`` for the first field, ``1`` for the second
|
||||
field.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``line``
|
||||
|
||||
- The field (as opposed to frame) line number this data has been
|
||||
captured from, or shall be inserted at. See :ref:`vbi-525` and
|
||||
:ref:`vbi-625` for valid values. Sliced VBI capture devices can
|
||||
set the line number of all packets to ``0`` if the hardware cannot
|
||||
reliably identify scan lines. The field number must always be
|
||||
valid.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``
|
||||
|
||||
- This field is reserved for future extensions. Applications and
|
||||
drivers must set it to zero.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u8
|
||||
|
||||
- ``data``\ [48]
|
||||
|
||||
- The packet payload. See :ref:`vbi-services` for the contents and
|
||||
number of bytes passed for each data type. The contents of padding
|
||||
bytes at the end of this array are undefined, drivers and
|
||||
applications shall ignore them.
|
||||
* - __u32
|
||||
- ``id``
|
||||
- A flag from :ref:`vbi-services` identifying the type of data in
|
||||
this packet. Only a single bit must be set. When the ``id`` of a
|
||||
captured packet is zero, the packet is empty and the contents of
|
||||
other fields are undefined. Applications shall ignore empty
|
||||
packets. When the ``id`` of a packet for output is zero the
|
||||
contents of the ``data`` field are undefined and the driver must
|
||||
no longer insert data on the requested ``field`` and ``line``.
|
||||
* - __u32
|
||||
- ``field``
|
||||
- The video field number this data has been captured from, or shall
|
||||
be inserted at. ``0`` for the first field, ``1`` for the second
|
||||
field.
|
||||
* - __u32
|
||||
- ``line``
|
||||
- The field (as opposed to frame) line number this data has been
|
||||
captured from, or shall be inserted at. See :ref:`vbi-525` and
|
||||
:ref:`vbi-625` for valid values. Sliced VBI capture devices can
|
||||
set the line number of all packets to ``0`` if the hardware cannot
|
||||
reliably identify scan lines. The field number must always be
|
||||
valid.
|
||||
* - __u32
|
||||
- ``reserved``
|
||||
- This field is reserved for future extensions. Applications and
|
||||
drivers must set it to zero.
|
||||
* - __u8
|
||||
- ``data``\ [48]
|
||||
- The packet payload. See :ref:`vbi-services` for the contents and
|
||||
number of bytes passed for each data type. The contents of padding
|
||||
bytes at the end of this array are undefined, drivers and
|
||||
applications shall ignore them.
|
||||
|
||||
|
||||
Packets are always passed in ascending line number order, without
|
||||
|
@ -582,48 +464,29 @@ struct v4l2_mpeg_vbi_fmt_ivtv
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u8
|
||||
|
||||
- ``magic``\ [4]
|
||||
|
||||
-
|
||||
- A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that
|
||||
indicates this is a valid sliced VBI data payload and also
|
||||
indicates which member of the anonymous union, ``itv0`` or
|
||||
``ITV0``, to use for the payload data.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- union
|
||||
|
||||
- (anonymous)
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_mpeg_vbi_itv0`
|
||||
|
||||
- ``itv0``
|
||||
|
||||
- The primary form of the sliced VBI data payload that contains
|
||||
anywhere from 1 to 35 lines of sliced VBI data. Line masks are
|
||||
provided in this form of the payload indicating which VBI lines
|
||||
are provided.
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
- struct :ref:`v4l2_mpeg_vbi_ITV0 <v4l2-mpeg-vbi-itv0-1>`
|
||||
|
||||
- ``ITV0``
|
||||
|
||||
- An alternate form of the sliced VBI data payload used when 36
|
||||
lines of sliced VBI data are present. No line masks are provided
|
||||
in this form of the payload; all valid line mask bits are
|
||||
implcitly set.
|
||||
* - __u8
|
||||
- ``magic``\ [4]
|
||||
-
|
||||
- A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that
|
||||
indicates this is a valid sliced VBI data payload and also
|
||||
indicates which member of the anonymous union, ``itv0`` or
|
||||
``ITV0``, to use for the payload data.
|
||||
* - union
|
||||
- (anonymous)
|
||||
* -
|
||||
- struct :c:type:`v4l2_mpeg_vbi_itv0`
|
||||
- ``itv0``
|
||||
- The primary form of the sliced VBI data payload that contains
|
||||
anywhere from 1 to 35 lines of sliced VBI data. Line masks are
|
||||
provided in this form of the payload indicating which VBI lines
|
||||
are provided.
|
||||
* -
|
||||
- struct :ref:`v4l2_mpeg_vbi_ITV0 <v4l2-mpeg-vbi-itv0-1>`
|
||||
- ``ITV0``
|
||||
- An alternate form of the sliced VBI data payload used when 36
|
||||
lines of sliced VBI data are present. No line masks are provided
|
||||
in this form of the payload; all valid line mask bits are
|
||||
implcitly set.
|
||||
|
||||
|
||||
|
||||
|
@ -639,34 +502,19 @@ Magic Constants for struct v4l2_mpeg_vbi_fmt_ivtv magic field
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Defined Symbol
|
||||
|
||||
- Value
|
||||
|
||||
- Description
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_MPEG_VBI_IVTV_MAGIC0``
|
||||
|
||||
- "itv0"
|
||||
|
||||
- Indicates the ``itv0`` member of the union in struct
|
||||
:c:type:`v4l2_mpeg_vbi_fmt_ivtv` is
|
||||
valid.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_MPEG_VBI_IVTV_MAGIC1``
|
||||
|
||||
- "ITV0"
|
||||
|
||||
- Indicates the ``ITV0`` member of the union in struct
|
||||
:c:type:`v4l2_mpeg_vbi_fmt_ivtv` is
|
||||
valid and that 36 lines of sliced VBI data are present.
|
||||
* - Defined Symbol
|
||||
- Value
|
||||
- Description
|
||||
* - ``V4L2_MPEG_VBI_IVTV_MAGIC0``
|
||||
- "itv0"
|
||||
- Indicates the ``itv0`` member of the union in struct
|
||||
:c:type:`v4l2_mpeg_vbi_fmt_ivtv` is
|
||||
valid.
|
||||
* - ``V4L2_MPEG_VBI_IVTV_MAGIC1``
|
||||
- "ITV0"
|
||||
- Indicates the ``ITV0`` member of the union in struct
|
||||
:c:type:`v4l2_mpeg_vbi_fmt_ivtv` is
|
||||
valid and that 36 lines of sliced VBI data are present.
|
||||
|
||||
|
||||
|
||||
|
@ -684,50 +532,40 @@ structs v4l2_mpeg_vbi_itv0 and v4l2_mpeg_vbi_ITV0
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __le32
|
||||
|
||||
- ``linemask``\ [2]
|
||||
|
||||
- Bitmasks indicating the VBI service lines present. These
|
||||
``linemask`` values are stored in little endian byte order in the
|
||||
MPEG stream. Some reference ``linemask`` bit positions with their
|
||||
corresponding VBI line number and video field are given below.
|
||||
b\ :sub:`0` indicates the least significant bit of a ``linemask``
|
||||
value:
|
||||
* - __le32
|
||||
- ``linemask``\ [2]
|
||||
- Bitmasks indicating the VBI service lines present. These
|
||||
``linemask`` values are stored in little endian byte order in the
|
||||
MPEG stream. Some reference ``linemask`` bit positions with their
|
||||
corresponding VBI line number and video field are given below.
|
||||
b\ :sub:`0` indicates the least significant bit of a ``linemask``
|
||||
value:
|
||||
|
||||
|
||||
|
||||
::
|
||||
::
|
||||
|
||||
linemask[0] b0: line 6 first field
|
||||
linemask[0] b17: line 23 first field
|
||||
linemask[0] b18: line 6 second field
|
||||
linemask[0] b31: line 19 second field
|
||||
linemask[1] b0: line 20 second field
|
||||
linemask[1] b3: line 23 second field
|
||||
linemask[1] b4-b31: unused and set to 0
|
||||
|
||||
- .. row 2
|
||||
|
||||
- struct
|
||||
:c:type:`v4l2_mpeg_vbi_itv0_line`
|
||||
|
||||
- ``line``\ [35]
|
||||
|
||||
- This is a variable length array that holds from 1 to 35 lines of
|
||||
sliced VBI data. The sliced VBI data lines present correspond to
|
||||
the bits set in the ``linemask`` array, starting from b\ :sub:`0`
|
||||
of ``linemask``\ [0] up through b\ :sub:`31` of ``linemask``\ [0],
|
||||
and from b\ :sub:`0` of ``linemask``\ [1] up through b\ :sub:`3` of
|
||||
``linemask``\ [1]. ``line``\ [0] corresponds to the first bit
|
||||
found set in the ``linemask`` array, ``line``\ [1] corresponds to
|
||||
the second bit found set in the ``linemask`` array, etc. If no
|
||||
``linemask`` array bits are set, then ``line``\ [0] may contain
|
||||
one line of unspecified data that should be ignored by
|
||||
applications.
|
||||
linemask[0] b0: line 6 first field
|
||||
linemask[0] b17: line 23 first field
|
||||
linemask[0] b18: line 6 second field
|
||||
linemask[0] b31: line 19 second field
|
||||
linemask[1] b0: line 20 second field
|
||||
linemask[1] b3: line 23 second field
|
||||
linemask[1] b4-b31: unused and set to 0
|
||||
* - struct
|
||||
:c:type:`v4l2_mpeg_vbi_itv0_line`
|
||||
- ``line``\ [35]
|
||||
- This is a variable length array that holds from 1 to 35 lines of
|
||||
sliced VBI data. The sliced VBI data lines present correspond to
|
||||
the bits set in the ``linemask`` array, starting from b\ :sub:`0`
|
||||
of ``linemask``\ [0] up through b\ :sub:`31` of ``linemask``\ [0],
|
||||
and from b\ :sub:`0` of ``linemask``\ [1] up through b\ :sub:`3` of
|
||||
``linemask``\ [1]. ``line``\ [0] corresponds to the first bit
|
||||
found set in the ``linemask`` array, ``line``\ [1] corresponds to
|
||||
the second bit found set in the ``linemask`` array, etc. If no
|
||||
``linemask`` array bits are set, then ``line``\ [0] may contain
|
||||
one line of unspecified data that should be ignored by
|
||||
applications.
|
||||
|
||||
|
||||
|
||||
|
@ -743,18 +581,13 @@ struct v4l2_mpeg_vbi_ITV0
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- struct
|
||||
:c:type:`v4l2_mpeg_vbi_itv0_line`
|
||||
|
||||
- ``line``\ [36]
|
||||
|
||||
- A fixed length array of 36 lines of sliced VBI data. ``line``\ [0]
|
||||
through ``line``\ [17] correspond to lines 6 through 23 of the
|
||||
first field. ``line``\ [18] through ``line``\ [35] corresponds to
|
||||
lines 6 through 23 of the second field.
|
||||
* - struct
|
||||
:c:type:`v4l2_mpeg_vbi_itv0_line`
|
||||
- ``line``\ [36]
|
||||
- A fixed length array of 36 lines of sliced VBI data. ``line``\ [0]
|
||||
through ``line``\ [17] correspond to lines 6 through 23 of the
|
||||
first field. ``line``\ [18] through ``line``\ [35] corresponds to
|
||||
lines 6 through 23 of the second field.
|
||||
|
||||
|
||||
|
||||
|
@ -770,24 +603,14 @@ struct v4l2_mpeg_vbi_itv0_line
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u8
|
||||
|
||||
- ``id``
|
||||
|
||||
- A line identifier value from
|
||||
:ref:`ITV0-Line-Identifier-Constants` that indicates the type of
|
||||
sliced VBI data stored on this line.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u8
|
||||
|
||||
- ``data``\ [42]
|
||||
|
||||
- The sliced VBI data for the line.
|
||||
* - __u8
|
||||
- ``id``
|
||||
- A line identifier value from
|
||||
:ref:`ITV0-Line-Identifier-Constants` that indicates the type of
|
||||
sliced VBI data stored on this line.
|
||||
* - __u8
|
||||
- ``data``\ [42]
|
||||
- The sliced VBI data for the line.
|
||||
|
||||
|
||||
|
||||
|
@ -803,50 +626,25 @@ Line Identifiers for struct v4l2_mpeg_vbi_itv0_line id field
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Defined Symbol
|
||||
|
||||
- Value
|
||||
|
||||
- Description
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_MPEG_VBI_IVTV_TELETEXT_B``
|
||||
|
||||
- 1
|
||||
|
||||
- Refer to :ref:`Sliced VBI services <vbi-services2>` for a
|
||||
description of the line payload.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_MPEG_VBI_IVTV_CAPTION_525``
|
||||
|
||||
- 4
|
||||
|
||||
- Refer to :ref:`Sliced VBI services <vbi-services2>` for a
|
||||
description of the line payload.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_MPEG_VBI_IVTV_WSS_625``
|
||||
|
||||
- 5
|
||||
|
||||
- Refer to :ref:`Sliced VBI services <vbi-services2>` for a
|
||||
description of the line payload.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_MPEG_VBI_IVTV_VPS``
|
||||
|
||||
- 7
|
||||
|
||||
- Refer to :ref:`Sliced VBI services <vbi-services2>` for a
|
||||
description of the line payload.
|
||||
* - Defined Symbol
|
||||
- Value
|
||||
- Description
|
||||
* - ``V4L2_MPEG_VBI_IVTV_TELETEXT_B``
|
||||
- 1
|
||||
- Refer to :ref:`Sliced VBI services <vbi-services2>` for a
|
||||
description of the line payload.
|
||||
* - ``V4L2_MPEG_VBI_IVTV_CAPTION_525``
|
||||
- 4
|
||||
- Refer to :ref:`Sliced VBI services <vbi-services2>` for a
|
||||
description of the line payload.
|
||||
* - ``V4L2_MPEG_VBI_IVTV_WSS_625``
|
||||
- 5
|
||||
- Refer to :ref:`Sliced VBI services <vbi-services2>` for a
|
||||
description of the line payload.
|
||||
* - ``V4L2_MPEG_VBI_IVTV_VPS``
|
||||
- 7
|
||||
- Refer to :ref:`Sliced VBI services <vbi-services2>` for a
|
||||
description of the line payload.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -215,85 +215,41 @@ list entity names and pad numbers).
|
|||
:stub-columns: 0
|
||||
:widths: 5 5 5 5 5 5 5
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- Sensor/0 format
|
||||
|
||||
- Frontend/0 format
|
||||
|
||||
- Frontend/1 format
|
||||
|
||||
- Scaler/0 format
|
||||
|
||||
- Scaler/0 compose selection rectangle
|
||||
|
||||
- Scaler/1 format
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Initial state
|
||||
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
|
||||
- (default)
|
||||
|
||||
- (default)
|
||||
|
||||
- (default)
|
||||
|
||||
- (default)
|
||||
|
||||
- (default)
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Configure frontend sink format
|
||||
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
|
||||
- *2048x1536/SGRBG8_1X8*
|
||||
|
||||
- *2046x1534/SGRBG8_1X8*
|
||||
|
||||
- (default)
|
||||
|
||||
- (default)
|
||||
|
||||
- (default)
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Configure scaler sink format
|
||||
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
|
||||
- 2046x1534/SGRBG8_1X8
|
||||
|
||||
- *2046x1534/SGRBG8_1X8*
|
||||
|
||||
- *0,0/2046x1534*
|
||||
|
||||
- *2046x1534/SGRBG8_1X8*
|
||||
|
||||
- .. row 5
|
||||
|
||||
- Configure scaler sink compose selection
|
||||
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
|
||||
- 2046x1534/SGRBG8_1X8
|
||||
|
||||
- 2046x1534/SGRBG8_1X8
|
||||
|
||||
- *0,0/1280x960*
|
||||
|
||||
- *1280x960/SGRBG8_1X8*
|
||||
* -
|
||||
- Sensor/0 format
|
||||
- Frontend/0 format
|
||||
- Frontend/1 format
|
||||
- Scaler/0 format
|
||||
- Scaler/0 compose selection rectangle
|
||||
- Scaler/1 format
|
||||
* - Initial state
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
- (default)
|
||||
- (default)
|
||||
- (default)
|
||||
- (default)
|
||||
- (default)
|
||||
* - Configure frontend sink format
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
- *2048x1536/SGRBG8_1X8*
|
||||
- *2046x1534/SGRBG8_1X8*
|
||||
- (default)
|
||||
- (default)
|
||||
- (default)
|
||||
* - Configure scaler sink format
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
- 2046x1534/SGRBG8_1X8
|
||||
- *2046x1534/SGRBG8_1X8*
|
||||
- *0,0/2046x1534*
|
||||
- *2046x1534/SGRBG8_1X8*
|
||||
* - Configure scaler sink compose selection
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
- 2048x1536/SGRBG8_1X8
|
||||
- 2046x1534/SGRBG8_1X8
|
||||
- 2046x1534/SGRBG8_1X8
|
||||
- *0,0/1280x960*
|
||||
- *1280x960/SGRBG8_1X8*
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
|
|
@ -39,39 +39,19 @@ using driver module options. The major device number remains 81.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Device Type
|
||||
|
||||
- File Name
|
||||
|
||||
- Minor Numbers
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Video capture and overlay
|
||||
|
||||
- ``/dev/video`` and ``/dev/bttv0``\ [#f1]_, ``/dev/video0`` to
|
||||
``/dev/video63``
|
||||
|
||||
- 0-63
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Radio receiver
|
||||
|
||||
- ``/dev/radio``\ [#f2]_, ``/dev/radio0`` to ``/dev/radio63``
|
||||
|
||||
- 64-127
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Raw VBI capture
|
||||
|
||||
- ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31``
|
||||
|
||||
- 224-255
|
||||
* - Device Type
|
||||
- File Name
|
||||
- Minor Numbers
|
||||
* - Video capture and overlay
|
||||
- ``/dev/video`` and ``/dev/bttv0``\ [#f1]_, ``/dev/video0`` to
|
||||
``/dev/video63``
|
||||
- 0-63
|
||||
* - Radio receiver
|
||||
- ``/dev/radio``\ [#f2]_, ``/dev/radio0`` to ``/dev/radio63``
|
||||
- 64-127
|
||||
* - Raw VBI capture
|
||||
- ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31``
|
||||
- 224-255
|
||||
|
||||
|
||||
V4L prohibits (or used to prohibit) multiple opens of a device file.
|
||||
|
@ -103,148 +83,73 @@ introduction.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``struct video_capability`` ``type``
|
||||
|
||||
- struct :c:type:`v4l2_capability`
|
||||
``capabilities`` flags
|
||||
|
||||
- Purpose
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``VID_TYPE_CAPTURE``
|
||||
|
||||
- ``V4L2_CAP_VIDEO_CAPTURE``
|
||||
|
||||
- The :ref:`video capture <capture>` interface is supported.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``VID_TYPE_TUNER``
|
||||
|
||||
- ``V4L2_CAP_TUNER``
|
||||
|
||||
- The device has a :ref:`tuner or modulator <tuner>`.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``VID_TYPE_TELETEXT``
|
||||
|
||||
- ``V4L2_CAP_VBI_CAPTURE``
|
||||
|
||||
- The :ref:`raw VBI capture <raw-vbi>` interface is supported.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``VID_TYPE_OVERLAY``
|
||||
|
||||
- ``V4L2_CAP_VIDEO_OVERLAY``
|
||||
|
||||
- The :ref:`video overlay <overlay>` interface is supported.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``VID_TYPE_CHROMAKEY``
|
||||
|
||||
- ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct
|
||||
:c:type:`v4l2_framebuffer`
|
||||
|
||||
- Whether chromakey overlay is supported. For more information on
|
||||
overlay see :ref:`overlay`.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``VID_TYPE_CLIPPING``
|
||||
|
||||
- ``V4L2_FBUF_CAP_LIST_CLIPPING`` and
|
||||
``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of
|
||||
struct :c:type:`v4l2_framebuffer`
|
||||
|
||||
- Whether clipping the overlaid image is supported, see
|
||||
:ref:`overlay`.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``VID_TYPE_FRAMERAM``
|
||||
|
||||
- ``V4L2_FBUF_CAP_EXTERNOVERLAY`` *not set* in field ``capability``
|
||||
of struct :c:type:`v4l2_framebuffer`
|
||||
|
||||
- Whether overlay overwrites frame buffer memory, see
|
||||
:ref:`overlay`.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``VID_TYPE_SCALES``
|
||||
|
||||
- ``-``
|
||||
|
||||
- This flag indicates if the hardware can scale images. The V4L2 API
|
||||
implies the scale factor by setting the cropping dimensions and
|
||||
image size with the :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` and
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, respectively. The
|
||||
driver returns the closest sizes possible. For more information on
|
||||
cropping and scaling see :ref:`crop`.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- ``VID_TYPE_MONOCHROME``
|
||||
|
||||
- ``-``
|
||||
|
||||
- Applications can enumerate the supported image formats with the
|
||||
:ref:`VIDIOC_ENUM_FMT` ioctl to determine if
|
||||
the device supports grey scale capturing only. For more
|
||||
information on image formats see :ref:`pixfmt`.
|
||||
|
||||
- .. row 11
|
||||
|
||||
- ``VID_TYPE_SUBCAPTURE``
|
||||
|
||||
- ``-``
|
||||
|
||||
- Applications can call the :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>`
|
||||
ioctl to determine if the device supports capturing a subsection
|
||||
of the full picture ("cropping" in V4L2). If not, the ioctl
|
||||
returns the ``EINVAL`` error code. For more information on cropping
|
||||
and scaling see :ref:`crop`.
|
||||
|
||||
- .. row 12
|
||||
|
||||
- ``VID_TYPE_MPEG_DECODER``
|
||||
|
||||
- ``-``
|
||||
|
||||
- Applications can enumerate the supported image formats with the
|
||||
:ref:`VIDIOC_ENUM_FMT` ioctl to determine if
|
||||
the device supports MPEG streams.
|
||||
|
||||
- .. row 13
|
||||
|
||||
- ``VID_TYPE_MPEG_ENCODER``
|
||||
|
||||
- ``-``
|
||||
|
||||
- See above.
|
||||
|
||||
- .. row 14
|
||||
|
||||
- ``VID_TYPE_MJPEG_DECODER``
|
||||
|
||||
- ``-``
|
||||
|
||||
- See above.
|
||||
|
||||
- .. row 15
|
||||
|
||||
- ``VID_TYPE_MJPEG_ENCODER``
|
||||
|
||||
- ``-``
|
||||
|
||||
- See above.
|
||||
* - ``struct video_capability`` ``type``
|
||||
- struct :c:type:`v4l2_capability`
|
||||
``capabilities`` flags
|
||||
- Purpose
|
||||
* - ``VID_TYPE_CAPTURE``
|
||||
- ``V4L2_CAP_VIDEO_CAPTURE``
|
||||
- The :ref:`video capture <capture>` interface is supported.
|
||||
* - ``VID_TYPE_TUNER``
|
||||
- ``V4L2_CAP_TUNER``
|
||||
- The device has a :ref:`tuner or modulator <tuner>`.
|
||||
* - ``VID_TYPE_TELETEXT``
|
||||
- ``V4L2_CAP_VBI_CAPTURE``
|
||||
- The :ref:`raw VBI capture <raw-vbi>` interface is supported.
|
||||
* - ``VID_TYPE_OVERLAY``
|
||||
- ``V4L2_CAP_VIDEO_OVERLAY``
|
||||
- The :ref:`video overlay <overlay>` interface is supported.
|
||||
* - ``VID_TYPE_CHROMAKEY``
|
||||
- ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct
|
||||
:c:type:`v4l2_framebuffer`
|
||||
- Whether chromakey overlay is supported. For more information on
|
||||
overlay see :ref:`overlay`.
|
||||
* - ``VID_TYPE_CLIPPING``
|
||||
- ``V4L2_FBUF_CAP_LIST_CLIPPING`` and
|
||||
``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of
|
||||
struct :c:type:`v4l2_framebuffer`
|
||||
- Whether clipping the overlaid image is supported, see
|
||||
:ref:`overlay`.
|
||||
* - ``VID_TYPE_FRAMERAM``
|
||||
- ``V4L2_FBUF_CAP_EXTERNOVERLAY`` *not set* in field ``capability``
|
||||
of struct :c:type:`v4l2_framebuffer`
|
||||
- Whether overlay overwrites frame buffer memory, see
|
||||
:ref:`overlay`.
|
||||
* - ``VID_TYPE_SCALES``
|
||||
- ``-``
|
||||
- This flag indicates if the hardware can scale images. The V4L2 API
|
||||
implies the scale factor by setting the cropping dimensions and
|
||||
image size with the :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` and
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, respectively. The
|
||||
driver returns the closest sizes possible. For more information on
|
||||
cropping and scaling see :ref:`crop`.
|
||||
* - ``VID_TYPE_MONOCHROME``
|
||||
- ``-``
|
||||
- Applications can enumerate the supported image formats with the
|
||||
:ref:`VIDIOC_ENUM_FMT` ioctl to determine if
|
||||
the device supports grey scale capturing only. For more
|
||||
information on image formats see :ref:`pixfmt`.
|
||||
* - ``VID_TYPE_SUBCAPTURE``
|
||||
- ``-``
|
||||
- Applications can call the :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>`
|
||||
ioctl to determine if the device supports capturing a subsection
|
||||
of the full picture ("cropping" in V4L2). If not, the ioctl
|
||||
returns the ``EINVAL`` error code. For more information on cropping
|
||||
and scaling see :ref:`crop`.
|
||||
* - ``VID_TYPE_MPEG_DECODER``
|
||||
- ``-``
|
||||
- Applications can enumerate the supported image formats with the
|
||||
:ref:`VIDIOC_ENUM_FMT` ioctl to determine if
|
||||
the device supports MPEG streams.
|
||||
* - ``VID_TYPE_MPEG_ENCODER``
|
||||
- ``-``
|
||||
- See above.
|
||||
* - ``VID_TYPE_MJPEG_DECODER``
|
||||
- ``-``
|
||||
- See above.
|
||||
* - ``VID_TYPE_MJPEG_ENCODER``
|
||||
- ``-``
|
||||
- See above.
|
||||
|
||||
|
||||
The ``audios`` field was replaced by ``capabilities`` flag
|
||||
|
@ -280,24 +185,12 @@ video input types were renamed as follows:
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- struct ``video_channel`` ``type``
|
||||
|
||||
- struct :c:type:`v4l2_input` ``type``
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``VIDEO_TYPE_TV``
|
||||
|
||||
- ``V4L2_INPUT_TYPE_TUNER``
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``VIDEO_TYPE_CAMERA``
|
||||
|
||||
- ``V4L2_INPUT_TYPE_CAMERA``
|
||||
* - struct ``video_channel`` ``type``
|
||||
- struct :c:type:`v4l2_input` ``type``
|
||||
* - ``VIDEO_TYPE_TV``
|
||||
- ``V4L2_INPUT_TYPE_TUNER``
|
||||
* - ``VIDEO_TYPE_CAMERA``
|
||||
- ``V4L2_INPUT_TYPE_CAMERA``
|
||||
|
||||
|
||||
Unlike the ``tuners`` field expressing the number of tuners of this
|
||||
|
@ -386,42 +279,18 @@ replaced by V4L2 controls accessible with the
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- struct ``video_picture``
|
||||
|
||||
- V4L2 Control ID
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``brightness``
|
||||
|
||||
- ``V4L2_CID_BRIGHTNESS``
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``hue``
|
||||
|
||||
- ``V4L2_CID_HUE``
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``colour``
|
||||
|
||||
- ``V4L2_CID_SATURATION``
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``contrast``
|
||||
|
||||
- ``V4L2_CID_CONTRAST``
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``whiteness``
|
||||
|
||||
- ``V4L2_CID_WHITENESS``
|
||||
* - struct ``video_picture``
|
||||
- V4L2 Control ID
|
||||
* - ``brightness``
|
||||
- ``V4L2_CID_BRIGHTNESS``
|
||||
* - ``hue``
|
||||
- ``V4L2_CID_HUE``
|
||||
* - ``colour``
|
||||
- ``V4L2_CID_SATURATION``
|
||||
* - ``contrast``
|
||||
- ``V4L2_CID_CONTRAST``
|
||||
* - ``whiteness``
|
||||
- ``V4L2_CID_WHITENESS``
|
||||
|
||||
|
||||
The V4L picture controls are assumed to range from 0 to 65535 with no
|
||||
|
@ -442,108 +311,40 @@ into the struct :c:type:`v4l2_pix_format`:
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- struct ``video_picture`` ``palette``
|
||||
|
||||
- struct :c:type:`v4l2_pix_format` ``pixfmt``
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``VIDEO_PALETTE_GREY``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_GREY <V4L2-PIX-FMT-GREY>`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``VIDEO_PALETTE_HI240``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_HI240 <pixfmt-reserved>` [#f3]_
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``VIDEO_PALETTE_RGB565``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_RGB565 <pixfmt-rgb>`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``VIDEO_PALETTE_RGB555``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_RGB555 <pixfmt-rgb>`
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``VIDEO_PALETTE_RGB24``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_BGR24 <pixfmt-rgb>`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``VIDEO_PALETTE_RGB32``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_BGR32 <pixfmt-rgb>` [#f4]_
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``VIDEO_PALETTE_YUV422``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``VIDEO_PALETTE_YUYV``\ [#f5]_
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
|
||||
|
||||
- .. row 10
|
||||
|
||||
- ``VIDEO_PALETTE_UYVY``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_UYVY <V4L2-PIX-FMT-UYVY>`
|
||||
|
||||
- .. row 11
|
||||
|
||||
- ``VIDEO_PALETTE_YUV420``
|
||||
|
||||
- None
|
||||
|
||||
- .. row 12
|
||||
|
||||
- ``VIDEO_PALETTE_YUV411``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_Y41P <V4L2-PIX-FMT-Y41P>` [#f6]_
|
||||
|
||||
- .. row 13
|
||||
|
||||
- ``VIDEO_PALETTE_RAW``
|
||||
|
||||
- None [#f7]_
|
||||
|
||||
- .. row 14
|
||||
|
||||
- ``VIDEO_PALETTE_YUV422P``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_YUV422P <V4L2-PIX-FMT-YUV422P>`
|
||||
|
||||
- .. row 15
|
||||
|
||||
- ``VIDEO_PALETTE_YUV411P``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>` [#f8]_
|
||||
|
||||
- .. row 16
|
||||
|
||||
- ``VIDEO_PALETTE_YUV420P``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_YVU420 <V4L2-PIX-FMT-YVU420>`
|
||||
|
||||
- .. row 17
|
||||
|
||||
- ``VIDEO_PALETTE_YUV410P``
|
||||
|
||||
- :ref:`V4L2_PIX_FMT_YVU410 <V4L2-PIX-FMT-YVU410>`
|
||||
* - struct ``video_picture`` ``palette``
|
||||
- struct :c:type:`v4l2_pix_format` ``pixfmt``
|
||||
* - ``VIDEO_PALETTE_GREY``
|
||||
- :ref:`V4L2_PIX_FMT_GREY <V4L2-PIX-FMT-GREY>`
|
||||
* - ``VIDEO_PALETTE_HI240``
|
||||
- :ref:`V4L2_PIX_FMT_HI240 <pixfmt-reserved>` [#f3]_
|
||||
* - ``VIDEO_PALETTE_RGB565``
|
||||
- :ref:`V4L2_PIX_FMT_RGB565 <pixfmt-rgb>`
|
||||
* - ``VIDEO_PALETTE_RGB555``
|
||||
- :ref:`V4L2_PIX_FMT_RGB555 <pixfmt-rgb>`
|
||||
* - ``VIDEO_PALETTE_RGB24``
|
||||
- :ref:`V4L2_PIX_FMT_BGR24 <pixfmt-rgb>`
|
||||
* - ``VIDEO_PALETTE_RGB32``
|
||||
- :ref:`V4L2_PIX_FMT_BGR32 <pixfmt-rgb>` [#f4]_
|
||||
* - ``VIDEO_PALETTE_YUV422``
|
||||
- :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
|
||||
* - ``VIDEO_PALETTE_YUYV``\ [#f5]_
|
||||
- :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
|
||||
* - ``VIDEO_PALETTE_UYVY``
|
||||
- :ref:`V4L2_PIX_FMT_UYVY <V4L2-PIX-FMT-UYVY>`
|
||||
* - ``VIDEO_PALETTE_YUV420``
|
||||
- None
|
||||
* - ``VIDEO_PALETTE_YUV411``
|
||||
- :ref:`V4L2_PIX_FMT_Y41P <V4L2-PIX-FMT-Y41P>` [#f6]_
|
||||
* - ``VIDEO_PALETTE_RAW``
|
||||
- None [#f7]_
|
||||
* - ``VIDEO_PALETTE_YUV422P``
|
||||
- :ref:`V4L2_PIX_FMT_YUV422P <V4L2-PIX-FMT-YUV422P>`
|
||||
* - ``VIDEO_PALETTE_YUV411P``
|
||||
- :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>` [#f8]_
|
||||
* - ``VIDEO_PALETTE_YUV420P``
|
||||
- :ref:`V4L2_PIX_FMT_YVU420 <V4L2-PIX-FMT-YVU420>`
|
||||
* - ``VIDEO_PALETTE_YUV410P``
|
||||
- :ref:`V4L2_PIX_FMT_YVU410 <V4L2-PIX-FMT-YVU410>`
|
||||
|
||||
|
||||
V4L2 image formats are defined in :ref:`pixfmt`. The image format can
|
||||
|
@ -588,36 +389,16 @@ The following fields where replaced by V4L2 controls accessible with the
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- struct ``video_audio``
|
||||
|
||||
- V4L2 Control ID
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``volume``
|
||||
|
||||
- ``V4L2_CID_AUDIO_VOLUME``
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``bass``
|
||||
|
||||
- ``V4L2_CID_AUDIO_BASS``
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``treble``
|
||||
|
||||
- ``V4L2_CID_AUDIO_TREBLE``
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``balance``
|
||||
|
||||
- ``V4L2_CID_AUDIO_BALANCE``
|
||||
* - struct ``video_audio``
|
||||
- V4L2 Control ID
|
||||
* - ``volume``
|
||||
- ``V4L2_CID_AUDIO_VOLUME``
|
||||
* - ``bass``
|
||||
- ``V4L2_CID_AUDIO_BASS``
|
||||
* - ``treble``
|
||||
- ``V4L2_CID_AUDIO_TREBLE``
|
||||
* - ``balance``
|
||||
- ``V4L2_CID_AUDIO_BALANCE``
|
||||
|
||||
|
||||
To determine which of these controls are supported by a driver V4L
|
||||
|
@ -752,68 +533,49 @@ differences.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
* - V4L
|
||||
- V4L2
|
||||
* -
|
||||
- The image format must be selected before buffers are allocated,
|
||||
with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. When no
|
||||
format is selected the driver may use the last, possibly by
|
||||
another application requested format.
|
||||
* - Applications cannot change the number of buffers. The it is built
|
||||
into the driver, unless it has a module option to change the
|
||||
number when the driver module is loaded.
|
||||
- The :ref:`VIDIOC_REQBUFS` ioctl allocates the
|
||||
desired number of buffers, this is a required step in the
|
||||
initialization sequence.
|
||||
* - Drivers map all buffers as one contiguous range of memory. The
|
||||
``VIDIOCGMBUF`` ioctl is available to query the number of buffers,
|
||||
the offset of each buffer from the start of the virtual file, and
|
||||
the overall amount of memory used, which can be used as arguments
|
||||
for the :ref:`mmap() <func-mmap>` function.
|
||||
- Buffers are individually mapped. The offset and size of each
|
||||
buffer can be determined with the
|
||||
:ref:`VIDIOC_QUERYBUF` ioctl.
|
||||
* - The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It
|
||||
also determines the image format for this buffer. The ioctl
|
||||
returns immediately, eventually with an ``EAGAIN`` error code if no
|
||||
video signal had been detected. When the driver supports more than
|
||||
one buffer applications can call the ioctl multiple times and thus
|
||||
have multiple outstanding capture requests.
|
||||
|
||||
- .. row 1
|
||||
|
||||
- V4L
|
||||
|
||||
- V4L2
|
||||
|
||||
- .. row 2
|
||||
|
||||
-
|
||||
- The image format must be selected before buffers are allocated,
|
||||
with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. When no
|
||||
format is selected the driver may use the last, possibly by
|
||||
another application requested format.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Applications cannot change the number of buffers. The it is built
|
||||
into the driver, unless it has a module option to change the
|
||||
number when the driver module is loaded.
|
||||
|
||||
- The :ref:`VIDIOC_REQBUFS` ioctl allocates the
|
||||
desired number of buffers, this is a required step in the
|
||||
initialization sequence.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Drivers map all buffers as one contiguous range of memory. The
|
||||
``VIDIOCGMBUF`` ioctl is available to query the number of buffers,
|
||||
the offset of each buffer from the start of the virtual file, and
|
||||
the overall amount of memory used, which can be used as arguments
|
||||
for the :ref:`mmap() <func-mmap>` function.
|
||||
|
||||
- Buffers are individually mapped. The offset and size of each
|
||||
buffer can be determined with the
|
||||
:ref:`VIDIOC_QUERYBUF` ioctl.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It
|
||||
also determines the image format for this buffer. The ioctl
|
||||
returns immediately, eventually with an ``EAGAIN`` error code if no
|
||||
video signal had been detected. When the driver supports more than
|
||||
one buffer applications can call the ioctl multiple times and thus
|
||||
have multiple outstanding capture requests.
|
||||
|
||||
The ``VIDIOCSYNC`` ioctl suspends execution until a particular
|
||||
buffer has been filled.
|
||||
|
||||
- Drivers maintain an incoming and outgoing queue.
|
||||
:ref:`VIDIOC_QBUF` enqueues any empty buffer into
|
||||
the incoming queue. Filled buffers are dequeued from the outgoing
|
||||
queue with the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. To wait
|
||||
until filled buffers become available this function,
|
||||
:ref:`select() <func-select>` or :ref:`poll() <func-poll>` can
|
||||
be used. The :ref:`VIDIOC_STREAMON` ioctl
|
||||
must be called once after enqueuing one or more buffers to start
|
||||
capturing. Its counterpart
|
||||
:ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` stops capturing and
|
||||
dequeues all buffers from both queues. Applications can query the
|
||||
signal status, if known, with the
|
||||
:ref:`VIDIOC_ENUMINPUT` ioctl.
|
||||
The ``VIDIOCSYNC`` ioctl suspends execution until a particular
|
||||
buffer has been filled.
|
||||
- Drivers maintain an incoming and outgoing queue.
|
||||
:ref:`VIDIOC_QBUF` enqueues any empty buffer into
|
||||
the incoming queue. Filled buffers are dequeued from the outgoing
|
||||
queue with the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. To wait
|
||||
until filled buffers become available this function,
|
||||
:ref:`select() <func-select>` or :ref:`poll() <func-poll>` can
|
||||
be used. The :ref:`VIDIOC_STREAMON` ioctl
|
||||
must be called once after enqueuing one or more buffers to start
|
||||
capturing. Its counterpart
|
||||
:ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` stops capturing and
|
||||
dequeues all buffers from both queues. Applications can query the
|
||||
signal status, if known, with the
|
||||
:ref:`VIDIOC_ENUMINPUT` ioctl.
|
||||
|
||||
|
||||
For a more in-depth discussion of memory mapping and examples, see
|
||||
|
@ -835,56 +597,24 @@ with the following parameters:
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- struct :c:type:`v4l2_vbi_format`
|
||||
|
||||
- V4L, BTTV driver
|
||||
|
||||
- .. row 2
|
||||
|
||||
- sampling_rate
|
||||
|
||||
- 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL
|
||||
and SECAM (625-line standards)
|
||||
|
||||
- .. row 3
|
||||
|
||||
- offset
|
||||
|
||||
- ?
|
||||
|
||||
- .. row 4
|
||||
|
||||
- samples_per_line
|
||||
|
||||
- 2048
|
||||
|
||||
- .. row 5
|
||||
|
||||
- sample_format
|
||||
|
||||
- V4L2_PIX_FMT_GREY. The last four bytes (a machine endianness
|
||||
integer) contain a frame counter.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start[]
|
||||
|
||||
- 10, 273 NTSC; 22, 335 PAL and SECAM
|
||||
|
||||
- .. row 7
|
||||
|
||||
- count[]
|
||||
|
||||
- 16, 16 [#f9]_
|
||||
|
||||
- .. row 8
|
||||
|
||||
- flags
|
||||
|
||||
- 0
|
||||
* - struct :c:type:`v4l2_vbi_format`
|
||||
- V4L, BTTV driver
|
||||
* - sampling_rate
|
||||
- 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL
|
||||
and SECAM (625-line standards)
|
||||
* - offset
|
||||
- ?
|
||||
* - samples_per_line
|
||||
- 2048
|
||||
* - sample_format
|
||||
- V4L2_PIX_FMT_GREY. The last four bytes (a machine endianness
|
||||
integer) contain a frame counter.
|
||||
* - start[]
|
||||
- 10, 273 NTSC; 22, 335 PAL and SECAM
|
||||
* - count[]
|
||||
- 16, 16 [#f9]_
|
||||
* - flags
|
||||
- 0
|
||||
|
||||
|
||||
Undocumented in the V4L specification, in Linux 2.3 the
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -64,125 +64,75 @@ enum v4l2_field
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_FIELD_ANY``
|
||||
|
||||
- 0
|
||||
|
||||
- Applications request this field order when any one of the
|
||||
``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or
|
||||
``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose
|
||||
depending on hardware capabilities or e. g. the requested image
|
||||
size, and return the actual field order. Drivers must never return
|
||||
``V4L2_FIELD_ANY``. If multiple field orders are possible the
|
||||
driver must choose one of the possible field orders during
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
|
||||
:ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`. struct
|
||||
:c:type:`v4l2_buffer` ``field`` can never be
|
||||
``V4L2_FIELD_ANY``.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_FIELD_NONE``
|
||||
|
||||
- 1
|
||||
|
||||
- Images are in progressive format, not interlaced. The driver may
|
||||
also indicate this order when it cannot distinguish between
|
||||
``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_FIELD_TOP``
|
||||
|
||||
- 2
|
||||
|
||||
- Images consist of the top (aka odd) field only.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_FIELD_BOTTOM``
|
||||
|
||||
- 3
|
||||
|
||||
- Images consist of the bottom (aka even) field only. Applications
|
||||
may wish to prevent a device from capturing interlaced images
|
||||
because they will have "comb" or "feathering" artefacts around
|
||||
moving objects.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_FIELD_INTERLACED``
|
||||
|
||||
- 4
|
||||
|
||||
- Images contain both fields, interleaved line by line. The temporal
|
||||
order of the fields (whether the top or bottom field is first
|
||||
transmitted) depends on the current video standard. M/NTSC
|
||||
transmits the bottom field first, all other standards the top
|
||||
field first.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_FIELD_SEQ_TB``
|
||||
|
||||
- 5
|
||||
|
||||
- Images contain both fields, the top field lines are stored first
|
||||
in memory, immediately followed by the bottom field lines. Fields
|
||||
are always stored in temporal order, the older one first in
|
||||
memory. Image sizes refer to the frame, not fields.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_FIELD_SEQ_BT``
|
||||
|
||||
- 6
|
||||
|
||||
- Images contain both fields, the bottom field lines are stored
|
||||
first in memory, immediately followed by the top field lines.
|
||||
Fields are always stored in temporal order, the older one first in
|
||||
memory. Image sizes refer to the frame, not fields.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_FIELD_ALTERNATE``
|
||||
|
||||
- 7
|
||||
|
||||
- The two fields of a frame are passed in separate buffers, in
|
||||
temporal order, i. e. the older one first. To indicate the field
|
||||
parity (whether the current field is a top or bottom field) the
|
||||
driver or application, depending on data direction, must set
|
||||
struct :c:type:`v4l2_buffer` ``field`` to
|
||||
``V4L2_FIELD_TOP`` or ``V4L2_FIELD_BOTTOM``. Any two successive
|
||||
fields pair to build a frame. If fields are successive, without
|
||||
any dropped fields between them (fields can drop individually),
|
||||
can be determined from the struct
|
||||
:c:type:`v4l2_buffer` ``sequence`` field. This
|
||||
format cannot be selected when using the read/write I/O method
|
||||
since there is no way to communicate if a field was a top or
|
||||
bottom field.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``V4L2_FIELD_INTERLACED_TB``
|
||||
|
||||
- 8
|
||||
|
||||
- Images contain both fields, interleaved line by line, top field
|
||||
first. The top field is transmitted first.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- ``V4L2_FIELD_INTERLACED_BT``
|
||||
|
||||
- 9
|
||||
|
||||
- Images contain both fields, interleaved line by line, top field
|
||||
first. The bottom field is transmitted first.
|
||||
* - ``V4L2_FIELD_ANY``
|
||||
- 0
|
||||
- Applications request this field order when any one of the
|
||||
``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or
|
||||
``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose
|
||||
depending on hardware capabilities or e. g. the requested image
|
||||
size, and return the actual field order. Drivers must never return
|
||||
``V4L2_FIELD_ANY``. If multiple field orders are possible the
|
||||
driver must choose one of the possible field orders during
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
|
||||
:ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`. struct
|
||||
:c:type:`v4l2_buffer` ``field`` can never be
|
||||
``V4L2_FIELD_ANY``.
|
||||
* - ``V4L2_FIELD_NONE``
|
||||
- 1
|
||||
- Images are in progressive format, not interlaced. The driver may
|
||||
also indicate this order when it cannot distinguish between
|
||||
``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``.
|
||||
* - ``V4L2_FIELD_TOP``
|
||||
- 2
|
||||
- Images consist of the top (aka odd) field only.
|
||||
* - ``V4L2_FIELD_BOTTOM``
|
||||
- 3
|
||||
- Images consist of the bottom (aka even) field only. Applications
|
||||
may wish to prevent a device from capturing interlaced images
|
||||
because they will have "comb" or "feathering" artefacts around
|
||||
moving objects.
|
||||
* - ``V4L2_FIELD_INTERLACED``
|
||||
- 4
|
||||
- Images contain both fields, interleaved line by line. The temporal
|
||||
order of the fields (whether the top or bottom field is first
|
||||
transmitted) depends on the current video standard. M/NTSC
|
||||
transmits the bottom field first, all other standards the top
|
||||
field first.
|
||||
* - ``V4L2_FIELD_SEQ_TB``
|
||||
- 5
|
||||
- Images contain both fields, the top field lines are stored first
|
||||
in memory, immediately followed by the bottom field lines. Fields
|
||||
are always stored in temporal order, the older one first in
|
||||
memory. Image sizes refer to the frame, not fields.
|
||||
* - ``V4L2_FIELD_SEQ_BT``
|
||||
- 6
|
||||
- Images contain both fields, the bottom field lines are stored
|
||||
first in memory, immediately followed by the top field lines.
|
||||
Fields are always stored in temporal order, the older one first in
|
||||
memory. Image sizes refer to the frame, not fields.
|
||||
* - ``V4L2_FIELD_ALTERNATE``
|
||||
- 7
|
||||
- The two fields of a frame are passed in separate buffers, in
|
||||
temporal order, i. e. the older one first. To indicate the field
|
||||
parity (whether the current field is a top or bottom field) the
|
||||
driver or application, depending on data direction, must set
|
||||
struct :c:type:`v4l2_buffer` ``field`` to
|
||||
``V4L2_FIELD_TOP`` or ``V4L2_FIELD_BOTTOM``. Any two successive
|
||||
fields pair to build a frame. If fields are successive, without
|
||||
any dropped fields between them (fields can drop individually),
|
||||
can be determined from the struct
|
||||
:c:type:`v4l2_buffer` ``sequence`` field. This
|
||||
format cannot be selected when using the read/write I/O method
|
||||
since there is no way to communicate if a field was a top or
|
||||
bottom field.
|
||||
* - ``V4L2_FIELD_INTERLACED_TB``
|
||||
- 8
|
||||
- Images contain both fields, interleaved line by line, top field
|
||||
first. The top field is transmitted first.
|
||||
* - ``V4L2_FIELD_INTERLACED_BT``
|
||||
- 9
|
||||
- Images contain both fields, interleaved line by line, top field
|
||||
first. The bottom field is transmitted first.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -447,90 +447,34 @@ This unnamed version was finally merged into Linux 2.5.46.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Old defines
|
||||
|
||||
- enum :c:type:`v4l2_buf_type`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_BUF_TYPE_CAPTURE``
|
||||
|
||||
- ``V4L2_BUF_TYPE_VIDEO_CAPTURE``
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_BUF_TYPE_CODECIN``
|
||||
|
||||
- Omitted for now
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_BUF_TYPE_CODECOUT``
|
||||
|
||||
- Omitted for now
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_BUF_TYPE_EFFECTSIN``
|
||||
|
||||
- Omitted for now
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_BUF_TYPE_EFFECTSIN2``
|
||||
|
||||
- Omitted for now
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_BUF_TYPE_EFFECTSOUT``
|
||||
|
||||
- Omitted for now
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_BUF_TYPE_VIDEOOUT``
|
||||
|
||||
- ``V4L2_BUF_TYPE_VIDEO_OUTPUT``
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``-``
|
||||
|
||||
- ``V4L2_BUF_TYPE_VIDEO_OVERLAY``
|
||||
|
||||
- .. row 10
|
||||
|
||||
- ``-``
|
||||
|
||||
- ``V4L2_BUF_TYPE_VBI_CAPTURE``
|
||||
|
||||
- .. row 11
|
||||
|
||||
- ``-``
|
||||
|
||||
- ``V4L2_BUF_TYPE_VBI_OUTPUT``
|
||||
|
||||
- .. row 12
|
||||
|
||||
- ``-``
|
||||
|
||||
- ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE``
|
||||
|
||||
- .. row 13
|
||||
|
||||
- ``-``
|
||||
|
||||
- ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``
|
||||
|
||||
- .. row 14
|
||||
|
||||
- ``V4L2_BUF_TYPE_PRIVATE_BASE``
|
||||
|
||||
- ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated)
|
||||
* - Old defines
|
||||
- enum :c:type:`v4l2_buf_type`
|
||||
* - ``V4L2_BUF_TYPE_CAPTURE``
|
||||
- ``V4L2_BUF_TYPE_VIDEO_CAPTURE``
|
||||
* - ``V4L2_BUF_TYPE_CODECIN``
|
||||
- Omitted for now
|
||||
* - ``V4L2_BUF_TYPE_CODECOUT``
|
||||
- Omitted for now
|
||||
* - ``V4L2_BUF_TYPE_EFFECTSIN``
|
||||
- Omitted for now
|
||||
* - ``V4L2_BUF_TYPE_EFFECTSIN2``
|
||||
- Omitted for now
|
||||
* - ``V4L2_BUF_TYPE_EFFECTSOUT``
|
||||
- Omitted for now
|
||||
* - ``V4L2_BUF_TYPE_VIDEOOUT``
|
||||
- ``V4L2_BUF_TYPE_VIDEO_OUTPUT``
|
||||
* - ``-``
|
||||
- ``V4L2_BUF_TYPE_VIDEO_OVERLAY``
|
||||
* - ``-``
|
||||
- ``V4L2_BUF_TYPE_VBI_CAPTURE``
|
||||
* - ``-``
|
||||
- ``V4L2_BUF_TYPE_VBI_OUTPUT``
|
||||
* - ``-``
|
||||
- ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE``
|
||||
* - ``-``
|
||||
- ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``
|
||||
* - ``V4L2_BUF_TYPE_PRIVATE_BASE``
|
||||
- ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated)
|
||||
|
||||
|
||||
10. In struct :c:type:`v4l2_fmtdesc` a enum
|
||||
|
@ -564,54 +508,22 @@ This unnamed version was finally merged into Linux 2.5.46.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Old flag
|
||||
|
||||
- enum :c:type:`v4l2_field`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_FMT_FLAG_NOT_INTERLACED``
|
||||
|
||||
- ?
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED``
|
||||
|
||||
- ``V4L2_FIELD_INTERLACED``
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD``
|
||||
|
||||
- ``V4L2_FIELD_TOP``
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD``
|
||||
|
||||
- ``V4L2_FIELD_BOTTOM``
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``-``
|
||||
|
||||
- ``V4L2_FIELD_SEQ_TB``
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``-``
|
||||
|
||||
- ``V4L2_FIELD_SEQ_BT``
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``-``
|
||||
|
||||
- ``V4L2_FIELD_ALTERNATE``
|
||||
* - Old flag
|
||||
- enum :c:type:`v4l2_field`
|
||||
* - ``V4L2_FMT_FLAG_NOT_INTERLACED``
|
||||
- ?
|
||||
* - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED``
|
||||
- ``V4L2_FIELD_INTERLACED``
|
||||
* - ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD``
|
||||
- ``V4L2_FIELD_TOP``
|
||||
* - ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD``
|
||||
- ``V4L2_FIELD_BOTTOM``
|
||||
* - ``-``
|
||||
- ``V4L2_FIELD_SEQ_TB``
|
||||
* - ``-``
|
||||
- ``V4L2_FIELD_SEQ_BT``
|
||||
* - ``-``
|
||||
- ``V4L2_FIELD_ALTERNATE``
|
||||
|
||||
|
||||
The color space flags were replaced by a enum
|
||||
|
@ -768,46 +680,21 @@ V4L2 2003-11-05
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Symbol
|
||||
|
||||
- In this document prior to revision 0.5
|
||||
|
||||
- Corrected
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_PIX_FMT_RGB24``
|
||||
|
||||
- B, G, R
|
||||
|
||||
- R, G, B
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_PIX_FMT_BGR24``
|
||||
|
||||
- R, G, B
|
||||
|
||||
- B, G, R
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_PIX_FMT_RGB32``
|
||||
|
||||
- B, G, R, X
|
||||
|
||||
- R, G, B, X
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_PIX_FMT_BGR32``
|
||||
|
||||
- R, G, B, X
|
||||
|
||||
- B, G, R, X
|
||||
* - Symbol
|
||||
- In this document prior to revision 0.5
|
||||
- Corrected
|
||||
* - ``V4L2_PIX_FMT_RGB24``
|
||||
- B, G, R
|
||||
- R, G, B
|
||||
* - ``V4L2_PIX_FMT_BGR24``
|
||||
- R, G, B
|
||||
- B, G, R
|
||||
* - ``V4L2_PIX_FMT_RGB32``
|
||||
- B, G, R, X
|
||||
- R, G, B, X
|
||||
* - ``V4L2_PIX_FMT_BGR32``
|
||||
- R, G, B, X
|
||||
- B, G, R, X
|
||||
|
||||
|
||||
The ``V4L2_PIX_FMT_BGR24`` example was always correct.
|
||||
|
|
|
@ -15,185 +15,119 @@ Single-planar format structure
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
* - __u32
|
||||
- ``width``
|
||||
- Image width in pixels.
|
||||
* - __u32
|
||||
- ``height``
|
||||
- Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``,
|
||||
``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height
|
||||
refers to the number of lines in the field, otherwise it refers to
|
||||
the number of lines in the frame (which is twice the field height
|
||||
for interlaced formats).
|
||||
* - :cspan:`2` Applications set these fields to request an image
|
||||
size, drivers return the closest possible values. In case of
|
||||
planar formats the ``width`` and ``height`` applies to the largest
|
||||
plane. To avoid ambiguities drivers must return values rounded up
|
||||
to a multiple of the scale factor of any smaller planes. For
|
||||
example when the image format is YUV 4:2:0, ``width`` and
|
||||
``height`` must be multiples of two.
|
||||
* - __u32
|
||||
- ``pixelformat``
|
||||
- The pixel format or type of compression, set by the application.
|
||||
This is a little endian
|
||||
:ref:`four character code <v4l2-fourcc>`. V4L2 defines standard
|
||||
RGB formats in :ref:`rgb-formats`, YUV formats in
|
||||
:ref:`yuv-formats`, and reserved codes in
|
||||
:ref:`reserved-formats`
|
||||
* - enum :c:type::`v4l2_field`
|
||||
- ``field``
|
||||
- Video images are typically interlaced. Applications can request to
|
||||
capture or output only the top or bottom field, or both fields
|
||||
interlaced or sequentially stored in one buffer or alternating in
|
||||
separate buffers. Drivers return the actual field order selected.
|
||||
For more details on fields see :ref:`field-order`.
|
||||
* - __u32
|
||||
- ``bytesperline``
|
||||
- Distance in bytes between the leftmost pixels in two adjacent
|
||||
lines.
|
||||
* - :cspan:`2`
|
||||
|
||||
- .. row 1
|
||||
Both applications and drivers can set this field to request
|
||||
padding bytes at the end of each line. Drivers however may ignore
|
||||
the value requested by the application, returning ``width`` times
|
||||
bytes per pixel or a larger value required by the hardware. That
|
||||
implies applications can just set this field to zero to get a
|
||||
reasonable default.
|
||||
|
||||
- __u32
|
||||
Video hardware may access padding bytes, therefore they must
|
||||
reside in accessible memory. Consider cases where padding bytes
|
||||
after the last line of an image cross a system page boundary.
|
||||
Input devices may write padding bytes, the value is undefined.
|
||||
Output devices ignore the contents of padding bytes.
|
||||
|
||||
- ``width``
|
||||
When the image format is planar the ``bytesperline`` value applies
|
||||
to the first plane and is divided by the same factor as the
|
||||
``width`` field for the other planes. For example the Cb and Cr
|
||||
planes of a YUV 4:2:0 image have half as many padding bytes
|
||||
following each line as the Y plane. To avoid ambiguities drivers
|
||||
must return a ``bytesperline`` value rounded up to a multiple of
|
||||
the scale factor.
|
||||
|
||||
- Image width in pixels.
|
||||
For compressed formats the ``bytesperline`` value makes no sense.
|
||||
Applications and drivers must set this to 0 in that case.
|
||||
* - __u32
|
||||
- ``sizeimage``
|
||||
- Size in bytes of the buffer to hold a complete image, set by the
|
||||
driver. Usually this is ``bytesperline`` times ``height``. When
|
||||
the image consists of variable length compressed data this is the
|
||||
maximum number of bytes required to hold an image.
|
||||
* - enum :c:type:`v4l2_colorspace`
|
||||
- ``colorspace``
|
||||
- This information supplements the ``pixelformat`` and must be set
|
||||
by the driver for capture streams and by the application for
|
||||
output streams, see :ref:`colorspaces`.
|
||||
* - __u32
|
||||
- ``priv``
|
||||
- This field indicates whether the remaining fields of the
|
||||
struct :c:type:`v4l2_pix_format`, also called the
|
||||
extended fields, are valid. When set to
|
||||
``V4L2_PIX_FMT_PRIV_MAGIC``, it indicates that the extended fields
|
||||
have been correctly initialized. When set to any other value it
|
||||
indicates that the extended fields contain undefined values.
|
||||
|
||||
- .. row 2
|
||||
Applications that wish to use the pixel format extended fields
|
||||
must first ensure that the feature is supported by querying the
|
||||
device for the :ref:`V4L2_CAP_EXT_PIX_FORMAT <querycap>`
|
||||
capability. If the capability isn't set the pixel format extended
|
||||
fields are not supported and using the extended fields will lead
|
||||
to undefined results.
|
||||
|
||||
- __u32
|
||||
To use the extended fields, applications must set the ``priv``
|
||||
field to ``V4L2_PIX_FMT_PRIV_MAGIC``, initialize all the extended
|
||||
fields and zero the unused bytes of the
|
||||
struct :c:type:`v4l2_format` ``raw_data`` field.
|
||||
|
||||
- ``height``
|
||||
|
||||
- Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``,
|
||||
``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height
|
||||
refers to the number of lines in the field, otherwise it refers to
|
||||
the number of lines in the frame (which is twice the field height
|
||||
for interlaced formats).
|
||||
|
||||
- .. row 3
|
||||
|
||||
- :cspan:`2` Applications set these fields to request an image
|
||||
size, drivers return the closest possible values. In case of
|
||||
planar formats the ``width`` and ``height`` applies to the largest
|
||||
plane. To avoid ambiguities drivers must return values rounded up
|
||||
to a multiple of the scale factor of any smaller planes. For
|
||||
example when the image format is YUV 4:2:0, ``width`` and
|
||||
``height`` must be multiples of two.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pixelformat``
|
||||
|
||||
- The pixel format or type of compression, set by the application.
|
||||
This is a little endian
|
||||
:ref:`four character code <v4l2-fourcc>`. V4L2 defines standard
|
||||
RGB formats in :ref:`rgb-formats`, YUV formats in
|
||||
:ref:`yuv-formats`, and reserved codes in
|
||||
:ref:`reserved-formats`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- enum :c:type::`v4l2_field`
|
||||
|
||||
- ``field``
|
||||
|
||||
- Video images are typically interlaced. Applications can request to
|
||||
capture or output only the top or bottom field, or both fields
|
||||
interlaced or sequentially stored in one buffer or alternating in
|
||||
separate buffers. Drivers return the actual field order selected.
|
||||
For more details on fields see :ref:`field-order`.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``bytesperline``
|
||||
|
||||
- Distance in bytes between the leftmost pixels in two adjacent
|
||||
lines.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- :cspan:`2`
|
||||
|
||||
Both applications and drivers can set this field to request
|
||||
padding bytes at the end of each line. Drivers however may ignore
|
||||
the value requested by the application, returning ``width`` times
|
||||
bytes per pixel or a larger value required by the hardware. That
|
||||
implies applications can just set this field to zero to get a
|
||||
reasonable default.
|
||||
|
||||
Video hardware may access padding bytes, therefore they must
|
||||
reside in accessible memory. Consider cases where padding bytes
|
||||
after the last line of an image cross a system page boundary.
|
||||
Input devices may write padding bytes, the value is undefined.
|
||||
Output devices ignore the contents of padding bytes.
|
||||
|
||||
When the image format is planar the ``bytesperline`` value applies
|
||||
to the first plane and is divided by the same factor as the
|
||||
``width`` field for the other planes. For example the Cb and Cr
|
||||
planes of a YUV 4:2:0 image have half as many padding bytes
|
||||
following each line as the Y plane. To avoid ambiguities drivers
|
||||
must return a ``bytesperline`` value rounded up to a multiple of
|
||||
the scale factor.
|
||||
|
||||
For compressed formats the ``bytesperline`` value makes no sense.
|
||||
Applications and drivers must set this to 0 in that case.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __u32
|
||||
|
||||
- ``sizeimage``
|
||||
|
||||
- Size in bytes of the buffer to hold a complete image, set by the
|
||||
driver. Usually this is ``bytesperline`` times ``height``. When
|
||||
the image consists of variable length compressed data this is the
|
||||
maximum number of bytes required to hold an image.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- enum :c:type:`v4l2_colorspace`
|
||||
|
||||
- ``colorspace``
|
||||
|
||||
- This information supplements the ``pixelformat`` and must be set
|
||||
by the driver for capture streams and by the application for
|
||||
output streams, see :ref:`colorspaces`.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- __u32
|
||||
|
||||
- ``priv``
|
||||
|
||||
- This field indicates whether the remaining fields of the
|
||||
struct :c:type:`v4l2_pix_format`, also called the
|
||||
extended fields, are valid. When set to
|
||||
``V4L2_PIX_FMT_PRIV_MAGIC``, it indicates that the extended fields
|
||||
have been correctly initialized. When set to any other value it
|
||||
indicates that the extended fields contain undefined values.
|
||||
|
||||
Applications that wish to use the pixel format extended fields
|
||||
must first ensure that the feature is supported by querying the
|
||||
device for the :ref:`V4L2_CAP_EXT_PIX_FORMAT <querycap>`
|
||||
capability. If the capability isn't set the pixel format extended
|
||||
fields are not supported and using the extended fields will lead
|
||||
to undefined results.
|
||||
|
||||
To use the extended fields, applications must set the ``priv``
|
||||
field to ``V4L2_PIX_FMT_PRIV_MAGIC``, initialize all the extended
|
||||
fields and zero the unused bytes of the
|
||||
struct :c:type:`v4l2_format` ``raw_data`` field.
|
||||
|
||||
When the ``priv`` field isn't set to ``V4L2_PIX_FMT_PRIV_MAGIC``
|
||||
drivers must act as if all the extended fields were set to zero.
|
||||
On return drivers must set the ``priv`` field to
|
||||
``V4L2_PIX_FMT_PRIV_MAGIC`` and all the extended fields to
|
||||
applicable values.
|
||||
|
||||
- .. row 11
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- Flags set by the application or driver, see :ref:`format-flags`.
|
||||
|
||||
- .. row 12
|
||||
|
||||
- enum :c:type:`v4l2_ycbcr_encoding`
|
||||
|
||||
- ``ycbcr_enc``
|
||||
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
|
||||
- .. row 13
|
||||
|
||||
- enum :c:type:`v4l2_quantization`
|
||||
|
||||
- ``quantization``
|
||||
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
|
||||
- .. row 14
|
||||
|
||||
- enum :c:type:`v4l2_xfer_func`
|
||||
|
||||
- ``xfer_func``
|
||||
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
When the ``priv`` field isn't set to ``V4L2_PIX_FMT_PRIV_MAGIC``
|
||||
drivers must act as if all the extended fields were set to zero.
|
||||
On return drivers must set the ``priv`` field to
|
||||
``V4L2_PIX_FMT_PRIV_MAGIC`` and all the extended fields to
|
||||
applicable values.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- Flags set by the application or driver, see :ref:`format-flags`.
|
||||
* - enum :c:type:`v4l2_ycbcr_encoding`
|
||||
- ``ycbcr_enc``
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
* - enum :c:type:`v4l2_quantization`
|
||||
- ``quantization``
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
* - enum :c:type:`v4l2_xfer_func`
|
||||
- ``xfer_func``
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
|
|
|
@ -21,32 +21,17 @@ describing all planes of that format.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``sizeimage``
|
||||
|
||||
- Maximum size in bytes required for image data in this plane.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``bytesperline``
|
||||
|
||||
- Distance in bytes between the leftmost pixels in two adjacent
|
||||
lines. See struct :c:type:`v4l2_pix_format`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u16
|
||||
|
||||
- ``reserved[6]``
|
||||
|
||||
- Reserved for future extensions. Should be zeroed by drivers and
|
||||
applications.
|
||||
* - __u32
|
||||
- ``sizeimage``
|
||||
- Maximum size in bytes required for image data in this plane.
|
||||
* - __u32
|
||||
- ``bytesperline``
|
||||
- Distance in bytes between the leftmost pixels in two adjacent
|
||||
lines. See struct :c:type:`v4l2_pix_format`.
|
||||
* - __u16
|
||||
- ``reserved[6]``
|
||||
- Reserved for future extensions. Should be zeroed by drivers and
|
||||
applications.
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{4.4cm}|p{5.6cm}|p{7.5cm}|
|
||||
|
@ -58,112 +43,52 @@ describing all planes of that format.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``width``
|
||||
|
||||
- Image width in pixels. See struct
|
||||
:c:type:`v4l2_pix_format`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``height``
|
||||
|
||||
- Image height in pixels. See struct
|
||||
:c:type:`v4l2_pix_format`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pixelformat``
|
||||
|
||||
- The pixel format. Both single- and multi-planar four character
|
||||
codes can be used.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- enum :c:type:`v4l2_field`
|
||||
|
||||
- ``field``
|
||||
|
||||
- See struct :c:type:`v4l2_pix_format`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- enum :c:type:`v4l2_colorspace`
|
||||
|
||||
- ``colorspace``
|
||||
|
||||
- See struct :c:type:`v4l2_pix_format`.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- struct :c:type:`v4l2_plane_pix_format`
|
||||
|
||||
- ``plane_fmt[VIDEO_MAX_PLANES]``
|
||||
|
||||
- An array of structures describing format of each plane this pixel
|
||||
format consists of. The number of valid entries in this array has
|
||||
to be put in the ``num_planes`` field.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u8
|
||||
|
||||
- ``num_planes``
|
||||
|
||||
- Number of planes (i.e. separate memory buffers) for this format
|
||||
and the number of valid entries in the ``plane_fmt`` array.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __u8
|
||||
|
||||
- ``flags``
|
||||
|
||||
- Flags set by the application or driver, see :ref:`format-flags`.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- enum :c:type:`v4l2_ycbcr_encoding`
|
||||
|
||||
- ``ycbcr_enc``
|
||||
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- enum :c:type:`v4l2_quantization`
|
||||
|
||||
- ``quantization``
|
||||
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
|
||||
- .. row 11
|
||||
|
||||
- enum :c:type:`v4l2_xfer_func`
|
||||
|
||||
- ``xfer_func``
|
||||
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
|
||||
- .. row 12
|
||||
|
||||
- __u8
|
||||
|
||||
- ``reserved[7]``
|
||||
|
||||
- Reserved for future extensions. Should be zeroed by drivers and
|
||||
applications.
|
||||
* - __u32
|
||||
- ``width``
|
||||
- Image width in pixels. See struct
|
||||
:c:type:`v4l2_pix_format`.
|
||||
* - __u32
|
||||
- ``height``
|
||||
- Image height in pixels. See struct
|
||||
:c:type:`v4l2_pix_format`.
|
||||
* - __u32
|
||||
- ``pixelformat``
|
||||
- The pixel format. Both single- and multi-planar four character
|
||||
codes can be used.
|
||||
* - enum :c:type:`v4l2_field`
|
||||
- ``field``
|
||||
- See struct :c:type:`v4l2_pix_format`.
|
||||
* - enum :c:type:`v4l2_colorspace`
|
||||
- ``colorspace``
|
||||
- See struct :c:type:`v4l2_pix_format`.
|
||||
* - struct :c:type:`v4l2_plane_pix_format`
|
||||
- ``plane_fmt[VIDEO_MAX_PLANES]``
|
||||
- An array of structures describing format of each plane this pixel
|
||||
format consists of. The number of valid entries in this array has
|
||||
to be put in the ``num_planes`` field.
|
||||
* - __u8
|
||||
- ``num_planes``
|
||||
- Number of planes (i.e. separate memory buffers) for this format
|
||||
and the number of valid entries in the ``plane_fmt`` array.
|
||||
* - __u8
|
||||
- ``flags``
|
||||
- Flags set by the application or driver, see :ref:`format-flags`.
|
||||
* - enum :c:type:`v4l2_ycbcr_encoding`
|
||||
- ``ycbcr_enc``
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
* - enum :c:type:`v4l2_quantization`
|
||||
- ``quantization``
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
* - enum :c:type:`v4l2_xfer_func`
|
||||
- ``xfer_func``
|
||||
- This information supplements the ``colorspace`` and must be set by
|
||||
the driver for capture streams and by the application for output
|
||||
streams, see :ref:`colorspaces`.
|
||||
* - __u8
|
||||
- ``reserved[7]``
|
||||
- Reserved for future extensions. Should be zeroed by drivers and
|
||||
applications.
|
||||
|
|
|
@ -33,89 +33,37 @@ needs to be filled in.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Identifier
|
||||
|
||||
- Details
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_COLORSPACE_DEFAULT``
|
||||
|
||||
- The default colorspace. This can be used by applications to let
|
||||
the driver fill in the colorspace.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_COLORSPACE_SMPTE170M``
|
||||
|
||||
- See :ref:`col-smpte-170m`.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_COLORSPACE_REC709``
|
||||
|
||||
- See :ref:`col-rec709`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_COLORSPACE_SRGB``
|
||||
|
||||
- See :ref:`col-srgb`.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_COLORSPACE_ADOBERGB``
|
||||
|
||||
- See :ref:`col-adobergb`.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_COLORSPACE_BT2020``
|
||||
|
||||
- See :ref:`col-bt2020`.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_COLORSPACE_DCI_P3``
|
||||
|
||||
- See :ref:`col-dcip3`.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``V4L2_COLORSPACE_SMPTE240M``
|
||||
|
||||
- See :ref:`col-smpte-240m`.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- ``V4L2_COLORSPACE_470_SYSTEM_M``
|
||||
|
||||
- See :ref:`col-sysm`.
|
||||
|
||||
- .. row 11
|
||||
|
||||
- ``V4L2_COLORSPACE_470_SYSTEM_BG``
|
||||
|
||||
- See :ref:`col-sysbg`.
|
||||
|
||||
- .. row 12
|
||||
|
||||
- ``V4L2_COLORSPACE_JPEG``
|
||||
|
||||
- See :ref:`col-jpeg`.
|
||||
|
||||
- .. row 13
|
||||
|
||||
- ``V4L2_COLORSPACE_RAW``
|
||||
|
||||
- The raw colorspace. This is used for raw image capture where the
|
||||
image is minimally processed and is using the internal colorspace
|
||||
of the device. The software that processes an image using this
|
||||
'colorspace' will have to know the internals of the capture
|
||||
device.
|
||||
* - Identifier
|
||||
- Details
|
||||
* - ``V4L2_COLORSPACE_DEFAULT``
|
||||
- The default colorspace. This can be used by applications to let
|
||||
the driver fill in the colorspace.
|
||||
* - ``V4L2_COLORSPACE_SMPTE170M``
|
||||
- See :ref:`col-smpte-170m`.
|
||||
* - ``V4L2_COLORSPACE_REC709``
|
||||
- See :ref:`col-rec709`.
|
||||
* - ``V4L2_COLORSPACE_SRGB``
|
||||
- See :ref:`col-srgb`.
|
||||
* - ``V4L2_COLORSPACE_ADOBERGB``
|
||||
- See :ref:`col-adobergb`.
|
||||
* - ``V4L2_COLORSPACE_BT2020``
|
||||
- See :ref:`col-bt2020`.
|
||||
* - ``V4L2_COLORSPACE_DCI_P3``
|
||||
- See :ref:`col-dcip3`.
|
||||
* - ``V4L2_COLORSPACE_SMPTE240M``
|
||||
- See :ref:`col-smpte-240m`.
|
||||
* - ``V4L2_COLORSPACE_470_SYSTEM_M``
|
||||
- See :ref:`col-sysm`.
|
||||
* - ``V4L2_COLORSPACE_470_SYSTEM_BG``
|
||||
- See :ref:`col-sysbg`.
|
||||
* - ``V4L2_COLORSPACE_JPEG``
|
||||
- See :ref:`col-jpeg`.
|
||||
* - ``V4L2_COLORSPACE_RAW``
|
||||
- The raw colorspace. This is used for raw image capture where the
|
||||
image is minimally processed and is using the internal colorspace
|
||||
of the device. The software that processes an image using this
|
||||
'colorspace' will have to know the internals of the capture
|
||||
device.
|
||||
|
||||
|
||||
|
||||
|
@ -125,60 +73,24 @@ needs to be filled in.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Identifier
|
||||
|
||||
- Details
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_XFER_FUNC_DEFAULT``
|
||||
|
||||
- Use the default transfer function as defined by the colorspace.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_XFER_FUNC_709``
|
||||
|
||||
- Use the Rec. 709 transfer function.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_XFER_FUNC_SRGB``
|
||||
|
||||
- Use the sRGB transfer function.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_XFER_FUNC_ADOBERGB``
|
||||
|
||||
- Use the AdobeRGB transfer function.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_XFER_FUNC_SMPTE240M``
|
||||
|
||||
- Use the SMPTE 240M transfer function.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_XFER_FUNC_NONE``
|
||||
|
||||
- Do not use a transfer function (i.e. use linear RGB values).
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_XFER_FUNC_DCI_P3``
|
||||
|
||||
- Use the DCI-P3 transfer function.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``V4L2_XFER_FUNC_SMPTE2084``
|
||||
|
||||
- Use the SMPTE 2084 transfer function.
|
||||
* - Identifier
|
||||
- Details
|
||||
* - ``V4L2_XFER_FUNC_DEFAULT``
|
||||
- Use the default transfer function as defined by the colorspace.
|
||||
* - ``V4L2_XFER_FUNC_709``
|
||||
- Use the Rec. 709 transfer function.
|
||||
* - ``V4L2_XFER_FUNC_SRGB``
|
||||
- Use the sRGB transfer function.
|
||||
* - ``V4L2_XFER_FUNC_ADOBERGB``
|
||||
- Use the AdobeRGB transfer function.
|
||||
* - ``V4L2_XFER_FUNC_SMPTE240M``
|
||||
- Use the SMPTE 240M transfer function.
|
||||
* - ``V4L2_XFER_FUNC_NONE``
|
||||
- Do not use a transfer function (i.e. use linear RGB values).
|
||||
* - ``V4L2_XFER_FUNC_DCI_P3``
|
||||
- Use the DCI-P3 transfer function.
|
||||
* - ``V4L2_XFER_FUNC_SMPTE2084``
|
||||
- Use the SMPTE 2084 transfer function.
|
||||
|
||||
|
||||
|
||||
|
@ -190,60 +102,24 @@ needs to be filled in.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Identifier
|
||||
|
||||
- Details
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_YCBCR_ENC_DEFAULT``
|
||||
|
||||
- Use the default Y'CbCr encoding as defined by the colorspace.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_YCBCR_ENC_601``
|
||||
|
||||
- Use the BT.601 Y'CbCr encoding.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_YCBCR_ENC_709``
|
||||
|
||||
- Use the Rec. 709 Y'CbCr encoding.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_YCBCR_ENC_XV601``
|
||||
|
||||
- Use the extended gamut xvYCC BT.601 encoding.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_YCBCR_ENC_XV709``
|
||||
|
||||
- Use the extended gamut xvYCC Rec. 709 encoding.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_YCBCR_ENC_BT2020``
|
||||
|
||||
- Use the default non-constant luminance BT.2020 Y'CbCr encoding.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_YCBCR_ENC_BT2020_CONST_LUM``
|
||||
|
||||
- Use the constant luminance BT.2020 Yc'CbcCrc encoding.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``V4L2_YCBCR_ENC_SMPTE_240M``
|
||||
|
||||
- Use the SMPTE 240M Y'CbCr encoding.
|
||||
* - Identifier
|
||||
- Details
|
||||
* - ``V4L2_YCBCR_ENC_DEFAULT``
|
||||
- Use the default Y'CbCr encoding as defined by the colorspace.
|
||||
* - ``V4L2_YCBCR_ENC_601``
|
||||
- Use the BT.601 Y'CbCr encoding.
|
||||
* - ``V4L2_YCBCR_ENC_709``
|
||||
- Use the Rec. 709 Y'CbCr encoding.
|
||||
* - ``V4L2_YCBCR_ENC_XV601``
|
||||
- Use the extended gamut xvYCC BT.601 encoding.
|
||||
* - ``V4L2_YCBCR_ENC_XV709``
|
||||
- Use the extended gamut xvYCC Rec. 709 encoding.
|
||||
* - ``V4L2_YCBCR_ENC_BT2020``
|
||||
- Use the default non-constant luminance BT.2020 Y'CbCr encoding.
|
||||
* - ``V4L2_YCBCR_ENC_BT2020_CONST_LUM``
|
||||
- Use the constant luminance BT.2020 Yc'CbcCrc encoding.
|
||||
* - ``V4L2_YCBCR_ENC_SMPTE_240M``
|
||||
- Use the SMPTE 240M Y'CbCr encoding.
|
||||
|
||||
|
||||
|
||||
|
@ -255,35 +131,19 @@ needs to be filled in.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Identifier
|
||||
|
||||
- Details
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_QUANTIZATION_DEFAULT``
|
||||
|
||||
- Use the default quantization encoding as defined by the
|
||||
colorspace. This is always full range for R'G'B' (except for the
|
||||
BT.2020 colorspace) and usually limited range for Y'CbCr.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_QUANTIZATION_FULL_RANGE``
|
||||
|
||||
- Use the full range quantization encoding. I.e. the range [0…1] is
|
||||
mapped to [0…255] (with possible clipping to [1…254] to avoid the
|
||||
0x00 and 0xff values). Cb and Cr are mapped from [-0.5…0.5] to
|
||||
[0…255] (with possible clipping to [1…254] to avoid the 0x00 and
|
||||
0xff values).
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_QUANTIZATION_LIM_RANGE``
|
||||
|
||||
- Use the limited range quantization encoding. I.e. the range [0…1]
|
||||
is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
|
||||
[16…240].
|
||||
* - Identifier
|
||||
- Details
|
||||
* - ``V4L2_QUANTIZATION_DEFAULT``
|
||||
- Use the default quantization encoding as defined by the
|
||||
colorspace. This is always full range for R'G'B' (except for the
|
||||
BT.2020 colorspace) and usually limited range for Y'CbCr.
|
||||
* - ``V4L2_QUANTIZATION_FULL_RANGE``
|
||||
- Use the full range quantization encoding. I.e. the range [0…1] is
|
||||
mapped to [0…255] (with possible clipping to [1…254] to avoid the
|
||||
0x00 and 0xff values). Cb and Cr are mapped from [-0.5…0.5] to
|
||||
[0…255] (with possible clipping to [1…254] to avoid the 0x00 and
|
||||
0xff values).
|
||||
* - ``V4L2_QUANTIZATION_LIM_RANGE``
|
||||
- Use the limited range quantization encoding. I.e. the range [0…1]
|
||||
is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
|
||||
[16…240].
|
||||
|
|
|
@ -26,46 +26,21 @@ are:
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Color
|
||||
|
||||
- x
|
||||
|
||||
- y
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Red
|
||||
|
||||
- 0.630
|
||||
|
||||
- 0.340
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Green
|
||||
|
||||
- 0.310
|
||||
|
||||
- 0.595
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Blue
|
||||
|
||||
- 0.155
|
||||
|
||||
- 0.070
|
||||
|
||||
- .. row 5
|
||||
|
||||
- White Reference (D65)
|
||||
|
||||
- 0.3127
|
||||
|
||||
- 0.3290
|
||||
* - Color
|
||||
- x
|
||||
- y
|
||||
* - Red
|
||||
- 0.630
|
||||
- 0.340
|
||||
* - Green
|
||||
- 0.310
|
||||
- 0.595
|
||||
* - Blue
|
||||
- 0.155
|
||||
- 0.070
|
||||
* - White Reference (D65)
|
||||
- 0.3127
|
||||
- 0.3290
|
||||
|
||||
|
||||
The red, green and blue chromaticities are also often referred to as the
|
||||
|
@ -132,46 +107,21 @@ and the white reference are:
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Color
|
||||
|
||||
- x
|
||||
|
||||
- y
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Red
|
||||
|
||||
- 0.640
|
||||
|
||||
- 0.330
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Green
|
||||
|
||||
- 0.300
|
||||
|
||||
- 0.600
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Blue
|
||||
|
||||
- 0.150
|
||||
|
||||
- 0.060
|
||||
|
||||
- .. row 5
|
||||
|
||||
- White Reference (D65)
|
||||
|
||||
- 0.3127
|
||||
|
||||
- 0.3290
|
||||
* - Color
|
||||
- x
|
||||
- y
|
||||
* - Red
|
||||
- 0.640
|
||||
- 0.330
|
||||
* - Green
|
||||
- 0.300
|
||||
- 0.600
|
||||
* - Blue
|
||||
- 0.150
|
||||
- 0.060
|
||||
* - White Reference (D65)
|
||||
- 0.3127
|
||||
- 0.3290
|
||||
|
||||
|
||||
The full name of this standard is Rec. ITU-R BT.709-5.
|
||||
|
@ -273,46 +223,21 @@ The chromaticities of the primary colors and the white reference are:
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Color
|
||||
|
||||
- x
|
||||
|
||||
- y
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Red
|
||||
|
||||
- 0.640
|
||||
|
||||
- 0.330
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Green
|
||||
|
||||
- 0.300
|
||||
|
||||
- 0.600
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Blue
|
||||
|
||||
- 0.150
|
||||
|
||||
- 0.060
|
||||
|
||||
- .. row 5
|
||||
|
||||
- White Reference (D65)
|
||||
|
||||
- 0.3127
|
||||
|
||||
- 0.3290
|
||||
* - Color
|
||||
- x
|
||||
- y
|
||||
* - Red
|
||||
- 0.640
|
||||
- 0.330
|
||||
* - Green
|
||||
- 0.300
|
||||
- 0.600
|
||||
* - Blue
|
||||
- 0.150
|
||||
- 0.060
|
||||
* - White Reference (D65)
|
||||
- 0.3127
|
||||
- 0.3290
|
||||
|
||||
|
||||
These chromaticities are identical to the Rec. 709 colorspace.
|
||||
|
@ -376,46 +301,21 @@ are:
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Color
|
||||
|
||||
- x
|
||||
|
||||
- y
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Red
|
||||
|
||||
- 0.6400
|
||||
|
||||
- 0.3300
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Green
|
||||
|
||||
- 0.2100
|
||||
|
||||
- 0.7100
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Blue
|
||||
|
||||
- 0.1500
|
||||
|
||||
- 0.0600
|
||||
|
||||
- .. row 5
|
||||
|
||||
- White Reference (D65)
|
||||
|
||||
- 0.3127
|
||||
|
||||
- 0.3290
|
||||
* - Color
|
||||
- x
|
||||
- y
|
||||
* - Red
|
||||
- 0.6400
|
||||
- 0.3300
|
||||
* - Green
|
||||
- 0.2100
|
||||
- 0.7100
|
||||
* - Blue
|
||||
- 0.1500
|
||||
- 0.0600
|
||||
* - White Reference (D65)
|
||||
- 0.3127
|
||||
- 0.3290
|
||||
|
||||
|
||||
|
||||
|
@ -468,46 +368,21 @@ of the primary colors and the white reference are:
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Color
|
||||
|
||||
- x
|
||||
|
||||
- y
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Red
|
||||
|
||||
- 0.708
|
||||
|
||||
- 0.292
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Green
|
||||
|
||||
- 0.170
|
||||
|
||||
- 0.797
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Blue
|
||||
|
||||
- 0.131
|
||||
|
||||
- 0.046
|
||||
|
||||
- .. row 5
|
||||
|
||||
- White Reference (D65)
|
||||
|
||||
- 0.3127
|
||||
|
||||
- 0.3290
|
||||
* - Color
|
||||
- x
|
||||
- y
|
||||
* - Red
|
||||
- 0.708
|
||||
- 0.292
|
||||
* - Green
|
||||
- 0.170
|
||||
- 0.797
|
||||
* - Blue
|
||||
- 0.131
|
||||
- 0.046
|
||||
* - White Reference (D65)
|
||||
- 0.3127
|
||||
- 0.3290
|
||||
|
||||
|
||||
|
||||
|
@ -592,46 +467,21 @@ The chromaticities of the primary colors and the white reference are:
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Color
|
||||
|
||||
- x
|
||||
|
||||
- y
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Red
|
||||
|
||||
- 0.6800
|
||||
|
||||
- 0.3200
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Green
|
||||
|
||||
- 0.2650
|
||||
|
||||
- 0.6900
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Blue
|
||||
|
||||
- 0.1500
|
||||
|
||||
- 0.0600
|
||||
|
||||
- .. row 5
|
||||
|
||||
- White Reference
|
||||
|
||||
- 0.3140
|
||||
|
||||
- 0.3510
|
||||
* - Color
|
||||
- x
|
||||
- y
|
||||
* - Red
|
||||
- 0.6800
|
||||
- 0.3200
|
||||
* - Green
|
||||
- 0.2650
|
||||
- 0.6900
|
||||
* - Blue
|
||||
- 0.1500
|
||||
- 0.0600
|
||||
* - White Reference
|
||||
- 0.3140
|
||||
- 0.3510
|
||||
|
||||
|
||||
|
||||
|
@ -671,46 +521,21 @@ and the white reference are:
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Color
|
||||
|
||||
- x
|
||||
|
||||
- y
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Red
|
||||
|
||||
- 0.630
|
||||
|
||||
- 0.340
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Green
|
||||
|
||||
- 0.310
|
||||
|
||||
- 0.595
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Blue
|
||||
|
||||
- 0.155
|
||||
|
||||
- 0.070
|
||||
|
||||
- .. row 5
|
||||
|
||||
- White Reference (D65)
|
||||
|
||||
- 0.3127
|
||||
|
||||
- 0.3290
|
||||
* - Color
|
||||
- x
|
||||
- y
|
||||
* - Red
|
||||
- 0.630
|
||||
- 0.340
|
||||
* - Green
|
||||
- 0.310
|
||||
- 0.595
|
||||
* - Blue
|
||||
- 0.155
|
||||
- 0.070
|
||||
* - White Reference (D65)
|
||||
- 0.3127
|
||||
- 0.3290
|
||||
|
||||
|
||||
These chromaticities are identical to the SMPTE 170M colorspace.
|
||||
|
@ -767,46 +592,21 @@ reference are:
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Color
|
||||
|
||||
- x
|
||||
|
||||
- y
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Red
|
||||
|
||||
- 0.67
|
||||
|
||||
- 0.33
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Green
|
||||
|
||||
- 0.21
|
||||
|
||||
- 0.71
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Blue
|
||||
|
||||
- 0.14
|
||||
|
||||
- 0.08
|
||||
|
||||
- .. row 5
|
||||
|
||||
- White Reference (C)
|
||||
|
||||
- 0.310
|
||||
|
||||
- 0.316
|
||||
* - Color
|
||||
- x
|
||||
- y
|
||||
* - Red
|
||||
- 0.67
|
||||
- 0.33
|
||||
* - Green
|
||||
- 0.21
|
||||
- 0.71
|
||||
* - Blue
|
||||
- 0.14
|
||||
- 0.08
|
||||
* - White Reference (C)
|
||||
- 0.310
|
||||
- 0.316
|
||||
|
||||
|
||||
.. note::
|
||||
|
@ -871,46 +671,21 @@ are:
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Color
|
||||
|
||||
- x
|
||||
|
||||
- y
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Red
|
||||
|
||||
- 0.64
|
||||
|
||||
- 0.33
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Green
|
||||
|
||||
- 0.29
|
||||
|
||||
- 0.60
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Blue
|
||||
|
||||
- 0.15
|
||||
|
||||
- 0.06
|
||||
|
||||
- .. row 5
|
||||
|
||||
- White Reference (D65)
|
||||
|
||||
- 0.3127
|
||||
|
||||
- 0.3290
|
||||
* - Color
|
||||
- x
|
||||
- y
|
||||
* - Red
|
||||
- 0.64
|
||||
- 0.33
|
||||
* - Green
|
||||
- 0.29
|
||||
- 0.60
|
||||
* - Blue
|
||||
- 0.15
|
||||
- 0.06
|
||||
* - White Reference (D65)
|
||||
- 0.3127
|
||||
- 0.3290
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -14,118 +14,74 @@ Compressed Formats
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
* - Identifier
|
||||
- Code
|
||||
- Details
|
||||
* .. _V4L2-PIX-FMT-JPEG:
|
||||
|
||||
- .. row 1
|
||||
- ``V4L2_PIX_FMT_JPEG``
|
||||
- 'JPEG'
|
||||
- TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`,
|
||||
:ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`.
|
||||
* .. _V4L2-PIX-FMT-MPEG:
|
||||
|
||||
- Identifier
|
||||
- ``V4L2_PIX_FMT_MPEG``
|
||||
- 'MPEG'
|
||||
- MPEG multiplexed stream. The actual format is determined by
|
||||
extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see
|
||||
:ref:`mpeg-control-id`.
|
||||
* .. _V4L2-PIX-FMT-H264:
|
||||
|
||||
- Code
|
||||
- ``V4L2_PIX_FMT_H264``
|
||||
- 'H264'
|
||||
- H264 video elementary stream with start codes.
|
||||
* .. _V4L2-PIX-FMT-H264-NO-SC:
|
||||
|
||||
- Details
|
||||
- ``V4L2_PIX_FMT_H264_NO_SC``
|
||||
- 'AVC1'
|
||||
- H264 video elementary stream without start codes.
|
||||
* .. _V4L2-PIX-FMT-H264-MVC:
|
||||
|
||||
- .. _V4L2-PIX-FMT-JPEG:
|
||||
- ``V4L2_PIX_FMT_H264_MVC``
|
||||
- 'M264'
|
||||
- H264 MVC video elementary stream.
|
||||
* .. _V4L2-PIX-FMT-H263:
|
||||
|
||||
- ``V4L2_PIX_FMT_JPEG``
|
||||
- ``V4L2_PIX_FMT_H263``
|
||||
- 'H263'
|
||||
- H263 video elementary stream.
|
||||
* .. _V4L2-PIX-FMT-MPEG1:
|
||||
|
||||
- 'JPEG'
|
||||
- ``V4L2_PIX_FMT_MPEG1``
|
||||
- 'MPG1'
|
||||
- MPEG1 video elementary stream.
|
||||
* .. _V4L2-PIX-FMT-MPEG2:
|
||||
|
||||
- TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`,
|
||||
:ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`.
|
||||
- ``V4L2_PIX_FMT_MPEG2``
|
||||
- 'MPG2'
|
||||
- MPEG2 video elementary stream.
|
||||
* .. _V4L2-PIX-FMT-MPEG4:
|
||||
|
||||
- .. _V4L2-PIX-FMT-MPEG:
|
||||
- ``V4L2_PIX_FMT_MPEG4``
|
||||
- 'MPG4'
|
||||
- MPEG4 video elementary stream.
|
||||
* .. _V4L2-PIX-FMT-XVID:
|
||||
|
||||
- ``V4L2_PIX_FMT_MPEG``
|
||||
- ``V4L2_PIX_FMT_XVID``
|
||||
- 'XVID'
|
||||
- Xvid video elementary stream.
|
||||
* .. _V4L2-PIX-FMT-VC1-ANNEX-G:
|
||||
|
||||
- 'MPEG'
|
||||
- ``V4L2_PIX_FMT_VC1_ANNEX_G``
|
||||
- 'VC1G'
|
||||
- VC1, SMPTE 421M Annex G compliant stream.
|
||||
* .. _V4L2-PIX-FMT-VC1-ANNEX-L:
|
||||
|
||||
- MPEG multiplexed stream. The actual format is determined by
|
||||
extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see
|
||||
:ref:`mpeg-control-id`.
|
||||
- ``V4L2_PIX_FMT_VC1_ANNEX_L``
|
||||
- 'VC1L'
|
||||
- VC1, SMPTE 421M Annex L compliant stream.
|
||||
* .. _V4L2-PIX-FMT-VP8:
|
||||
|
||||
- .. _V4L2-PIX-FMT-H264:
|
||||
|
||||
- ``V4L2_PIX_FMT_H264``
|
||||
|
||||
- 'H264'
|
||||
|
||||
- H264 video elementary stream with start codes.
|
||||
|
||||
- .. _V4L2-PIX-FMT-H264-NO-SC:
|
||||
|
||||
- ``V4L2_PIX_FMT_H264_NO_SC``
|
||||
|
||||
- 'AVC1'
|
||||
|
||||
- H264 video elementary stream without start codes.
|
||||
|
||||
- .. _V4L2-PIX-FMT-H264-MVC:
|
||||
|
||||
- ``V4L2_PIX_FMT_H264_MVC``
|
||||
|
||||
- 'M264'
|
||||
|
||||
- H264 MVC video elementary stream.
|
||||
|
||||
- .. _V4L2-PIX-FMT-H263:
|
||||
|
||||
- ``V4L2_PIX_FMT_H263``
|
||||
|
||||
- 'H263'
|
||||
|
||||
- H263 video elementary stream.
|
||||
|
||||
- .. _V4L2-PIX-FMT-MPEG1:
|
||||
|
||||
- ``V4L2_PIX_FMT_MPEG1``
|
||||
|
||||
- 'MPG1'
|
||||
|
||||
- MPEG1 video elementary stream.
|
||||
|
||||
- .. _V4L2-PIX-FMT-MPEG2:
|
||||
|
||||
- ``V4L2_PIX_FMT_MPEG2``
|
||||
|
||||
- 'MPG2'
|
||||
|
||||
- MPEG2 video elementary stream.
|
||||
|
||||
- .. _V4L2-PIX-FMT-MPEG4:
|
||||
|
||||
- ``V4L2_PIX_FMT_MPEG4``
|
||||
|
||||
- 'MPG4'
|
||||
|
||||
- MPEG4 video elementary stream.
|
||||
|
||||
- .. _V4L2-PIX-FMT-XVID:
|
||||
|
||||
- ``V4L2_PIX_FMT_XVID``
|
||||
|
||||
- 'XVID'
|
||||
|
||||
- Xvid video elementary stream.
|
||||
|
||||
- .. _V4L2-PIX-FMT-VC1-ANNEX-G:
|
||||
|
||||
- ``V4L2_PIX_FMT_VC1_ANNEX_G``
|
||||
|
||||
- 'VC1G'
|
||||
|
||||
- VC1, SMPTE 421M Annex G compliant stream.
|
||||
|
||||
- .. _V4L2-PIX-FMT-VC1-ANNEX-L:
|
||||
|
||||
- ``V4L2_PIX_FMT_VC1_ANNEX_L``
|
||||
|
||||
- 'VC1L'
|
||||
|
||||
- VC1, SMPTE 421M Annex L compliant stream.
|
||||
|
||||
- .. _V4L2-PIX-FMT-VP8:
|
||||
|
||||
- ``V4L2_PIX_FMT_VP8``
|
||||
|
||||
- 'VP80'
|
||||
|
||||
- VP8 video elementary stream.
|
||||
- ``V4L2_PIX_FMT_VP8``
|
||||
- 'VP80'
|
||||
- VP8 video elementary stream.
|
||||
|
|
|
@ -22,51 +22,23 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
|
|
|
@ -17,57 +17,31 @@ the palette, this must be done with ioctls of the Linux framebuffer API.
|
|||
:header-rows: 2
|
||||
:stub-columns: 0
|
||||
|
||||
* - Identifier
|
||||
- Code
|
||||
-
|
||||
- :cspan:`7` Byte 0
|
||||
* -
|
||||
-
|
||||
- Bit
|
||||
- 7
|
||||
- 6
|
||||
- 5
|
||||
- 4
|
||||
- 3
|
||||
- 2
|
||||
- 1
|
||||
- 0
|
||||
* .. _V4L2-PIX-FMT-PAL8:
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Identifier
|
||||
|
||||
- Code
|
||||
|
||||
-
|
||||
- :cspan:`7` Byte 0
|
||||
|
||||
- .. row 2
|
||||
|
||||
-
|
||||
-
|
||||
- Bit
|
||||
|
||||
- 7
|
||||
|
||||
- 6
|
||||
|
||||
- 5
|
||||
|
||||
- 4
|
||||
|
||||
- 3
|
||||
|
||||
- 2
|
||||
|
||||
- 1
|
||||
|
||||
- 0
|
||||
|
||||
- .. _V4L2-PIX-FMT-PAL8:
|
||||
|
||||
- ``V4L2_PIX_FMT_PAL8``
|
||||
|
||||
- 'PAL8'
|
||||
|
||||
-
|
||||
- i\ :sub:`7`
|
||||
|
||||
- i\ :sub:`6`
|
||||
|
||||
- i\ :sub:`5`
|
||||
|
||||
- i\ :sub:`4`
|
||||
|
||||
- i\ :sub:`3`
|
||||
|
||||
- i\ :sub:`2`
|
||||
|
||||
- i\ :sub:`1`
|
||||
|
||||
- i\ :sub:`0`
|
||||
- ``V4L2_PIX_FMT_PAL8``
|
||||
- 'PAL8'
|
||||
-
|
||||
- i\ :sub:`7`
|
||||
- i\ :sub:`6`
|
||||
- i\ :sub:`5`
|
||||
- i\ :sub:`4`
|
||||
- i\ :sub:`3`
|
||||
- i\ :sub:`2`
|
||||
- i\ :sub:`1`
|
||||
- i\ :sub:`0`
|
||||
|
|
|
@ -34,78 +34,36 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- start + 20:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Cb\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 16:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 20:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 24:
|
||||
- Cb\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -116,100 +74,53 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 8
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 1
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
* - 2
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 3
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
|
|
|
@ -39,77 +39,36 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start + 20:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 20:
|
||||
- Cb\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -118,100 +77,53 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
-
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
-
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 8
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 1
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
* - 2
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 3
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
|
|
|
@ -50,81 +50,37 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start0 + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start0 + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start0 + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start0 + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start1 + 0:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start1 + 4:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
- Cr\ :sub:`01`
|
||||
* - start1 + 4:
|
||||
- Cb\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -135,101 +91,54 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 8
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 1
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
* - 2
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 3
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
|
|
|
@ -37,101 +37,46 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start + 20:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- .. row 8
|
||||
|
||||
- start + 28:
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 20:
|
||||
- Cb\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 24:
|
||||
- Cb\ :sub:`20`
|
||||
- Cr\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
- Cr\ :sub:`21`
|
||||
* - start + 28:
|
||||
- Cb\ :sub:`30`
|
||||
- Cr\ :sub:`30`
|
||||
- Cb\ :sub:`31`
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -142,124 +87,67 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
|
||||
- .. row 7
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 9
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 10
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 1
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* -
|
||||
* - 2
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 3
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
|
|
|
@ -40,105 +40,47 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start0 + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start0 + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start0 + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start0 + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start1 + 0:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`02`
|
||||
|
||||
- Cr\ :sub:`02`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start1 + 4:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`12`
|
||||
|
||||
- Cr\ :sub:`12`
|
||||
|
||||
- .. row 8
|
||||
|
||||
- start1 + 8:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`22`
|
||||
|
||||
- Cr\ :sub:`22`
|
||||
|
||||
- .. row 9
|
||||
|
||||
- start1 + 12:
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Cb\ :sub:`32`
|
||||
|
||||
- Cr\ :sub:`32`
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Cb\ :sub:`02`
|
||||
- Cr\ :sub:`02`
|
||||
* - start1 + 4:
|
||||
- Cb\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Cb\ :sub:`12`
|
||||
- Cr\ :sub:`12`
|
||||
* - start1 + 8:
|
||||
- Cb\ :sub:`20`
|
||||
- Cr\ :sub:`20`
|
||||
- Cb\ :sub:`22`
|
||||
- Cr\ :sub:`22`
|
||||
* - start1 + 12:
|
||||
- Cb\ :sub:`30`
|
||||
- Cr\ :sub:`30`
|
||||
- Cb\ :sub:`32`
|
||||
- Cr\ :sub:`32`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -149,124 +91,67 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
|
||||
- .. row 7
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 9
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 10
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 1
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* -
|
||||
* - 2
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 3
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
|
|
|
@ -37,130 +37,59 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- Cb\ :sub:`02`
|
||||
|
||||
- Cr\ :sub:`02`
|
||||
|
||||
- Cb\ :sub:`03`
|
||||
|
||||
- Cr\ :sub:`03`
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- Cb\ :sub:`12`
|
||||
|
||||
- Cr\ :sub:`12`
|
||||
|
||||
- Cb\ :sub:`13`
|
||||
|
||||
- Cr\ :sub:`13`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start + 32:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- Cb\ :sub:`22`
|
||||
|
||||
- Cr\ :sub:`22`
|
||||
|
||||
- Cb\ :sub:`23`
|
||||
|
||||
- Cr\ :sub:`23`
|
||||
|
||||
- .. row 8
|
||||
|
||||
- start + 40:
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
- Cb\ :sub:`32`
|
||||
|
||||
- Cr\ :sub:`32`
|
||||
|
||||
- Cb\ :sub:`33`
|
||||
|
||||
- Cr\ :sub:`33`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
- Cr\ :sub:`01`
|
||||
- Cb\ :sub:`02`
|
||||
- Cr\ :sub:`02`
|
||||
- Cb\ :sub:`03`
|
||||
- Cr\ :sub:`03`
|
||||
* - start + 24:
|
||||
- Cb\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
- Cr\ :sub:`11`
|
||||
- Cb\ :sub:`12`
|
||||
- Cr\ :sub:`12`
|
||||
- Cb\ :sub:`13`
|
||||
- Cr\ :sub:`13`
|
||||
* - start + 32:
|
||||
- Cb\ :sub:`20`
|
||||
- Cr\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
- Cr\ :sub:`21`
|
||||
- Cb\ :sub:`22`
|
||||
- Cr\ :sub:`22`
|
||||
- Cb\ :sub:`23`
|
||||
- Cr\ :sub:`23`
|
||||
* - start + 40:
|
||||
- Cb\ :sub:`30`
|
||||
- Cr\ :sub:`30`
|
||||
- Cb\ :sub:`31`
|
||||
- Cr\ :sub:`31`
|
||||
- Cb\ :sub:`32`
|
||||
- Cr\ :sub:`32`
|
||||
- Cb\ :sub:`33`
|
||||
- Cr\ :sub:`33`
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -24,291 +24,160 @@ component of each pixel in one 16 or 32 bit word.
|
|||
:header-rows: 2
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Identifier
|
||||
|
||||
- Code
|
||||
|
||||
-
|
||||
- :cspan:`7` Byte 0 in memory
|
||||
|
||||
-
|
||||
- :cspan:`7` Byte 1
|
||||
|
||||
-
|
||||
- :cspan:`7` Byte 2
|
||||
|
||||
-
|
||||
- :cspan:`7` Byte 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
-
|
||||
-
|
||||
- Bit
|
||||
|
||||
- 7
|
||||
|
||||
- 6
|
||||
|
||||
- 5
|
||||
|
||||
- 4
|
||||
|
||||
- 3
|
||||
|
||||
- 2
|
||||
|
||||
- 1
|
||||
|
||||
- 0
|
||||
|
||||
-
|
||||
- 7
|
||||
|
||||
- 6
|
||||
|
||||
- 5
|
||||
|
||||
- 4
|
||||
|
||||
- 3
|
||||
|
||||
- 2
|
||||
|
||||
- 1
|
||||
|
||||
- 0
|
||||
|
||||
-
|
||||
- 7
|
||||
|
||||
- 6
|
||||
|
||||
- 5
|
||||
|
||||
- 4
|
||||
|
||||
- 3
|
||||
|
||||
- 2
|
||||
|
||||
- 1
|
||||
|
||||
- 0
|
||||
|
||||
-
|
||||
- 7
|
||||
|
||||
- 6
|
||||
|
||||
- 5
|
||||
|
||||
- 4
|
||||
|
||||
- 3
|
||||
|
||||
- 2
|
||||
|
||||
- 1
|
||||
|
||||
- 0
|
||||
|
||||
- .. _V4L2-PIX-FMT-YUV444:
|
||||
|
||||
- ``V4L2_PIX_FMT_YUV444``
|
||||
|
||||
- 'Y444'
|
||||
|
||||
-
|
||||
- Cb\ :sub:`3`
|
||||
|
||||
- Cb\ :sub:`2`
|
||||
|
||||
- Cb\ :sub:`1`
|
||||
|
||||
- Cb\ :sub:`0`
|
||||
|
||||
- Cr\ :sub:`3`
|
||||
|
||||
- Cr\ :sub:`2`
|
||||
|
||||
- Cr\ :sub:`1`
|
||||
|
||||
- Cr\ :sub:`0`
|
||||
|
||||
-
|
||||
- a\ :sub:`3`
|
||||
|
||||
- a\ :sub:`2`
|
||||
|
||||
- a\ :sub:`1`
|
||||
|
||||
- a\ :sub:`0`
|
||||
|
||||
- Y'\ :sub:`3`
|
||||
|
||||
- Y'\ :sub:`2`
|
||||
|
||||
- Y'\ :sub:`1`
|
||||
|
||||
- Y'\ :sub:`0`
|
||||
|
||||
- .. _V4L2-PIX-FMT-YUV555:
|
||||
|
||||
- ``V4L2_PIX_FMT_YUV555``
|
||||
|
||||
- 'YUVO'
|
||||
|
||||
-
|
||||
- Cb\ :sub:`2`
|
||||
|
||||
- Cb\ :sub:`1`
|
||||
|
||||
- Cb\ :sub:`0`
|
||||
|
||||
- Cr\ :sub:`4`
|
||||
|
||||
- Cr\ :sub:`3`
|
||||
|
||||
- Cr\ :sub:`2`
|
||||
|
||||
- Cr\ :sub:`1`
|
||||
|
||||
- Cr\ :sub:`0`
|
||||
|
||||
-
|
||||
- a
|
||||
|
||||
- Y'\ :sub:`4`
|
||||
|
||||
- Y'\ :sub:`3`
|
||||
|
||||
- Y'\ :sub:`2`
|
||||
|
||||
- Y'\ :sub:`1`
|
||||
|
||||
- Y'\ :sub:`0`
|
||||
|
||||
- Cb\ :sub:`4`
|
||||
|
||||
- Cb\ :sub:`3`
|
||||
|
||||
- .. _V4L2-PIX-FMT-YUV565:
|
||||
|
||||
- ``V4L2_PIX_FMT_YUV565``
|
||||
|
||||
- 'YUVP'
|
||||
|
||||
-
|
||||
- Cb\ :sub:`2`
|
||||
|
||||
- Cb\ :sub:`1`
|
||||
|
||||
- Cb\ :sub:`0`
|
||||
|
||||
- Cr\ :sub:`4`
|
||||
|
||||
- Cr\ :sub:`3`
|
||||
|
||||
- Cr\ :sub:`2`
|
||||
|
||||
- Cr\ :sub:`1`
|
||||
|
||||
- Cr\ :sub:`0`
|
||||
|
||||
-
|
||||
- Y'\ :sub:`4`
|
||||
|
||||
- Y'\ :sub:`3`
|
||||
|
||||
- Y'\ :sub:`2`
|
||||
|
||||
- Y'\ :sub:`1`
|
||||
|
||||
- Y'\ :sub:`0`
|
||||
|
||||
- Cb\ :sub:`5`
|
||||
|
||||
- Cb\ :sub:`4`
|
||||
|
||||
- Cb\ :sub:`3`
|
||||
|
||||
- .. _V4L2-PIX-FMT-YUV32:
|
||||
|
||||
- ``V4L2_PIX_FMT_YUV32``
|
||||
|
||||
- 'YUV4'
|
||||
|
||||
-
|
||||
- a\ :sub:`7`
|
||||
|
||||
- a\ :sub:`6`
|
||||
|
||||
- a\ :sub:`5`
|
||||
|
||||
- a\ :sub:`4`
|
||||
|
||||
- a\ :sub:`3`
|
||||
|
||||
- a\ :sub:`2`
|
||||
|
||||
- a\ :sub:`1`
|
||||
|
||||
- a\ :sub:`0`
|
||||
|
||||
-
|
||||
- Y'\ :sub:`7`
|
||||
|
||||
- Y'\ :sub:`6`
|
||||
|
||||
- Y'\ :sub:`5`
|
||||
|
||||
- Y'\ :sub:`4`
|
||||
|
||||
- Y'\ :sub:`3`
|
||||
|
||||
- Y'\ :sub:`2`
|
||||
|
||||
- Y'\ :sub:`1`
|
||||
|
||||
- Y'\ :sub:`0`
|
||||
|
||||
-
|
||||
- Cb\ :sub:`7`
|
||||
|
||||
- Cb\ :sub:`6`
|
||||
|
||||
- Cb\ :sub:`5`
|
||||
|
||||
- Cb\ :sub:`4`
|
||||
|
||||
- Cb\ :sub:`3`
|
||||
|
||||
- Cb\ :sub:`2`
|
||||
|
||||
- Cb\ :sub:`1`
|
||||
|
||||
- Cb\ :sub:`0`
|
||||
|
||||
-
|
||||
- Cr\ :sub:`7`
|
||||
|
||||
- Cr\ :sub:`6`
|
||||
|
||||
- Cr\ :sub:`5`
|
||||
|
||||
- Cr\ :sub:`4`
|
||||
|
||||
- Cr\ :sub:`3`
|
||||
|
||||
- Cr\ :sub:`2`
|
||||
|
||||
- Cr\ :sub:`1`
|
||||
|
||||
- Cr\ :sub:`0`
|
||||
* - Identifier
|
||||
- Code
|
||||
-
|
||||
- :cspan:`7` Byte 0 in memory
|
||||
-
|
||||
- :cspan:`7` Byte 1
|
||||
-
|
||||
- :cspan:`7` Byte 2
|
||||
-
|
||||
- :cspan:`7` Byte 3
|
||||
* -
|
||||
-
|
||||
- Bit
|
||||
- 7
|
||||
- 6
|
||||
- 5
|
||||
- 4
|
||||
- 3
|
||||
- 2
|
||||
- 1
|
||||
- 0
|
||||
-
|
||||
- 7
|
||||
- 6
|
||||
- 5
|
||||
- 4
|
||||
- 3
|
||||
- 2
|
||||
- 1
|
||||
- 0
|
||||
-
|
||||
- 7
|
||||
- 6
|
||||
- 5
|
||||
- 4
|
||||
- 3
|
||||
- 2
|
||||
- 1
|
||||
- 0
|
||||
-
|
||||
- 7
|
||||
- 6
|
||||
- 5
|
||||
- 4
|
||||
- 3
|
||||
- 2
|
||||
- 1
|
||||
- 0
|
||||
* .. _V4L2-PIX-FMT-YUV444:
|
||||
|
||||
- ``V4L2_PIX_FMT_YUV444``
|
||||
- 'Y444'
|
||||
-
|
||||
- Cb\ :sub:`3`
|
||||
- Cb\ :sub:`2`
|
||||
- Cb\ :sub:`1`
|
||||
- Cb\ :sub:`0`
|
||||
- Cr\ :sub:`3`
|
||||
- Cr\ :sub:`2`
|
||||
- Cr\ :sub:`1`
|
||||
- Cr\ :sub:`0`
|
||||
-
|
||||
- a\ :sub:`3`
|
||||
- a\ :sub:`2`
|
||||
- a\ :sub:`1`
|
||||
- a\ :sub:`0`
|
||||
- Y'\ :sub:`3`
|
||||
- Y'\ :sub:`2`
|
||||
- Y'\ :sub:`1`
|
||||
- Y'\ :sub:`0`
|
||||
* .. _V4L2-PIX-FMT-YUV555:
|
||||
|
||||
- ``V4L2_PIX_FMT_YUV555``
|
||||
- 'YUVO'
|
||||
-
|
||||
- Cb\ :sub:`2`
|
||||
- Cb\ :sub:`1`
|
||||
- Cb\ :sub:`0`
|
||||
- Cr\ :sub:`4`
|
||||
- Cr\ :sub:`3`
|
||||
- Cr\ :sub:`2`
|
||||
- Cr\ :sub:`1`
|
||||
- Cr\ :sub:`0`
|
||||
-
|
||||
- a
|
||||
- Y'\ :sub:`4`
|
||||
- Y'\ :sub:`3`
|
||||
- Y'\ :sub:`2`
|
||||
- Y'\ :sub:`1`
|
||||
- Y'\ :sub:`0`
|
||||
- Cb\ :sub:`4`
|
||||
- Cb\ :sub:`3`
|
||||
* .. _V4L2-PIX-FMT-YUV565:
|
||||
|
||||
- ``V4L2_PIX_FMT_YUV565``
|
||||
- 'YUVP'
|
||||
-
|
||||
- Cb\ :sub:`2`
|
||||
- Cb\ :sub:`1`
|
||||
- Cb\ :sub:`0`
|
||||
- Cr\ :sub:`4`
|
||||
- Cr\ :sub:`3`
|
||||
- Cr\ :sub:`2`
|
||||
- Cr\ :sub:`1`
|
||||
- Cr\ :sub:`0`
|
||||
-
|
||||
- Y'\ :sub:`4`
|
||||
- Y'\ :sub:`3`
|
||||
- Y'\ :sub:`2`
|
||||
- Y'\ :sub:`1`
|
||||
- Y'\ :sub:`0`
|
||||
- Cb\ :sub:`5`
|
||||
- Cb\ :sub:`4`
|
||||
- Cb\ :sub:`3`
|
||||
* .. _V4L2-PIX-FMT-YUV32:
|
||||
|
||||
- ``V4L2_PIX_FMT_YUV32``
|
||||
- 'YUV4'
|
||||
-
|
||||
- a\ :sub:`7`
|
||||
- a\ :sub:`6`
|
||||
- a\ :sub:`5`
|
||||
- a\ :sub:`4`
|
||||
- a\ :sub:`3`
|
||||
- a\ :sub:`2`
|
||||
- a\ :sub:`1`
|
||||
- a\ :sub:`0`
|
||||
-
|
||||
- Y'\ :sub:`7`
|
||||
- Y'\ :sub:`6`
|
||||
- Y'\ :sub:`5`
|
||||
- Y'\ :sub:`4`
|
||||
- Y'\ :sub:`3`
|
||||
- Y'\ :sub:`2`
|
||||
- Y'\ :sub:`1`
|
||||
- Y'\ :sub:`0`
|
||||
-
|
||||
- Cb\ :sub:`7`
|
||||
- Cb\ :sub:`6`
|
||||
- Cb\ :sub:`5`
|
||||
- Cb\ :sub:`4`
|
||||
- Cb\ :sub:`3`
|
||||
- Cb\ :sub:`2`
|
||||
- Cb\ :sub:`1`
|
||||
- Cb\ :sub:`0`
|
||||
-
|
||||
- Cr\ :sub:`7`
|
||||
- Cr\ :sub:`6`
|
||||
- Cr\ :sub:`5`
|
||||
- Cr\ :sub:`4`
|
||||
- Cr\ :sub:`3`
|
||||
- Cr\ :sub:`2`
|
||||
- Cr\ :sub:`1`
|
||||
- Cr\ :sub:`0`
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
|
|
@ -26,318 +26,214 @@ please make a proposal on the linux-media mailing list.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Identifier
|
||||
|
||||
- Code
|
||||
|
||||
- Details
|
||||
|
||||
- .. _V4L2-PIX-FMT-DV:
|
||||
|
||||
- ``V4L2_PIX_FMT_DV``
|
||||
|
||||
- 'dvsd'
|
||||
|
||||
- unknown
|
||||
|
||||
- .. _V4L2-PIX-FMT-ET61X251:
|
||||
|
||||
- ``V4L2_PIX_FMT_ET61X251``
|
||||
|
||||
- 'E625'
|
||||
|
||||
- Compressed format of the ET61X251 driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-HI240:
|
||||
|
||||
- ``V4L2_PIX_FMT_HI240``
|
||||
|
||||
- 'HI24'
|
||||
|
||||
- 8 bit RGB format used by the BTTV driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-HM12:
|
||||
|
||||
- ``V4L2_PIX_FMT_HM12``
|
||||
|
||||
- 'HM12'
|
||||
|
||||
- YUV 4:2:0 format used by the IVTV driver,
|
||||
`http://www.ivtvdriver.org/ <http://www.ivtvdriver.org/>`__
|
||||
|
||||
The format is documented in the kernel sources in the file
|
||||
``Documentation/video4linux/cx2341x/README.hm12``
|
||||
|
||||
- .. _V4L2-PIX-FMT-CPIA1:
|
||||
|
||||
- ``V4L2_PIX_FMT_CPIA1``
|
||||
|
||||
- 'CPIA'
|
||||
|
||||
- YUV format used by the gspca cpia1 driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-JPGL:
|
||||
|
||||
- ``V4L2_PIX_FMT_JPGL``
|
||||
|
||||
- 'JPGL'
|
||||
|
||||
- JPEG-Light format (Pegasus Lossless JPEG) used in Divio webcams NW
|
||||
80x.
|
||||
|
||||
- .. _V4L2-PIX-FMT-SPCA501:
|
||||
|
||||
- ``V4L2_PIX_FMT_SPCA501``
|
||||
|
||||
- 'S501'
|
||||
|
||||
- YUYV per line used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-SPCA505:
|
||||
|
||||
- ``V4L2_PIX_FMT_SPCA505``
|
||||
|
||||
- 'S505'
|
||||
|
||||
- YYUV per line used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-SPCA508:
|
||||
|
||||
- ``V4L2_PIX_FMT_SPCA508``
|
||||
|
||||
- 'S508'
|
||||
|
||||
- YUVY per line used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-SPCA561:
|
||||
|
||||
- ``V4L2_PIX_FMT_SPCA561``
|
||||
|
||||
- 'S561'
|
||||
|
||||
- Compressed GBRG Bayer format used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-PAC207:
|
||||
|
||||
- ``V4L2_PIX_FMT_PAC207``
|
||||
|
||||
- 'P207'
|
||||
|
||||
- Compressed BGGR Bayer format used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-MR97310A:
|
||||
|
||||
- ``V4L2_PIX_FMT_MR97310A``
|
||||
|
||||
- 'M310'
|
||||
|
||||
- Compressed BGGR Bayer format used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-JL2005BCD:
|
||||
|
||||
- ``V4L2_PIX_FMT_JL2005BCD``
|
||||
|
||||
- 'JL20'
|
||||
|
||||
- JPEG compressed RGGB Bayer format used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-OV511:
|
||||
|
||||
- ``V4L2_PIX_FMT_OV511``
|
||||
|
||||
- 'O511'
|
||||
|
||||
- OV511 JPEG format used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-OV518:
|
||||
|
||||
- ``V4L2_PIX_FMT_OV518``
|
||||
|
||||
- 'O518'
|
||||
|
||||
- OV518 JPEG format used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-PJPG:
|
||||
|
||||
- ``V4L2_PIX_FMT_PJPG``
|
||||
|
||||
- 'PJPG'
|
||||
|
||||
- Pixart 73xx JPEG format used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-SE401:
|
||||
|
||||
- ``V4L2_PIX_FMT_SE401``
|
||||
|
||||
- 'S401'
|
||||
|
||||
- Compressed RGB format used by the gspca se401 driver
|
||||
|
||||
- .. _V4L2-PIX-FMT-SQ905C:
|
||||
|
||||
- ``V4L2_PIX_FMT_SQ905C``
|
||||
|
||||
- '905C'
|
||||
|
||||
- Compressed RGGB bayer format used by the gspca driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-MJPEG:
|
||||
|
||||
- ``V4L2_PIX_FMT_MJPEG``
|
||||
|
||||
- 'MJPG'
|
||||
|
||||
- Compressed format used by the Zoran driver
|
||||
|
||||
- .. _V4L2-PIX-FMT-PWC1:
|
||||
|
||||
- ``V4L2_PIX_FMT_PWC1``
|
||||
|
||||
- 'PWC1'
|
||||
|
||||
- Compressed format of the PWC driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-PWC2:
|
||||
|
||||
- ``V4L2_PIX_FMT_PWC2``
|
||||
|
||||
- 'PWC2'
|
||||
|
||||
- Compressed format of the PWC driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-SN9C10X:
|
||||
|
||||
- ``V4L2_PIX_FMT_SN9C10X``
|
||||
|
||||
- 'S910'
|
||||
|
||||
- Compressed format of the SN9C102 driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-SN9C20X-I420:
|
||||
|
||||
- ``V4L2_PIX_FMT_SN9C20X_I420``
|
||||
|
||||
- 'S920'
|
||||
|
||||
- YUV 4:2:0 format of the gspca sn9c20x driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-SN9C2028:
|
||||
|
||||
- ``V4L2_PIX_FMT_SN9C2028``
|
||||
|
||||
- 'SONX'
|
||||
|
||||
- Compressed GBRG bayer format of the gspca sn9c2028 driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-STV0680:
|
||||
|
||||
- ``V4L2_PIX_FMT_STV0680``
|
||||
|
||||
- 'S680'
|
||||
|
||||
- Bayer format of the gspca stv0680 driver.
|
||||
|
||||
- .. _V4L2-PIX-FMT-WNVA:
|
||||
|
||||
- ``V4L2_PIX_FMT_WNVA``
|
||||
|
||||
- 'WNVA'
|
||||
|
||||
- Used by the Winnov Videum driver,
|
||||
`http://www.thedirks.org/winnov/ <http://www.thedirks.org/winnov/>`__
|
||||
|
||||
- .. _V4L2-PIX-FMT-TM6000:
|
||||
|
||||
- ``V4L2_PIX_FMT_TM6000``
|
||||
|
||||
- 'TM60'
|
||||
|
||||
- Used by Trident tm6000
|
||||
|
||||
- .. _V4L2-PIX-FMT-CIT-YYVYUY:
|
||||
|
||||
- ``V4L2_PIX_FMT_CIT_YYVYUY``
|
||||
|
||||
- 'CITV'
|
||||
|
||||
- Used by xirlink CIT, found at IBM webcams.
|
||||
|
||||
Uses one line of Y then 1 line of VYUY
|
||||
|
||||
- .. _V4L2-PIX-FMT-KONICA420:
|
||||
|
||||
- ``V4L2_PIX_FMT_KONICA420``
|
||||
|
||||
- 'KONI'
|
||||
|
||||
- Used by Konica webcams.
|
||||
|
||||
YUV420 planar in blocks of 256 pixels.
|
||||
|
||||
- .. _V4L2-PIX-FMT-YYUV:
|
||||
|
||||
- ``V4L2_PIX_FMT_YYUV``
|
||||
|
||||
- 'YYUV'
|
||||
|
||||
- unknown
|
||||
|
||||
- .. _V4L2-PIX-FMT-Y4:
|
||||
|
||||
- ``V4L2_PIX_FMT_Y4``
|
||||
|
||||
- 'Y04 '
|
||||
|
||||
- Old 4-bit greyscale format. Only the most significant 4 bits of
|
||||
each byte are used, the other bits are set to 0.
|
||||
|
||||
- .. _V4L2-PIX-FMT-Y6:
|
||||
|
||||
- ``V4L2_PIX_FMT_Y6``
|
||||
|
||||
- 'Y06 '
|
||||
|
||||
- Old 6-bit greyscale format. Only the most significant 6 bits of
|
||||
each byte are used, the other bits are set to 0.
|
||||
|
||||
- .. _V4L2-PIX-FMT-S5C-UYVY-JPG:
|
||||
|
||||
- ``V4L2_PIX_FMT_S5C_UYVY_JPG``
|
||||
|
||||
- 'S5CI'
|
||||
|
||||
- Two-planar format used by Samsung S5C73MX cameras. The first plane
|
||||
contains interleaved JPEG and UYVY image data, followed by meta
|
||||
data in form of an array of offsets to the UYVY data blocks. The
|
||||
actual pointer array follows immediately the interleaved JPEG/UYVY
|
||||
data, the number of entries in this array equals the height of the
|
||||
UYVY image. Each entry is a 4-byte unsigned integer in big endian
|
||||
order and it's an offset to a single pixel line of the UYVY image.
|
||||
The first plane can start either with JPEG or UYVY data chunk. The
|
||||
size of a single UYVY block equals the UYVY image's width
|
||||
multiplied by 2. The size of a JPEG chunk depends on the image and
|
||||
can vary with each line.
|
||||
|
||||
The second plane, at an offset of 4084 bytes, contains a 4-byte
|
||||
offset to the pointer array in the first plane. This offset is
|
||||
followed by a 4-byte value indicating size of the pointer array.
|
||||
All numbers in the second plane are also in big endian order.
|
||||
Remaining data in the second plane is undefined. The information
|
||||
in the second plane allows to easily find location of the pointer
|
||||
array, which can be different for each frame. The size of the
|
||||
pointer array is constant for given UYVY image height.
|
||||
|
||||
In order to extract UYVY and JPEG frames an application can
|
||||
initially set a data pointer to the start of first plane and then
|
||||
add an offset from the first entry of the pointers table. Such a
|
||||
pointer indicates start of an UYVY image pixel line. Whole UYVY
|
||||
line can be copied to a separate buffer. These steps should be
|
||||
repeated for each line, i.e. the number of entries in the pointer
|
||||
array. Anything what's in between the UYVY lines is JPEG data and
|
||||
should be concatenated to form the JPEG stream.
|
||||
* - Identifier
|
||||
- Code
|
||||
- Details
|
||||
* .. _V4L2-PIX-FMT-DV:
|
||||
|
||||
- ``V4L2_PIX_FMT_DV``
|
||||
- 'dvsd'
|
||||
- unknown
|
||||
* .. _V4L2-PIX-FMT-ET61X251:
|
||||
|
||||
- ``V4L2_PIX_FMT_ET61X251``
|
||||
- 'E625'
|
||||
- Compressed format of the ET61X251 driver.
|
||||
* .. _V4L2-PIX-FMT-HI240:
|
||||
|
||||
- ``V4L2_PIX_FMT_HI240``
|
||||
- 'HI24'
|
||||
- 8 bit RGB format used by the BTTV driver.
|
||||
* .. _V4L2-PIX-FMT-HM12:
|
||||
|
||||
- ``V4L2_PIX_FMT_HM12``
|
||||
- 'HM12'
|
||||
- YUV 4:2:0 format used by the IVTV driver,
|
||||
`http://www.ivtvdriver.org/ <http://www.ivtvdriver.org/>`__
|
||||
|
||||
The format is documented in the kernel sources in the file
|
||||
``Documentation/video4linux/cx2341x/README.hm12``
|
||||
* .. _V4L2-PIX-FMT-CPIA1:
|
||||
|
||||
- ``V4L2_PIX_FMT_CPIA1``
|
||||
- 'CPIA'
|
||||
- YUV format used by the gspca cpia1 driver.
|
||||
* .. _V4L2-PIX-FMT-JPGL:
|
||||
|
||||
- ``V4L2_PIX_FMT_JPGL``
|
||||
- 'JPGL'
|
||||
- JPEG-Light format (Pegasus Lossless JPEG) used in Divio webcams NW
|
||||
80x.
|
||||
* .. _V4L2-PIX-FMT-SPCA501:
|
||||
|
||||
- ``V4L2_PIX_FMT_SPCA501``
|
||||
- 'S501'
|
||||
- YUYV per line used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-SPCA505:
|
||||
|
||||
- ``V4L2_PIX_FMT_SPCA505``
|
||||
- 'S505'
|
||||
- YYUV per line used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-SPCA508:
|
||||
|
||||
- ``V4L2_PIX_FMT_SPCA508``
|
||||
- 'S508'
|
||||
- YUVY per line used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-SPCA561:
|
||||
|
||||
- ``V4L2_PIX_FMT_SPCA561``
|
||||
- 'S561'
|
||||
- Compressed GBRG Bayer format used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-PAC207:
|
||||
|
||||
- ``V4L2_PIX_FMT_PAC207``
|
||||
- 'P207'
|
||||
- Compressed BGGR Bayer format used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-MR97310A:
|
||||
|
||||
- ``V4L2_PIX_FMT_MR97310A``
|
||||
- 'M310'
|
||||
- Compressed BGGR Bayer format used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-JL2005BCD:
|
||||
|
||||
- ``V4L2_PIX_FMT_JL2005BCD``
|
||||
- 'JL20'
|
||||
- JPEG compressed RGGB Bayer format used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-OV511:
|
||||
|
||||
- ``V4L2_PIX_FMT_OV511``
|
||||
- 'O511'
|
||||
- OV511 JPEG format used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-OV518:
|
||||
|
||||
- ``V4L2_PIX_FMT_OV518``
|
||||
- 'O518'
|
||||
- OV518 JPEG format used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-PJPG:
|
||||
|
||||
- ``V4L2_PIX_FMT_PJPG``
|
||||
- 'PJPG'
|
||||
- Pixart 73xx JPEG format used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-SE401:
|
||||
|
||||
- ``V4L2_PIX_FMT_SE401``
|
||||
- 'S401'
|
||||
- Compressed RGB format used by the gspca se401 driver
|
||||
* .. _V4L2-PIX-FMT-SQ905C:
|
||||
|
||||
- ``V4L2_PIX_FMT_SQ905C``
|
||||
- '905C'
|
||||
- Compressed RGGB bayer format used by the gspca driver.
|
||||
* .. _V4L2-PIX-FMT-MJPEG:
|
||||
|
||||
- ``V4L2_PIX_FMT_MJPEG``
|
||||
- 'MJPG'
|
||||
- Compressed format used by the Zoran driver
|
||||
* .. _V4L2-PIX-FMT-PWC1:
|
||||
|
||||
- ``V4L2_PIX_FMT_PWC1``
|
||||
- 'PWC1'
|
||||
- Compressed format of the PWC driver.
|
||||
* .. _V4L2-PIX-FMT-PWC2:
|
||||
|
||||
- ``V4L2_PIX_FMT_PWC2``
|
||||
- 'PWC2'
|
||||
- Compressed format of the PWC driver.
|
||||
* .. _V4L2-PIX-FMT-SN9C10X:
|
||||
|
||||
- ``V4L2_PIX_FMT_SN9C10X``
|
||||
- 'S910'
|
||||
- Compressed format of the SN9C102 driver.
|
||||
* .. _V4L2-PIX-FMT-SN9C20X-I420:
|
||||
|
||||
- ``V4L2_PIX_FMT_SN9C20X_I420``
|
||||
- 'S920'
|
||||
- YUV 4:2:0 format of the gspca sn9c20x driver.
|
||||
* .. _V4L2-PIX-FMT-SN9C2028:
|
||||
|
||||
- ``V4L2_PIX_FMT_SN9C2028``
|
||||
- 'SONX'
|
||||
- Compressed GBRG bayer format of the gspca sn9c2028 driver.
|
||||
* .. _V4L2-PIX-FMT-STV0680:
|
||||
|
||||
- ``V4L2_PIX_FMT_STV0680``
|
||||
- 'S680'
|
||||
- Bayer format of the gspca stv0680 driver.
|
||||
* .. _V4L2-PIX-FMT-WNVA:
|
||||
|
||||
- ``V4L2_PIX_FMT_WNVA``
|
||||
- 'WNVA'
|
||||
- Used by the Winnov Videum driver,
|
||||
`http://www.thedirks.org/winnov/ <http://www.thedirks.org/winnov/>`__
|
||||
* .. _V4L2-PIX-FMT-TM6000:
|
||||
|
||||
- ``V4L2_PIX_FMT_TM6000``
|
||||
- 'TM60'
|
||||
- Used by Trident tm6000
|
||||
* .. _V4L2-PIX-FMT-CIT-YYVYUY:
|
||||
|
||||
- ``V4L2_PIX_FMT_CIT_YYVYUY``
|
||||
- 'CITV'
|
||||
- Used by xirlink CIT, found at IBM webcams.
|
||||
|
||||
Uses one line of Y then 1 line of VYUY
|
||||
* .. _V4L2-PIX-FMT-KONICA420:
|
||||
|
||||
- ``V4L2_PIX_FMT_KONICA420``
|
||||
- 'KONI'
|
||||
- Used by Konica webcams.
|
||||
|
||||
YUV420 planar in blocks of 256 pixels.
|
||||
* .. _V4L2-PIX-FMT-YYUV:
|
||||
|
||||
- ``V4L2_PIX_FMT_YYUV``
|
||||
- 'YYUV'
|
||||
- unknown
|
||||
* .. _V4L2-PIX-FMT-Y4:
|
||||
|
||||
- ``V4L2_PIX_FMT_Y4``
|
||||
- 'Y04 '
|
||||
- Old 4-bit greyscale format. Only the most significant 4 bits of
|
||||
each byte are used, the other bits are set to 0.
|
||||
* .. _V4L2-PIX-FMT-Y6:
|
||||
|
||||
- ``V4L2_PIX_FMT_Y6``
|
||||
- 'Y06 '
|
||||
- Old 6-bit greyscale format. Only the most significant 6 bits of
|
||||
each byte are used, the other bits are set to 0.
|
||||
* .. _V4L2-PIX-FMT-S5C-UYVY-JPG:
|
||||
|
||||
- ``V4L2_PIX_FMT_S5C_UYVY_JPG``
|
||||
- 'S5CI'
|
||||
- Two-planar format used by Samsung S5C73MX cameras. The first plane
|
||||
contains interleaved JPEG and UYVY image data, followed by meta
|
||||
data in form of an array of offsets to the UYVY data blocks. The
|
||||
actual pointer array follows immediately the interleaved JPEG/UYVY
|
||||
data, the number of entries in this array equals the height of the
|
||||
UYVY image. Each entry is a 4-byte unsigned integer in big endian
|
||||
order and it's an offset to a single pixel line of the UYVY image.
|
||||
The first plane can start either with JPEG or UYVY data chunk. The
|
||||
size of a single UYVY block equals the UYVY image's width
|
||||
multiplied by 2. The size of a JPEG chunk depends on the image and
|
||||
can vary with each line.
|
||||
|
||||
The second plane, at an offset of 4084 bytes, contains a 4-byte
|
||||
offset to the pointer array in the first plane. This offset is
|
||||
followed by a 4-byte value indicating size of the pointer array.
|
||||
All numbers in the second plane are also in big endian order.
|
||||
Remaining data in the second plane is undefined. The information
|
||||
in the second plane allows to easily find location of the pointer
|
||||
array, which can be different for each frame. The size of the
|
||||
pointer array is constant for given UYVY image height.
|
||||
|
||||
In order to extract UYVY and JPEG frames an application can
|
||||
initially set a data pointer to the start of first plane and then
|
||||
add an offset from the first entry of the pointers table. Such a
|
||||
pointer indicates start of an UYVY image pixel line. Whole UYVY
|
||||
line can be copied to a separate buffer. These steps should be
|
||||
repeated for each line, i.e. the number of entries in the pointer
|
||||
array. Anything what's in between the UYVY lines is JPEG data and
|
||||
should be concatenated to form the JPEG stream.
|
||||
|
||||
|
||||
|
||||
|
@ -350,15 +246,10 @@ please make a proposal on the linux-media mailing list.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_PIX_FMT_FLAG_PREMUL_ALPHA``
|
||||
|
||||
- 0x00000001
|
||||
|
||||
- The color values are premultiplied by the alpha channel value. For
|
||||
example, if a light blue pixel with 50% transparency was described
|
||||
by RGBA values (128, 192, 255, 128), the same pixel described with
|
||||
premultiplied colors would be described by RGBA values (64, 96,
|
||||
128, 128)
|
||||
* - ``V4L2_PIX_FMT_FLAG_PREMUL_ALPHA``
|
||||
- 0x00000001
|
||||
- The color values are premultiplied by the alpha channel value. For
|
||||
example, if a light blue pixel with 50% transparency was described
|
||||
by RGBA values (128, 192, 255, 128), the same pixel described with
|
||||
premultiplied colors would be described by RGBA values (64, 96,
|
||||
128, 128)
|
||||
|
|
|
@ -24,82 +24,39 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- B\ :sub:`00low`
|
||||
|
||||
- B\ :sub:`00high`
|
||||
|
||||
- G\ :sub:`01low`
|
||||
|
||||
- G\ :sub:`01high`
|
||||
|
||||
- B\ :sub:`02low`
|
||||
|
||||
- B\ :sub:`02high`
|
||||
|
||||
- G\ :sub:`03low`
|
||||
|
||||
- G\ :sub:`03high`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- G\ :sub:`10low`
|
||||
|
||||
- G\ :sub:`10high`
|
||||
|
||||
- R\ :sub:`11low`
|
||||
|
||||
- R\ :sub:`11high`
|
||||
|
||||
- G\ :sub:`12low`
|
||||
|
||||
- G\ :sub:`12high`
|
||||
|
||||
- R\ :sub:`13low`
|
||||
|
||||
- R\ :sub:`13high`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- B\ :sub:`20low`
|
||||
|
||||
- B\ :sub:`20high`
|
||||
|
||||
- G\ :sub:`21low`
|
||||
|
||||
- G\ :sub:`21high`
|
||||
|
||||
- B\ :sub:`22low`
|
||||
|
||||
- B\ :sub:`22high`
|
||||
|
||||
- G\ :sub:`23low`
|
||||
|
||||
- G\ :sub:`23high`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- G\ :sub:`30low`
|
||||
|
||||
- G\ :sub:`30high`
|
||||
|
||||
- R\ :sub:`31low`
|
||||
|
||||
- R\ :sub:`31high`
|
||||
|
||||
- G\ :sub:`32low`
|
||||
|
||||
- G\ :sub:`32high`
|
||||
|
||||
- R\ :sub:`33low`
|
||||
|
||||
- R\ :sub:`33high`
|
||||
* - start + 0:
|
||||
- B\ :sub:`00low`
|
||||
- B\ :sub:`00high`
|
||||
- G\ :sub:`01low`
|
||||
- G\ :sub:`01high`
|
||||
- B\ :sub:`02low`
|
||||
- B\ :sub:`02high`
|
||||
- G\ :sub:`03low`
|
||||
- G\ :sub:`03high`
|
||||
* - start + 8:
|
||||
- G\ :sub:`10low`
|
||||
- G\ :sub:`10high`
|
||||
- R\ :sub:`11low`
|
||||
- R\ :sub:`11high`
|
||||
- G\ :sub:`12low`
|
||||
- G\ :sub:`12high`
|
||||
- R\ :sub:`13low`
|
||||
- R\ :sub:`13high`
|
||||
* - start + 16:
|
||||
- B\ :sub:`20low`
|
||||
- B\ :sub:`20high`
|
||||
- G\ :sub:`21low`
|
||||
- G\ :sub:`21high`
|
||||
- B\ :sub:`22low`
|
||||
- B\ :sub:`22high`
|
||||
- G\ :sub:`23low`
|
||||
- G\ :sub:`23high`
|
||||
* - start + 24:
|
||||
- G\ :sub:`30low`
|
||||
- G\ :sub:`30high`
|
||||
- R\ :sub:`31low`
|
||||
- R\ :sub:`31high`
|
||||
- G\ :sub:`32low`
|
||||
- G\ :sub:`32high`
|
||||
- R\ :sub:`33low`
|
||||
- R\ :sub:`33high`
|
||||
|
|
|
@ -24,15 +24,7 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- I'\ :sub:`0`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 1:
|
||||
|
||||
- Q'\ :sub:`0`
|
||||
* - start + 0:
|
||||
- I'\ :sub:`0`
|
||||
* - start + 1:
|
||||
- Q'\ :sub:`0`
|
||||
|
|
|
@ -26,18 +26,9 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- I'\ :sub:`0[7:0]`
|
||||
|
||||
- I'\ :sub:`0[13:8]`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 2:
|
||||
|
||||
- Q'\ :sub:`0[7:0]`
|
||||
|
||||
- Q'\ :sub:`0[13:8]`
|
||||
* - start + 0:
|
||||
- I'\ :sub:`0[7:0]`
|
||||
- I'\ :sub:`0[13:8]`
|
||||
* - start + 2:
|
||||
- Q'\ :sub:`0[7:0]`
|
||||
- Q'\ :sub:`0[13:8]`
|
||||
|
|
|
@ -24,14 +24,7 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- I'\ :sub:`0`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 1:
|
||||
|
||||
- Q'\ :sub:`0`
|
||||
* - start + 0:
|
||||
- I'\ :sub:`0`
|
||||
* - start + 1:
|
||||
- Q'\ :sub:`0`
|
||||
|
|
|
@ -26,18 +26,9 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- I'\ :sub:`0[7:0]`
|
||||
|
||||
- I'\ :sub:`0[15:8]`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 2:
|
||||
|
||||
- Q'\ :sub:`0[7:0]`
|
||||
|
||||
- Q'\ :sub:`0[15:8]`
|
||||
* - start + 0:
|
||||
- I'\ :sub:`0[7:0]`
|
||||
- I'\ :sub:`0[15:8]`
|
||||
* - start + 2:
|
||||
- Q'\ :sub:`0[7:0]`
|
||||
- Q'\ :sub:`0[15:8]`
|
||||
|
|
|
@ -27,11 +27,6 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- I'\ :sub:`0[7:0]`
|
||||
|
||||
- I'\ :sub:`0[11:8]`
|
||||
* - start + 0:
|
||||
- I'\ :sub:`0[7:0]`
|
||||
- I'\ :sub:`0[11:8]`
|
||||
|
|
|
@ -38,83 +38,39 @@ are 0.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- B\ :sub:`00low`
|
||||
|
||||
- B\ :sub:`00high`
|
||||
|
||||
- G\ :sub:`01low`
|
||||
|
||||
- G\ :sub:`01high`
|
||||
|
||||
- B\ :sub:`02low`
|
||||
|
||||
- B\ :sub:`02high`
|
||||
|
||||
- G\ :sub:`03low`
|
||||
|
||||
- G\ :sub:`03high`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- G\ :sub:`10low`
|
||||
|
||||
- G\ :sub:`10high`
|
||||
|
||||
- R\ :sub:`11low`
|
||||
|
||||
- R\ :sub:`11high`
|
||||
|
||||
- G\ :sub:`12low`
|
||||
|
||||
- G\ :sub:`12high`
|
||||
|
||||
- R\ :sub:`13low`
|
||||
|
||||
- R\ :sub:`13high`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- B\ :sub:`20low`
|
||||
|
||||
- B\ :sub:`20high`
|
||||
|
||||
- G\ :sub:`21low`
|
||||
|
||||
- G\ :sub:`21high`
|
||||
|
||||
- B\ :sub:`22low`
|
||||
|
||||
- B\ :sub:`22high`
|
||||
|
||||
- G\ :sub:`23low`
|
||||
|
||||
- G\ :sub:`23high`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- G\ :sub:`30low`
|
||||
|
||||
- G\ :sub:`30high`
|
||||
|
||||
- R\ :sub:`31low`
|
||||
|
||||
- R\ :sub:`31high`
|
||||
|
||||
- G\ :sub:`32low`
|
||||
|
||||
- G\ :sub:`32high`
|
||||
|
||||
- R\ :sub:`33low`
|
||||
|
||||
- R\ :sub:`33high`
|
||||
* - start + 0:
|
||||
- B\ :sub:`00low`
|
||||
- B\ :sub:`00high`
|
||||
- G\ :sub:`01low`
|
||||
- G\ :sub:`01high`
|
||||
- B\ :sub:`02low`
|
||||
- B\ :sub:`02high`
|
||||
- G\ :sub:`03low`
|
||||
- G\ :sub:`03high`
|
||||
* - start + 8:
|
||||
- G\ :sub:`10low`
|
||||
- G\ :sub:`10high`
|
||||
- R\ :sub:`11low`
|
||||
- R\ :sub:`11high`
|
||||
- G\ :sub:`12low`
|
||||
- G\ :sub:`12high`
|
||||
- R\ :sub:`13low`
|
||||
- R\ :sub:`13high`
|
||||
* - start + 16:
|
||||
- B\ :sub:`20low`
|
||||
- B\ :sub:`20high`
|
||||
- G\ :sub:`21low`
|
||||
- G\ :sub:`21high`
|
||||
- B\ :sub:`22low`
|
||||
- B\ :sub:`22high`
|
||||
- G\ :sub:`23low`
|
||||
- G\ :sub:`23high`
|
||||
* - start + 24:
|
||||
- G\ :sub:`30low`
|
||||
- G\ :sub:`30high`
|
||||
- R\ :sub:`31low`
|
||||
- R\ :sub:`31high`
|
||||
- G\ :sub:`32low`
|
||||
- G\ :sub:`32high`
|
||||
- R\ :sub:`33low`
|
||||
- R\ :sub:`33high`
|
||||
|
|
|
@ -44,65 +44,34 @@ Each cell is one byte.
|
|||
:stub-columns: 0
|
||||
:widths: 12 8 8 8 8 68
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- B\ :sub:`00high`
|
||||
|
||||
- G\ :sub:`01high`
|
||||
|
||||
- B\ :sub:`02high`
|
||||
|
||||
- G\ :sub:`03high`
|
||||
|
||||
- G\ :sub:`03low`\ (bits 7--6) B\ :sub:`02low`\ (bits 5--4)
|
||||
G\ :sub:`01low`\ (bits 3--2) B\ :sub:`00low`\ (bits 1--0)
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 5:
|
||||
|
||||
- G\ :sub:`10high`
|
||||
|
||||
- R\ :sub:`11high`
|
||||
|
||||
- G\ :sub:`12high`
|
||||
|
||||
- R\ :sub:`13high`
|
||||
|
||||
- R\ :sub:`13low`\ (bits 7--6) G\ :sub:`12low`\ (bits 5--4)
|
||||
R\ :sub:`11low`\ (bits 3--2) G\ :sub:`10low`\ (bits 1--0)
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 10:
|
||||
|
||||
- B\ :sub:`20high`
|
||||
|
||||
- G\ :sub:`21high`
|
||||
|
||||
- B\ :sub:`22high`
|
||||
|
||||
- G\ :sub:`23high`
|
||||
|
||||
- G\ :sub:`23low`\ (bits 7--6) B\ :sub:`22low`\ (bits 5--4)
|
||||
G\ :sub:`21low`\ (bits 3--2) B\ :sub:`20low`\ (bits 1--0)
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 15:
|
||||
|
||||
- G\ :sub:`30high`
|
||||
|
||||
- R\ :sub:`31high`
|
||||
|
||||
- G\ :sub:`32high`
|
||||
|
||||
- R\ :sub:`33high`
|
||||
|
||||
- R\ :sub:`33low`\ (bits 7--6) G\ :sub:`32low`\ (bits 5--4)
|
||||
R\ :sub:`31low`\ (bits 3--2) G\ :sub:`30low`\ (bits 1--0)
|
||||
* - start + 0:
|
||||
- B\ :sub:`00high`
|
||||
- G\ :sub:`01high`
|
||||
- B\ :sub:`02high`
|
||||
- G\ :sub:`03high`
|
||||
- G\ :sub:`03low`\ (bits 7--6) B\ :sub:`02low`\ (bits 5--4)
|
||||
G\ :sub:`01low`\ (bits 3--2) B\ :sub:`00low`\ (bits 1--0)
|
||||
* - start + 5:
|
||||
- G\ :sub:`10high`
|
||||
- R\ :sub:`11high`
|
||||
- G\ :sub:`12high`
|
||||
- R\ :sub:`13high`
|
||||
- R\ :sub:`13low`\ (bits 7--6) G\ :sub:`12low`\ (bits 5--4)
|
||||
R\ :sub:`11low`\ (bits 3--2) G\ :sub:`10low`\ (bits 1--0)
|
||||
* - start + 10:
|
||||
- B\ :sub:`20high`
|
||||
- G\ :sub:`21high`
|
||||
- B\ :sub:`22high`
|
||||
- G\ :sub:`23high`
|
||||
- G\ :sub:`23low`\ (bits 7--6) B\ :sub:`22low`\ (bits 5--4)
|
||||
G\ :sub:`21low`\ (bits 3--2) B\ :sub:`20low`\ (bits 1--0)
|
||||
* - start + 15:
|
||||
- G\ :sub:`30high`
|
||||
- R\ :sub:`31high`
|
||||
- G\ :sub:`32high`
|
||||
- R\ :sub:`33high`
|
||||
- R\ :sub:`33low`\ (bits 7--6) G\ :sub:`32low`\ (bits 5--4)
|
||||
R\ :sub:`31low`\ (bits 3--2) G\ :sub:`30low`\ (bits 1--0)
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
|
|
@ -39,83 +39,39 @@ Each cell is one byte, the 4 most significant bits in the high bytes are
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- B\ :sub:`00low`
|
||||
|
||||
- B\ :sub:`00high`
|
||||
|
||||
- G\ :sub:`01low`
|
||||
|
||||
- G\ :sub:`01high`
|
||||
|
||||
- B\ :sub:`02low`
|
||||
|
||||
- B\ :sub:`02high`
|
||||
|
||||
- G\ :sub:`03low`
|
||||
|
||||
- G\ :sub:`03high`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- G\ :sub:`10low`
|
||||
|
||||
- G\ :sub:`10high`
|
||||
|
||||
- R\ :sub:`11low`
|
||||
|
||||
- R\ :sub:`11high`
|
||||
|
||||
- G\ :sub:`12low`
|
||||
|
||||
- G\ :sub:`12high`
|
||||
|
||||
- R\ :sub:`13low`
|
||||
|
||||
- R\ :sub:`13high`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- B\ :sub:`20low`
|
||||
|
||||
- B\ :sub:`20high`
|
||||
|
||||
- G\ :sub:`21low`
|
||||
|
||||
- G\ :sub:`21high`
|
||||
|
||||
- B\ :sub:`22low`
|
||||
|
||||
- B\ :sub:`22high`
|
||||
|
||||
- G\ :sub:`23low`
|
||||
|
||||
- G\ :sub:`23high`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- G\ :sub:`30low`
|
||||
|
||||
- G\ :sub:`30high`
|
||||
|
||||
- R\ :sub:`31low`
|
||||
|
||||
- R\ :sub:`31high`
|
||||
|
||||
- G\ :sub:`32low`
|
||||
|
||||
- G\ :sub:`32high`
|
||||
|
||||
- R\ :sub:`33low`
|
||||
|
||||
- R\ :sub:`33high`
|
||||
* - start + 0:
|
||||
- B\ :sub:`00low`
|
||||
- B\ :sub:`00high`
|
||||
- G\ :sub:`01low`
|
||||
- G\ :sub:`01high`
|
||||
- B\ :sub:`02low`
|
||||
- B\ :sub:`02high`
|
||||
- G\ :sub:`03low`
|
||||
- G\ :sub:`03high`
|
||||
* - start + 8:
|
||||
- G\ :sub:`10low`
|
||||
- G\ :sub:`10high`
|
||||
- R\ :sub:`11low`
|
||||
- R\ :sub:`11high`
|
||||
- G\ :sub:`12low`
|
||||
- G\ :sub:`12high`
|
||||
- R\ :sub:`13low`
|
||||
- R\ :sub:`13high`
|
||||
* - start + 16:
|
||||
- B\ :sub:`20low`
|
||||
- B\ :sub:`20high`
|
||||
- G\ :sub:`21low`
|
||||
- G\ :sub:`21high`
|
||||
- B\ :sub:`22low`
|
||||
- B\ :sub:`22high`
|
||||
- G\ :sub:`23low`
|
||||
- G\ :sub:`23high`
|
||||
* - start + 24:
|
||||
- G\ :sub:`30low`
|
||||
- G\ :sub:`30high`
|
||||
- R\ :sub:`31low`
|
||||
- R\ :sub:`31high`
|
||||
- G\ :sub:`32low`
|
||||
- G\ :sub:`32high`
|
||||
- R\ :sub:`33low`
|
||||
- R\ :sub:`33high`
|
||||
|
|
|
@ -32,51 +32,23 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- B\ :sub:`00`
|
||||
|
||||
- G\ :sub:`01`
|
||||
|
||||
- B\ :sub:`02`
|
||||
|
||||
- G\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- G\ :sub:`10`
|
||||
|
||||
- R\ :sub:`11`
|
||||
|
||||
- G\ :sub:`12`
|
||||
|
||||
- R\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- B\ :sub:`20`
|
||||
|
||||
- G\ :sub:`21`
|
||||
|
||||
- B\ :sub:`22`
|
||||
|
||||
- G\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- G\ :sub:`30`
|
||||
|
||||
- R\ :sub:`31`
|
||||
|
||||
- G\ :sub:`32`
|
||||
|
||||
- R\ :sub:`33`
|
||||
* - start + 0:
|
||||
- B\ :sub:`00`
|
||||
- G\ :sub:`01`
|
||||
- B\ :sub:`02`
|
||||
- G\ :sub:`03`
|
||||
* - start + 4:
|
||||
- G\ :sub:`10`
|
||||
- R\ :sub:`11`
|
||||
- G\ :sub:`12`
|
||||
- R\ :sub:`13`
|
||||
* - start + 8:
|
||||
- B\ :sub:`20`
|
||||
- G\ :sub:`21`
|
||||
- B\ :sub:`22`
|
||||
- G\ :sub:`23`
|
||||
* - start + 12:
|
||||
- G\ :sub:`30`
|
||||
- R\ :sub:`31`
|
||||
- G\ :sub:`32`
|
||||
- R\ :sub:`33`
|
||||
|
|
|
@ -30,51 +30,23 @@ Each cell is one byte.
|
|||
:stub-columns: 0
|
||||
:widths: 2 1 1 1 1
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- D'\ :sub:`00`
|
||||
|
||||
- D'\ :sub:`01`
|
||||
|
||||
- D'\ :sub:`02`
|
||||
|
||||
- D'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- D'\ :sub:`10`
|
||||
|
||||
- D'\ :sub:`11`
|
||||
|
||||
- D'\ :sub:`12`
|
||||
|
||||
- D'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- D'\ :sub:`20`
|
||||
|
||||
- D'\ :sub:`21`
|
||||
|
||||
- D'\ :sub:`22`
|
||||
|
||||
- D'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- D'\ :sub:`30`
|
||||
|
||||
- D'\ :sub:`31`
|
||||
|
||||
- D'\ :sub:`32`
|
||||
|
||||
- D'\ :sub:`33`
|
||||
* - start + 0:
|
||||
- D'\ :sub:`00`
|
||||
- D'\ :sub:`01`
|
||||
- D'\ :sub:`02`
|
||||
- D'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- D'\ :sub:`10`
|
||||
- D'\ :sub:`11`
|
||||
- D'\ :sub:`12`
|
||||
- D'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- D'\ :sub:`20`
|
||||
- D'\ :sub:`21`
|
||||
- D'\ :sub:`22`
|
||||
- D'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- D'\ :sub:`30`
|
||||
- D'\ :sub:`31`
|
||||
- D'\ :sub:`32`
|
||||
- D'\ :sub:`33`
|
||||
|
|
|
@ -29,83 +29,39 @@ Each cell is one byte.
|
|||
:stub-columns: 0
|
||||
:widths: 2 1 1 1 1 1 1 1 1
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- D'\ :sub:`00high`
|
||||
|
||||
- D'\ :sub:`00low`
|
||||
|
||||
- D'\ :sub:`01high`
|
||||
|
||||
- D'\ :sub:`01low`
|
||||
|
||||
- D'\ :sub:`02high`
|
||||
|
||||
- D'\ :sub:`02low`
|
||||
|
||||
- D'\ :sub:`03high`
|
||||
|
||||
- D'\ :sub:`03low`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- D'\ :sub:`10high`
|
||||
|
||||
- D'\ :sub:`10low`
|
||||
|
||||
- D'\ :sub:`11high`
|
||||
|
||||
- D'\ :sub:`11low`
|
||||
|
||||
- D'\ :sub:`12high`
|
||||
|
||||
- D'\ :sub:`12low`
|
||||
|
||||
- D'\ :sub:`13high`
|
||||
|
||||
- D'\ :sub:`13low`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- D'\ :sub:`20high`
|
||||
|
||||
- D'\ :sub:`20low`
|
||||
|
||||
- D'\ :sub:`21high`
|
||||
|
||||
- D'\ :sub:`21low`
|
||||
|
||||
- D'\ :sub:`22high`
|
||||
|
||||
- D'\ :sub:`22low`
|
||||
|
||||
- D'\ :sub:`23high`
|
||||
|
||||
- D'\ :sub:`23low`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- D'\ :sub:`30high`
|
||||
|
||||
- D'\ :sub:`30low`
|
||||
|
||||
- D'\ :sub:`31high`
|
||||
|
||||
- D'\ :sub:`31low`
|
||||
|
||||
- D'\ :sub:`32high`
|
||||
|
||||
- D'\ :sub:`32low`
|
||||
|
||||
- D'\ :sub:`33high`
|
||||
|
||||
- D'\ :sub:`33low`
|
||||
* - start + 0:
|
||||
- D'\ :sub:`00high`
|
||||
- D'\ :sub:`00low`
|
||||
- D'\ :sub:`01high`
|
||||
- D'\ :sub:`01low`
|
||||
- D'\ :sub:`02high`
|
||||
- D'\ :sub:`02low`
|
||||
- D'\ :sub:`03high`
|
||||
- D'\ :sub:`03low`
|
||||
* - start + 8:
|
||||
- D'\ :sub:`10high`
|
||||
- D'\ :sub:`10low`
|
||||
- D'\ :sub:`11high`
|
||||
- D'\ :sub:`11low`
|
||||
- D'\ :sub:`12high`
|
||||
- D'\ :sub:`12low`
|
||||
- D'\ :sub:`13high`
|
||||
- D'\ :sub:`13low`
|
||||
* - start + 16:
|
||||
- D'\ :sub:`20high`
|
||||
- D'\ :sub:`20low`
|
||||
- D'\ :sub:`21high`
|
||||
- D'\ :sub:`21low`
|
||||
- D'\ :sub:`22high`
|
||||
- D'\ :sub:`22low`
|
||||
- D'\ :sub:`23high`
|
||||
- D'\ :sub:`23low`
|
||||
* - start + 24:
|
||||
- D'\ :sub:`30high`
|
||||
- D'\ :sub:`30low`
|
||||
- D'\ :sub:`31high`
|
||||
- D'\ :sub:`31low`
|
||||
- D'\ :sub:`32high`
|
||||
- D'\ :sub:`32low`
|
||||
- D'\ :sub:`33high`
|
||||
- D'\ :sub:`33low`
|
||||
|
|
|
@ -28,51 +28,23 @@ Each cell is one byte.
|
|||
:stub-columns: 0
|
||||
:widths: 2 1 1 1 1
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- R'\ :sub:`00`
|
||||
|
||||
- R'\ :sub:`01`
|
||||
|
||||
- R'\ :sub:`02`
|
||||
|
||||
- R'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- R'\ :sub:`10`
|
||||
|
||||
- R'\ :sub:`11`
|
||||
|
||||
- R'\ :sub:`12`
|
||||
|
||||
- R'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- R'\ :sub:`20`
|
||||
|
||||
- R'\ :sub:`21`
|
||||
|
||||
- R'\ :sub:`22`
|
||||
|
||||
- R'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- R'\ :sub:`30`
|
||||
|
||||
- R'\ :sub:`31`
|
||||
|
||||
- R'\ :sub:`32`
|
||||
|
||||
- R'\ :sub:`33`
|
||||
* - start + 0:
|
||||
- R'\ :sub:`00`
|
||||
- R'\ :sub:`01`
|
||||
- R'\ :sub:`02`
|
||||
- R'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- R'\ :sub:`10`
|
||||
- R'\ :sub:`11`
|
||||
- R'\ :sub:`12`
|
||||
- R'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- R'\ :sub:`20`
|
||||
- R'\ :sub:`21`
|
||||
- R'\ :sub:`22`
|
||||
- R'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- R'\ :sub:`30`
|
||||
- R'\ :sub:`31`
|
||||
- R'\ :sub:`32`
|
||||
- R'\ :sub:`33`
|
||||
|
|
|
@ -28,83 +28,39 @@ Each cell is one byte.
|
|||
:stub-columns: 0
|
||||
:widths: 2 1 1 1 1 1 1 1 1
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- R'\ :sub:`00high`
|
||||
|
||||
- R'\ :sub:`00low`
|
||||
|
||||
- R'\ :sub:`01high`
|
||||
|
||||
- R'\ :sub:`01low`
|
||||
|
||||
- R'\ :sub:`02high`
|
||||
|
||||
- R'\ :sub:`02low`
|
||||
|
||||
- R'\ :sub:`03high`
|
||||
|
||||
- R'\ :sub:`03low`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- R'\ :sub:`10high`
|
||||
|
||||
- R'\ :sub:`10low`
|
||||
|
||||
- R'\ :sub:`11high`
|
||||
|
||||
- R'\ :sub:`11low`
|
||||
|
||||
- R'\ :sub:`12high`
|
||||
|
||||
- R'\ :sub:`12low`
|
||||
|
||||
- R'\ :sub:`13high`
|
||||
|
||||
- R'\ :sub:`13low`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- R'\ :sub:`20high`
|
||||
|
||||
- R'\ :sub:`20low`
|
||||
|
||||
- R'\ :sub:`21high`
|
||||
|
||||
- R'\ :sub:`21low`
|
||||
|
||||
- R'\ :sub:`22high`
|
||||
|
||||
- R'\ :sub:`22low`
|
||||
|
||||
- R'\ :sub:`23high`
|
||||
|
||||
- R'\ :sub:`23low`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- R'\ :sub:`30high`
|
||||
|
||||
- R'\ :sub:`30low`
|
||||
|
||||
- R'\ :sub:`31high`
|
||||
|
||||
- R'\ :sub:`31low`
|
||||
|
||||
- R'\ :sub:`32high`
|
||||
|
||||
- R'\ :sub:`32low`
|
||||
|
||||
- R'\ :sub:`33high`
|
||||
|
||||
- R'\ :sub:`33low`
|
||||
* - start + 0:
|
||||
- R'\ :sub:`00high`
|
||||
- R'\ :sub:`00low`
|
||||
- R'\ :sub:`01high`
|
||||
- R'\ :sub:`01low`
|
||||
- R'\ :sub:`02high`
|
||||
- R'\ :sub:`02low`
|
||||
- R'\ :sub:`03high`
|
||||
- R'\ :sub:`03low`
|
||||
* - start + 8:
|
||||
- R'\ :sub:`10high`
|
||||
- R'\ :sub:`10low`
|
||||
- R'\ :sub:`11high`
|
||||
- R'\ :sub:`11low`
|
||||
- R'\ :sub:`12high`
|
||||
- R'\ :sub:`12low`
|
||||
- R'\ :sub:`13high`
|
||||
- R'\ :sub:`13low`
|
||||
* - start + 16:
|
||||
- R'\ :sub:`20high`
|
||||
- R'\ :sub:`20low`
|
||||
- R'\ :sub:`21high`
|
||||
- R'\ :sub:`21low`
|
||||
- R'\ :sub:`22high`
|
||||
- R'\ :sub:`22low`
|
||||
- R'\ :sub:`23high`
|
||||
- R'\ :sub:`23low`
|
||||
* - start + 24:
|
||||
- R'\ :sub:`30high`
|
||||
- R'\ :sub:`30low`
|
||||
- R'\ :sub:`31high`
|
||||
- R'\ :sub:`31low`
|
||||
- R'\ :sub:`32high`
|
||||
- R'\ :sub:`32low`
|
||||
- R'\ :sub:`33high`
|
||||
- R'\ :sub:`33low`
|
||||
|
|
|
@ -25,51 +25,23 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
* - start + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 4:
|
||||
- Cb\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 8:
|
||||
- Cb\ :sub:`20`
|
||||
- Cr\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
- Cr\ :sub:`21`
|
||||
* - start + 12:
|
||||
- Cb\ :sub:`30`
|
||||
- Cr\ :sub:`30`
|
||||
- Cb\ :sub:`31`
|
||||
- Cr\ :sub:`31`
|
||||
|
|
|
@ -27,86 +27,42 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Y'\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Cb\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Cr\ :sub:`01`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 8:
|
||||
- Cb\ :sub:`10`
|
||||
- Y'\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Cb\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Cr\ :sub:`11`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`20`
|
||||
- Y'\ :sub:`20`
|
||||
- Cr\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Cb\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Cr\ :sub:`21`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 24:
|
||||
- Cb\ :sub:`30`
|
||||
- Y'\ :sub:`30`
|
||||
- Cr\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Cb\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Cr\ :sub:`31`
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -117,80 +73,38 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 1
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 2
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 3
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
|
|
|
@ -27,86 +27,42 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Y'\ :sub:`00`
|
||||
- Cb\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Cr\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Cb\ :sub:`01`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 8:
|
||||
- Cr\ :sub:`10`
|
||||
- Y'\ :sub:`10`
|
||||
- Cb\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Cr\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Cb\ :sub:`11`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 16:
|
||||
- Cr\ :sub:`20`
|
||||
- Y'\ :sub:`20`
|
||||
- Cb\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Cr\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Cb\ :sub:`21`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 24:
|
||||
- Cr\ :sub:`30`
|
||||
- Y'\ :sub:`30`
|
||||
- Cb\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Cr\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Cb\ :sub:`31`
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -115,80 +71,38 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
-
|
||||
- 2
|
||||
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
-
|
||||
- 2
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 1
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 2
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 3
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
|
|
|
@ -27,83 +27,39 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00low`
|
||||
|
||||
- Y'\ :sub:`00high`
|
||||
|
||||
- Y'\ :sub:`01low`
|
||||
|
||||
- Y'\ :sub:`01high`
|
||||
|
||||
- Y'\ :sub:`02low`
|
||||
|
||||
- Y'\ :sub:`02high`
|
||||
|
||||
- Y'\ :sub:`03low`
|
||||
|
||||
- Y'\ :sub:`03high`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`10low`
|
||||
|
||||
- Y'\ :sub:`10high`
|
||||
|
||||
- Y'\ :sub:`11low`
|
||||
|
||||
- Y'\ :sub:`11high`
|
||||
|
||||
- Y'\ :sub:`12low`
|
||||
|
||||
- Y'\ :sub:`12high`
|
||||
|
||||
- Y'\ :sub:`13low`
|
||||
|
||||
- Y'\ :sub:`13high`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Y'\ :sub:`20low`
|
||||
|
||||
- Y'\ :sub:`20high`
|
||||
|
||||
- Y'\ :sub:`21low`
|
||||
|
||||
- Y'\ :sub:`21high`
|
||||
|
||||
- Y'\ :sub:`22low`
|
||||
|
||||
- Y'\ :sub:`22high`
|
||||
|
||||
- Y'\ :sub:`23low`
|
||||
|
||||
- Y'\ :sub:`23high`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Y'\ :sub:`30low`
|
||||
|
||||
- Y'\ :sub:`30high`
|
||||
|
||||
- Y'\ :sub:`31low`
|
||||
|
||||
- Y'\ :sub:`31high`
|
||||
|
||||
- Y'\ :sub:`32low`
|
||||
|
||||
- Y'\ :sub:`32high`
|
||||
|
||||
- Y'\ :sub:`33low`
|
||||
|
||||
- Y'\ :sub:`33high`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00low`
|
||||
- Y'\ :sub:`00high`
|
||||
- Y'\ :sub:`01low`
|
||||
- Y'\ :sub:`01high`
|
||||
- Y'\ :sub:`02low`
|
||||
- Y'\ :sub:`02high`
|
||||
- Y'\ :sub:`03low`
|
||||
- Y'\ :sub:`03high`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`10low`
|
||||
- Y'\ :sub:`10high`
|
||||
- Y'\ :sub:`11low`
|
||||
- Y'\ :sub:`11high`
|
||||
- Y'\ :sub:`12low`
|
||||
- Y'\ :sub:`12high`
|
||||
- Y'\ :sub:`13low`
|
||||
- Y'\ :sub:`13high`
|
||||
* - start + 16:
|
||||
- Y'\ :sub:`20low`
|
||||
- Y'\ :sub:`20high`
|
||||
- Y'\ :sub:`21low`
|
||||
- Y'\ :sub:`21high`
|
||||
- Y'\ :sub:`22low`
|
||||
- Y'\ :sub:`22high`
|
||||
- Y'\ :sub:`23low`
|
||||
- Y'\ :sub:`23high`
|
||||
* - start + 24:
|
||||
- Y'\ :sub:`30low`
|
||||
- Y'\ :sub:`30high`
|
||||
- Y'\ :sub:`31low`
|
||||
- Y'\ :sub:`31high`
|
||||
- Y'\ :sub:`32low`
|
||||
- Y'\ :sub:`32high`
|
||||
- Y'\ :sub:`33low`
|
||||
- Y'\ :sub:`33high`
|
||||
|
|
|
@ -26,14 +26,8 @@ pixels.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Y'\ :sub:`00[9:2]`
|
||||
|
||||
- Y'\ :sub:`00[1:0]`\ Y'\ :sub:`01[9:4]`
|
||||
|
||||
- Y'\ :sub:`01[3:0]`\ Y'\ :sub:`02[9:6]`
|
||||
|
||||
- Y'\ :sub:`02[5:0]`\ Y'\ :sub:`03[9:8]`
|
||||
|
||||
- Y'\ :sub:`03[7:0]`
|
||||
* - Y'\ :sub:`00[9:2]`
|
||||
- Y'\ :sub:`00[1:0]`\ Y'\ :sub:`01[9:4]`
|
||||
- Y'\ :sub:`01[3:0]`\ Y'\ :sub:`02[9:6]`
|
||||
- Y'\ :sub:`02[5:0]`\ Y'\ :sub:`03[9:8]`
|
||||
- Y'\ :sub:`03[7:0]`
|
||||
|
|
|
@ -27,83 +27,39 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00low`
|
||||
|
||||
- Y'\ :sub:`00high`
|
||||
|
||||
- Y'\ :sub:`01low`
|
||||
|
||||
- Y'\ :sub:`01high`
|
||||
|
||||
- Y'\ :sub:`02low`
|
||||
|
||||
- Y'\ :sub:`02high`
|
||||
|
||||
- Y'\ :sub:`03low`
|
||||
|
||||
- Y'\ :sub:`03high`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`10low`
|
||||
|
||||
- Y'\ :sub:`10high`
|
||||
|
||||
- Y'\ :sub:`11low`
|
||||
|
||||
- Y'\ :sub:`11high`
|
||||
|
||||
- Y'\ :sub:`12low`
|
||||
|
||||
- Y'\ :sub:`12high`
|
||||
|
||||
- Y'\ :sub:`13low`
|
||||
|
||||
- Y'\ :sub:`13high`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Y'\ :sub:`20low`
|
||||
|
||||
- Y'\ :sub:`20high`
|
||||
|
||||
- Y'\ :sub:`21low`
|
||||
|
||||
- Y'\ :sub:`21high`
|
||||
|
||||
- Y'\ :sub:`22low`
|
||||
|
||||
- Y'\ :sub:`22high`
|
||||
|
||||
- Y'\ :sub:`23low`
|
||||
|
||||
- Y'\ :sub:`23high`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Y'\ :sub:`30low`
|
||||
|
||||
- Y'\ :sub:`30high`
|
||||
|
||||
- Y'\ :sub:`31low`
|
||||
|
||||
- Y'\ :sub:`31high`
|
||||
|
||||
- Y'\ :sub:`32low`
|
||||
|
||||
- Y'\ :sub:`32high`
|
||||
|
||||
- Y'\ :sub:`33low`
|
||||
|
||||
- Y'\ :sub:`33high`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00low`
|
||||
- Y'\ :sub:`00high`
|
||||
- Y'\ :sub:`01low`
|
||||
- Y'\ :sub:`01high`
|
||||
- Y'\ :sub:`02low`
|
||||
- Y'\ :sub:`02high`
|
||||
- Y'\ :sub:`03low`
|
||||
- Y'\ :sub:`03high`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`10low`
|
||||
- Y'\ :sub:`10high`
|
||||
- Y'\ :sub:`11low`
|
||||
- Y'\ :sub:`11high`
|
||||
- Y'\ :sub:`12low`
|
||||
- Y'\ :sub:`12high`
|
||||
- Y'\ :sub:`13low`
|
||||
- Y'\ :sub:`13high`
|
||||
* - start + 16:
|
||||
- Y'\ :sub:`20low`
|
||||
- Y'\ :sub:`20high`
|
||||
- Y'\ :sub:`21low`
|
||||
- Y'\ :sub:`21high`
|
||||
- Y'\ :sub:`22low`
|
||||
- Y'\ :sub:`22high`
|
||||
- Y'\ :sub:`23low`
|
||||
- Y'\ :sub:`23high`
|
||||
* - start + 24:
|
||||
- Y'\ :sub:`30low`
|
||||
- Y'\ :sub:`30high`
|
||||
- Y'\ :sub:`31low`
|
||||
- Y'\ :sub:`31high`
|
||||
- Y'\ :sub:`32low`
|
||||
- Y'\ :sub:`32high`
|
||||
- Y'\ :sub:`33low`
|
||||
- Y'\ :sub:`33high`
|
||||
|
|
|
@ -31,11 +31,6 @@ interleaved pixel.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Y'\ :sub:`0left[7:0]`
|
||||
|
||||
- Y'\ :sub:`0right[3:0]`\ Y'\ :sub:`0left[11:8]`
|
||||
|
||||
- Y'\ :sub:`0right[11:4]`
|
||||
* - Y'\ :sub:`0left[7:0]`
|
||||
- Y'\ :sub:`0right[3:0]`\ Y'\ :sub:`0left[11:8]`
|
||||
- Y'\ :sub:`0right[11:4]`
|
||||
|
|
|
@ -31,83 +31,39 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00high`
|
||||
|
||||
- Y'\ :sub:`00low`
|
||||
|
||||
- Y'\ :sub:`01high`
|
||||
|
||||
- Y'\ :sub:`01low`
|
||||
|
||||
- Y'\ :sub:`02high`
|
||||
|
||||
- Y'\ :sub:`02low`
|
||||
|
||||
- Y'\ :sub:`03high`
|
||||
|
||||
- Y'\ :sub:`03low`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`10high`
|
||||
|
||||
- Y'\ :sub:`10low`
|
||||
|
||||
- Y'\ :sub:`11high`
|
||||
|
||||
- Y'\ :sub:`11low`
|
||||
|
||||
- Y'\ :sub:`12high`
|
||||
|
||||
- Y'\ :sub:`12low`
|
||||
|
||||
- Y'\ :sub:`13high`
|
||||
|
||||
- Y'\ :sub:`13low`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Y'\ :sub:`20high`
|
||||
|
||||
- Y'\ :sub:`20low`
|
||||
|
||||
- Y'\ :sub:`21high`
|
||||
|
||||
- Y'\ :sub:`21low`
|
||||
|
||||
- Y'\ :sub:`22high`
|
||||
|
||||
- Y'\ :sub:`22low`
|
||||
|
||||
- Y'\ :sub:`23high`
|
||||
|
||||
- Y'\ :sub:`23low`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Y'\ :sub:`30high`
|
||||
|
||||
- Y'\ :sub:`30low`
|
||||
|
||||
- Y'\ :sub:`31high`
|
||||
|
||||
- Y'\ :sub:`31low`
|
||||
|
||||
- Y'\ :sub:`32high`
|
||||
|
||||
- Y'\ :sub:`32low`
|
||||
|
||||
- Y'\ :sub:`33high`
|
||||
|
||||
- Y'\ :sub:`33low`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00high`
|
||||
- Y'\ :sub:`00low`
|
||||
- Y'\ :sub:`01high`
|
||||
- Y'\ :sub:`01low`
|
||||
- Y'\ :sub:`02high`
|
||||
- Y'\ :sub:`02low`
|
||||
- Y'\ :sub:`03high`
|
||||
- Y'\ :sub:`03low`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`10high`
|
||||
- Y'\ :sub:`10low`
|
||||
- Y'\ :sub:`11high`
|
||||
- Y'\ :sub:`11low`
|
||||
- Y'\ :sub:`12high`
|
||||
- Y'\ :sub:`12low`
|
||||
- Y'\ :sub:`13high`
|
||||
- Y'\ :sub:`13low`
|
||||
* - start + 16:
|
||||
- Y'\ :sub:`20high`
|
||||
- Y'\ :sub:`20low`
|
||||
- Y'\ :sub:`21high`
|
||||
- Y'\ :sub:`21low`
|
||||
- Y'\ :sub:`22high`
|
||||
- Y'\ :sub:`22low`
|
||||
- Y'\ :sub:`23high`
|
||||
- Y'\ :sub:`23low`
|
||||
* - start + 24:
|
||||
- Y'\ :sub:`30high`
|
||||
- Y'\ :sub:`30low`
|
||||
- Y'\ :sub:`31high`
|
||||
- Y'\ :sub:`31low`
|
||||
- Y'\ :sub:`32high`
|
||||
- Y'\ :sub:`32low`
|
||||
- Y'\ :sub:`33high`
|
||||
- Y'\ :sub:`33low`
|
||||
|
|
|
@ -31,83 +31,39 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00low`
|
||||
|
||||
- Y'\ :sub:`00high`
|
||||
|
||||
- Y'\ :sub:`01low`
|
||||
|
||||
- Y'\ :sub:`01high`
|
||||
|
||||
- Y'\ :sub:`02low`
|
||||
|
||||
- Y'\ :sub:`02high`
|
||||
|
||||
- Y'\ :sub:`03low`
|
||||
|
||||
- Y'\ :sub:`03high`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`10low`
|
||||
|
||||
- Y'\ :sub:`10high`
|
||||
|
||||
- Y'\ :sub:`11low`
|
||||
|
||||
- Y'\ :sub:`11high`
|
||||
|
||||
- Y'\ :sub:`12low`
|
||||
|
||||
- Y'\ :sub:`12high`
|
||||
|
||||
- Y'\ :sub:`13low`
|
||||
|
||||
- Y'\ :sub:`13high`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Y'\ :sub:`20low`
|
||||
|
||||
- Y'\ :sub:`20high`
|
||||
|
||||
- Y'\ :sub:`21low`
|
||||
|
||||
- Y'\ :sub:`21high`
|
||||
|
||||
- Y'\ :sub:`22low`
|
||||
|
||||
- Y'\ :sub:`22high`
|
||||
|
||||
- Y'\ :sub:`23low`
|
||||
|
||||
- Y'\ :sub:`23high`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Y'\ :sub:`30low`
|
||||
|
||||
- Y'\ :sub:`30high`
|
||||
|
||||
- Y'\ :sub:`31low`
|
||||
|
||||
- Y'\ :sub:`31high`
|
||||
|
||||
- Y'\ :sub:`32low`
|
||||
|
||||
- Y'\ :sub:`32high`
|
||||
|
||||
- Y'\ :sub:`33low`
|
||||
|
||||
- Y'\ :sub:`33high`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00low`
|
||||
- Y'\ :sub:`00high`
|
||||
- Y'\ :sub:`01low`
|
||||
- Y'\ :sub:`01high`
|
||||
- Y'\ :sub:`02low`
|
||||
- Y'\ :sub:`02high`
|
||||
- Y'\ :sub:`03low`
|
||||
- Y'\ :sub:`03high`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`10low`
|
||||
- Y'\ :sub:`10high`
|
||||
- Y'\ :sub:`11low`
|
||||
- Y'\ :sub:`11high`
|
||||
- Y'\ :sub:`12low`
|
||||
- Y'\ :sub:`12high`
|
||||
- Y'\ :sub:`13low`
|
||||
- Y'\ :sub:`13high`
|
||||
* - start + 16:
|
||||
- Y'\ :sub:`20low`
|
||||
- Y'\ :sub:`20high`
|
||||
- Y'\ :sub:`21low`
|
||||
- Y'\ :sub:`21high`
|
||||
- Y'\ :sub:`22low`
|
||||
- Y'\ :sub:`22high`
|
||||
- Y'\ :sub:`23low`
|
||||
- Y'\ :sub:`23high`
|
||||
* - start + 24:
|
||||
- Y'\ :sub:`30low`
|
||||
- Y'\ :sub:`30high`
|
||||
- Y'\ :sub:`31low`
|
||||
- Y'\ :sub:`31high`
|
||||
- Y'\ :sub:`32low`
|
||||
- Y'\ :sub:`32high`
|
||||
- Y'\ :sub:`33low`
|
||||
- Y'\ :sub:`33high`
|
||||
|
|
|
@ -34,118 +34,58 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- Y'\ :sub:`04`
|
||||
|
||||
- Y'\ :sub:`05`
|
||||
|
||||
- Y'\ :sub:`06`
|
||||
|
||||
- Y'\ :sub:`07`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- Y'\ :sub:`14`
|
||||
|
||||
- Y'\ :sub:`15`
|
||||
|
||||
- Y'\ :sub:`16`
|
||||
|
||||
- Y'\ :sub:`17`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- Y'\ :sub:`24`
|
||||
|
||||
- Y'\ :sub:`25`
|
||||
|
||||
- Y'\ :sub:`26`
|
||||
|
||||
- Y'\ :sub:`27`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 36:
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- Y'\ :sub:`34`
|
||||
|
||||
- Y'\ :sub:`35`
|
||||
|
||||
- Y'\ :sub:`36`
|
||||
|
||||
- Y'\ :sub:`37`
|
||||
* - start + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Y'\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Cb\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Cr\ :sub:`01`
|
||||
- Y'\ :sub:`03`
|
||||
- Y'\ :sub:`04`
|
||||
- Y'\ :sub:`05`
|
||||
- Y'\ :sub:`06`
|
||||
- Y'\ :sub:`07`
|
||||
* - start + 12:
|
||||
- Cb\ :sub:`10`
|
||||
- Y'\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Cb\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Cr\ :sub:`11`
|
||||
- Y'\ :sub:`13`
|
||||
- Y'\ :sub:`14`
|
||||
- Y'\ :sub:`15`
|
||||
- Y'\ :sub:`16`
|
||||
- Y'\ :sub:`17`
|
||||
* - start + 24:
|
||||
- Cb\ :sub:`20`
|
||||
- Y'\ :sub:`20`
|
||||
- Cr\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Cb\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Cr\ :sub:`21`
|
||||
- Y'\ :sub:`23`
|
||||
- Y'\ :sub:`24`
|
||||
- Y'\ :sub:`25`
|
||||
- Y'\ :sub:`26`
|
||||
- Y'\ :sub:`27`
|
||||
* - start + 36:
|
||||
- Cb\ :sub:`30`
|
||||
- Y'\ :sub:`30`
|
||||
- Cr\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Cb\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Cr\ :sub:`31`
|
||||
- Y'\ :sub:`33`
|
||||
- Y'\ :sub:`34`
|
||||
- Y'\ :sub:`35`
|
||||
- Y'\ :sub:`36`
|
||||
- Y'\ :sub:`37`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -154,120 +94,58 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
- 1
|
||||
|
||||
-
|
||||
- 2
|
||||
|
||||
- 3
|
||||
|
||||
- 4
|
||||
|
||||
- 5
|
||||
|
||||
-
|
||||
- 6
|
||||
|
||||
- 7
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
- 1
|
||||
-
|
||||
- 2
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
-
|
||||
- 6
|
||||
- 7
|
||||
* - 0
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
* - 1
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
* - 2
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
* - 3
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
|
|
|
@ -28,83 +28,39 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00left`
|
||||
|
||||
- Y'\ :sub:`00right`
|
||||
|
||||
- Y'\ :sub:`01left`
|
||||
|
||||
- Y'\ :sub:`01right`
|
||||
|
||||
- Y'\ :sub:`02left`
|
||||
|
||||
- Y'\ :sub:`02right`
|
||||
|
||||
- Y'\ :sub:`03left`
|
||||
|
||||
- Y'\ :sub:`03right`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`10left`
|
||||
|
||||
- Y'\ :sub:`10right`
|
||||
|
||||
- Y'\ :sub:`11left`
|
||||
|
||||
- Y'\ :sub:`11right`
|
||||
|
||||
- Y'\ :sub:`12left`
|
||||
|
||||
- Y'\ :sub:`12right`
|
||||
|
||||
- Y'\ :sub:`13left`
|
||||
|
||||
- Y'\ :sub:`13right`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Y'\ :sub:`20left`
|
||||
|
||||
- Y'\ :sub:`20right`
|
||||
|
||||
- Y'\ :sub:`21left`
|
||||
|
||||
- Y'\ :sub:`21right`
|
||||
|
||||
- Y'\ :sub:`22left`
|
||||
|
||||
- Y'\ :sub:`22right`
|
||||
|
||||
- Y'\ :sub:`23left`
|
||||
|
||||
- Y'\ :sub:`23right`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Y'\ :sub:`30left`
|
||||
|
||||
- Y'\ :sub:`30right`
|
||||
|
||||
- Y'\ :sub:`31left`
|
||||
|
||||
- Y'\ :sub:`31right`
|
||||
|
||||
- Y'\ :sub:`32left`
|
||||
|
||||
- Y'\ :sub:`32right`
|
||||
|
||||
- Y'\ :sub:`33left`
|
||||
|
||||
- Y'\ :sub:`33right`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00left`
|
||||
- Y'\ :sub:`00right`
|
||||
- Y'\ :sub:`01left`
|
||||
- Y'\ :sub:`01right`
|
||||
- Y'\ :sub:`02left`
|
||||
- Y'\ :sub:`02right`
|
||||
- Y'\ :sub:`03left`
|
||||
- Y'\ :sub:`03right`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`10left`
|
||||
- Y'\ :sub:`10right`
|
||||
- Y'\ :sub:`11left`
|
||||
- Y'\ :sub:`11right`
|
||||
- Y'\ :sub:`12left`
|
||||
- Y'\ :sub:`12right`
|
||||
- Y'\ :sub:`13left`
|
||||
- Y'\ :sub:`13right`
|
||||
* - start + 16:
|
||||
- Y'\ :sub:`20left`
|
||||
- Y'\ :sub:`20right`
|
||||
- Y'\ :sub:`21left`
|
||||
- Y'\ :sub:`21right`
|
||||
- Y'\ :sub:`22left`
|
||||
- Y'\ :sub:`22right`
|
||||
- Y'\ :sub:`23left`
|
||||
- Y'\ :sub:`23right`
|
||||
* - start + 24:
|
||||
- Y'\ :sub:`30left`
|
||||
- Y'\ :sub:`30right`
|
||||
- Y'\ :sub:`31left`
|
||||
- Y'\ :sub:`31right`
|
||||
- Y'\ :sub:`32left`
|
||||
- Y'\ :sub:`32right`
|
||||
- Y'\ :sub:`33left`
|
||||
- Y'\ :sub:`33right`
|
||||
|
|
|
@ -41,66 +41,30 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start + 17:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cr\ :sub:`00`
|
||||
* - start + 17:
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -111,97 +75,53 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
-
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
|
||||
- .. row 8
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
-
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
* - 1
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
-
|
||||
* - 2
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
* - 3
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
|
|
|
@ -37,102 +37,42 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start + 17:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start + 18:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- .. row 8
|
||||
|
||||
- start + 19:
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- .. row 9
|
||||
|
||||
- start + 20:
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- .. row 10
|
||||
|
||||
- start + 21:
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- .. row 11
|
||||
|
||||
- start + 22:
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- .. row 12
|
||||
|
||||
- start + 23:
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`00`
|
||||
* - start + 17:
|
||||
- Cb\ :sub:`10`
|
||||
* - start + 18:
|
||||
- Cb\ :sub:`20`
|
||||
* - start + 19:
|
||||
- Cb\ :sub:`30`
|
||||
* - start + 20:
|
||||
- Cr\ :sub:`00`
|
||||
* - start + 21:
|
||||
- Cr\ :sub:`10`
|
||||
* - start + 22:
|
||||
- Cr\ :sub:`20`
|
||||
* - start + 23:
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -143,71 +83,33 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
- 1
|
||||
|
||||
-
|
||||
- 2
|
||||
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
- 1
|
||||
-
|
||||
- 2
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
* - 1
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
* - 2
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
* - 3
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
|
|
|
@ -42,86 +42,38 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start + 18:
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start + 20:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- .. row 8
|
||||
|
||||
- start + 22:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 18:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 20:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start + 22:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -132,107 +84,60 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
-
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 8
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
-
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 1
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
* - 2
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 3
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
|
|
|
@ -49,94 +49,40 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start0 + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start0 + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start0 + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start0 + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start1 + 0:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start1 + 2:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
|
||||
- .. row 9
|
||||
|
||||
- start2 + 0:
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 10
|
||||
|
||||
- start2 + 2:
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start1 + 2:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
* -
|
||||
* - start2 + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start2 + 2:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -147,107 +93,60 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
-
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
|
||||
-
|
||||
|
||||
- .. row 8
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
-
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 1
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
* - 2
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
* -
|
||||
-
|
||||
- C
|
||||
-
|
||||
-
|
||||
-
|
||||
- C
|
||||
-
|
||||
* - 3
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
|
|
|
@ -48,126 +48,52 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start0 + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start0 + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start0 + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start0 + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start1 + 0:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start1 + 2:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- .. row 8
|
||||
|
||||
- start1 + 4:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- .. row 9
|
||||
|
||||
- start1 + 6:
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
- .. row 10
|
||||
|
||||
-
|
||||
|
||||
- .. row 11
|
||||
|
||||
- start2 + 0:
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 12
|
||||
|
||||
- start2 + 2:
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- .. row 13
|
||||
|
||||
- start2 + 4:
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- .. row 14
|
||||
|
||||
- start2 + 6:
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start1 + 2:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
* - start1 + 4:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
* - start1 + 6:
|
||||
- Cb\ :sub:`30`
|
||||
- Cb\ :sub:`31`
|
||||
* -
|
||||
* - start2 + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start2 + 2:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
* - start2 + 4:
|
||||
- Cr\ :sub:`20`
|
||||
- Cr\ :sub:`21`
|
||||
* - start2 + 6:
|
||||
- Cr\ :sub:`30`
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -178,80 +104,38 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 1
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 2
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 3
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
|
|
|
@ -38,118 +38,50 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start + 18:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start + 20:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- .. row 8
|
||||
|
||||
- start + 22:
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
- .. row 9
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 10
|
||||
|
||||
- start + 26:
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- .. row 11
|
||||
|
||||
- start + 28:
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- .. row 12
|
||||
|
||||
- start + 30:
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* - start + 16:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
* - start + 18:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
* - start + 20:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
* - start + 22:
|
||||
- Cb\ :sub:`30`
|
||||
- Cb\ :sub:`31`
|
||||
* - start + 24:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 26:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 28:
|
||||
- Cr\ :sub:`20`
|
||||
- Cr\ :sub:`21`
|
||||
* - start + 30:
|
||||
- Cr\ :sub:`30`
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -160,80 +92,38 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 1
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 2
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 3
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
|
|
|
@ -42,158 +42,68 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start0 + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start0 + 4:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start0 + 8:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start0 + 12:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- start1 + 0:
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Cb\ :sub:`02`
|
||||
|
||||
- Cb\ :sub:`03`
|
||||
|
||||
- .. row 7
|
||||
|
||||
- start1 + 4:
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Cb\ :sub:`12`
|
||||
|
||||
- Cb\ :sub:`13`
|
||||
|
||||
- .. row 8
|
||||
|
||||
- start1 + 8:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- Cb\ :sub:`22`
|
||||
|
||||
- Cb\ :sub:`23`
|
||||
|
||||
- .. row 9
|
||||
|
||||
- start1 + 12:
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- Cb\ :sub:`32`
|
||||
|
||||
- Cb\ :sub:`33`
|
||||
|
||||
- .. row 10
|
||||
|
||||
-
|
||||
|
||||
- .. row 11
|
||||
|
||||
- start2 + 0:
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- Cr\ :sub:`02`
|
||||
|
||||
- Cr\ :sub:`03`
|
||||
|
||||
- .. row 12
|
||||
|
||||
- start2 + 4:
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- Cr\ :sub:`12`
|
||||
|
||||
- Cr\ :sub:`13`
|
||||
|
||||
- .. row 13
|
||||
|
||||
- start2 + 8:
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- Cr\ :sub:`22`
|
||||
|
||||
- Cr\ :sub:`23`
|
||||
|
||||
- .. row 14
|
||||
|
||||
- start2 + 12:
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
- Cr\ :sub:`32`
|
||||
|
||||
- Cr\ :sub:`33`
|
||||
* - start0 + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Y'\ :sub:`02`
|
||||
- Y'\ :sub:`03`
|
||||
* - start0 + 4:
|
||||
- Y'\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Y'\ :sub:`12`
|
||||
- Y'\ :sub:`13`
|
||||
* - start0 + 8:
|
||||
- Y'\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Y'\ :sub:`22`
|
||||
- Y'\ :sub:`23`
|
||||
* - start0 + 12:
|
||||
- Y'\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Y'\ :sub:`32`
|
||||
- Y'\ :sub:`33`
|
||||
* -
|
||||
* - start1 + 0:
|
||||
- Cb\ :sub:`00`
|
||||
- Cb\ :sub:`01`
|
||||
- Cb\ :sub:`02`
|
||||
- Cb\ :sub:`03`
|
||||
* - start1 + 4:
|
||||
- Cb\ :sub:`10`
|
||||
- Cb\ :sub:`11`
|
||||
- Cb\ :sub:`12`
|
||||
- Cb\ :sub:`13`
|
||||
* - start1 + 8:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
- Cb\ :sub:`22`
|
||||
- Cb\ :sub:`23`
|
||||
* - start1 + 12:
|
||||
- Cb\ :sub:`20`
|
||||
- Cb\ :sub:`21`
|
||||
- Cb\ :sub:`32`
|
||||
- Cb\ :sub:`33`
|
||||
* -
|
||||
* - start2 + 0:
|
||||
- Cr\ :sub:`00`
|
||||
- Cr\ :sub:`01`
|
||||
- Cr\ :sub:`02`
|
||||
- Cr\ :sub:`03`
|
||||
* - start2 + 4:
|
||||
- Cr\ :sub:`10`
|
||||
- Cr\ :sub:`11`
|
||||
- Cr\ :sub:`12`
|
||||
- Cr\ :sub:`13`
|
||||
* - start2 + 8:
|
||||
- Cr\ :sub:`20`
|
||||
- Cr\ :sub:`21`
|
||||
- Cr\ :sub:`22`
|
||||
- Cr\ :sub:`23`
|
||||
* - start2 + 12:
|
||||
- Cr\ :sub:`30`
|
||||
- Cr\ :sub:`31`
|
||||
- Cr\ :sub:`32`
|
||||
- Cr\ :sub:`33`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -204,62 +114,28 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- .. row 3
|
||||
|
||||
- 1
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 2
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- .. row 5
|
||||
|
||||
- 3
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
|
||||
- YC
|
||||
* -
|
||||
- 0
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
* - 0
|
||||
- YC
|
||||
- YC
|
||||
- YC
|
||||
- YC
|
||||
* - 1
|
||||
- YC
|
||||
- YC
|
||||
- YC
|
||||
- YC
|
||||
* - 2
|
||||
- YC
|
||||
- YC
|
||||
- YC
|
||||
- YC
|
||||
* - 3
|
||||
- YC
|
||||
- YC
|
||||
- YC
|
||||
- YC
|
||||
|
|
|
@ -30,86 +30,42 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Cb\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Cr\ :sub:`00`
|
||||
- Y'\ :sub:`02`
|
||||
- Cb\ :sub:`01`
|
||||
- Y'\ :sub:`03`
|
||||
- Cr\ :sub:`01`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`10`
|
||||
- Cb\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Cr\ :sub:`10`
|
||||
- Y'\ :sub:`12`
|
||||
- Cb\ :sub:`11`
|
||||
- Y'\ :sub:`13`
|
||||
- Cr\ :sub:`11`
|
||||
* - start + 16:
|
||||
- Y'\ :sub:`20`
|
||||
- Cb\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Cr\ :sub:`20`
|
||||
- Y'\ :sub:`22`
|
||||
- Cb\ :sub:`21`
|
||||
- Y'\ :sub:`23`
|
||||
- Cr\ :sub:`21`
|
||||
* - start + 24:
|
||||
- Y'\ :sub:`30`
|
||||
- Cb\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Cr\ :sub:`30`
|
||||
- Y'\ :sub:`32`
|
||||
- Cb\ :sub:`31`
|
||||
- Y'\ :sub:`33`
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -120,85 +76,43 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
-
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
-
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
-
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 1
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 2
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 3
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
-
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
|
|
|
@ -27,86 +27,42 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Y'\ :sub:`00`
|
||||
|
||||
- Cr\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`01`
|
||||
|
||||
- Cb\ :sub:`00`
|
||||
|
||||
- Y'\ :sub:`02`
|
||||
|
||||
- Cr\ :sub:`01`
|
||||
|
||||
- Y'\ :sub:`03`
|
||||
|
||||
- Cb\ :sub:`01`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Y'\ :sub:`10`
|
||||
|
||||
- Cr\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`11`
|
||||
|
||||
- Cb\ :sub:`10`
|
||||
|
||||
- Y'\ :sub:`12`
|
||||
|
||||
- Cr\ :sub:`11`
|
||||
|
||||
- Y'\ :sub:`13`
|
||||
|
||||
- Cb\ :sub:`11`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Y'\ :sub:`20`
|
||||
|
||||
- Cr\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`21`
|
||||
|
||||
- Cb\ :sub:`20`
|
||||
|
||||
- Y'\ :sub:`22`
|
||||
|
||||
- Cr\ :sub:`21`
|
||||
|
||||
- Y'\ :sub:`23`
|
||||
|
||||
- Cb\ :sub:`21`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Y'\ :sub:`30`
|
||||
|
||||
- Cr\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`31`
|
||||
|
||||
- Cb\ :sub:`30`
|
||||
|
||||
- Y'\ :sub:`32`
|
||||
|
||||
- Cr\ :sub:`31`
|
||||
|
||||
- Y'\ :sub:`33`
|
||||
|
||||
- Cb\ :sub:`31`
|
||||
* - start + 0:
|
||||
- Y'\ :sub:`00`
|
||||
- Cr\ :sub:`00`
|
||||
- Y'\ :sub:`01`
|
||||
- Cb\ :sub:`00`
|
||||
- Y'\ :sub:`02`
|
||||
- Cr\ :sub:`01`
|
||||
- Y'\ :sub:`03`
|
||||
- Cb\ :sub:`01`
|
||||
* - start + 8:
|
||||
- Y'\ :sub:`10`
|
||||
- Cr\ :sub:`10`
|
||||
- Y'\ :sub:`11`
|
||||
- Cb\ :sub:`10`
|
||||
- Y'\ :sub:`12`
|
||||
- Cr\ :sub:`11`
|
||||
- Y'\ :sub:`13`
|
||||
- Cb\ :sub:`11`
|
||||
* - start + 16:
|
||||
- Y'\ :sub:`20`
|
||||
- Cr\ :sub:`20`
|
||||
- Y'\ :sub:`21`
|
||||
- Cb\ :sub:`20`
|
||||
- Y'\ :sub:`22`
|
||||
- Cr\ :sub:`21`
|
||||
- Y'\ :sub:`23`
|
||||
- Cb\ :sub:`21`
|
||||
* - start + 24:
|
||||
- Y'\ :sub:`30`
|
||||
- Cr\ :sub:`30`
|
||||
- Y'\ :sub:`31`
|
||||
- Cb\ :sub:`30`
|
||||
- Y'\ :sub:`32`
|
||||
- Cr\ :sub:`31`
|
||||
- Y'\ :sub:`33`
|
||||
- Cb\ :sub:`31`
|
||||
|
||||
|
||||
**Color Sample Location..**
|
||||
|
@ -115,80 +71,38 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- 0
|
||||
|
||||
-
|
||||
- 1
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
- 3
|
||||
|
||||
- .. row 2
|
||||
|
||||
- 0
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 3
|
||||
|
||||
- 1
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 4
|
||||
|
||||
- 2
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- .. row 5
|
||||
|
||||
- 3
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
|
||||
- Y
|
||||
|
||||
- C
|
||||
|
||||
- Y
|
||||
* -
|
||||
- 0
|
||||
-
|
||||
- 1
|
||||
- 2
|
||||
-
|
||||
- 3
|
||||
* - 0
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 1
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 2
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
* - 3
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
- Y
|
||||
- C
|
||||
- Y
|
||||
|
|
|
@ -28,83 +28,39 @@ Each cell is one byte.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- start + 0:
|
||||
|
||||
- Z\ :sub:`00low`
|
||||
|
||||
- Z\ :sub:`00high`
|
||||
|
||||
- Z\ :sub:`01low`
|
||||
|
||||
- Z\ :sub:`01high`
|
||||
|
||||
- Z\ :sub:`02low`
|
||||
|
||||
- Z\ :sub:`02high`
|
||||
|
||||
- Z\ :sub:`03low`
|
||||
|
||||
- Z\ :sub:`03high`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- start + 8:
|
||||
|
||||
- Z\ :sub:`10low`
|
||||
|
||||
- Z\ :sub:`10high`
|
||||
|
||||
- Z\ :sub:`11low`
|
||||
|
||||
- Z\ :sub:`11high`
|
||||
|
||||
- Z\ :sub:`12low`
|
||||
|
||||
- Z\ :sub:`12high`
|
||||
|
||||
- Z\ :sub:`13low`
|
||||
|
||||
- Z\ :sub:`13high`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- start + 16:
|
||||
|
||||
- Z\ :sub:`20low`
|
||||
|
||||
- Z\ :sub:`20high`
|
||||
|
||||
- Z\ :sub:`21low`
|
||||
|
||||
- Z\ :sub:`21high`
|
||||
|
||||
- Z\ :sub:`22low`
|
||||
|
||||
- Z\ :sub:`22high`
|
||||
|
||||
- Z\ :sub:`23low`
|
||||
|
||||
- Z\ :sub:`23high`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- start + 24:
|
||||
|
||||
- Z\ :sub:`30low`
|
||||
|
||||
- Z\ :sub:`30high`
|
||||
|
||||
- Z\ :sub:`31low`
|
||||
|
||||
- Z\ :sub:`31high`
|
||||
|
||||
- Z\ :sub:`32low`
|
||||
|
||||
- Z\ :sub:`32high`
|
||||
|
||||
- Z\ :sub:`33low`
|
||||
|
||||
- Z\ :sub:`33high`
|
||||
* - start + 0:
|
||||
- Z\ :sub:`00low`
|
||||
- Z\ :sub:`00high`
|
||||
- Z\ :sub:`01low`
|
||||
- Z\ :sub:`01high`
|
||||
- Z\ :sub:`02low`
|
||||
- Z\ :sub:`02high`
|
||||
- Z\ :sub:`03low`
|
||||
- Z\ :sub:`03high`
|
||||
* - start + 8:
|
||||
- Z\ :sub:`10low`
|
||||
- Z\ :sub:`10high`
|
||||
- Z\ :sub:`11low`
|
||||
- Z\ :sub:`11high`
|
||||
- Z\ :sub:`12low`
|
||||
- Z\ :sub:`12high`
|
||||
- Z\ :sub:`13low`
|
||||
- Z\ :sub:`13high`
|
||||
* - start + 16:
|
||||
- Z\ :sub:`20low`
|
||||
- Z\ :sub:`20high`
|
||||
- Z\ :sub:`21low`
|
||||
- Z\ :sub:`21high`
|
||||
- Z\ :sub:`22low`
|
||||
- Z\ :sub:`22high`
|
||||
- Z\ :sub:`23low`
|
||||
- Z\ :sub:`23high`
|
||||
* - start + 24:
|
||||
- Z\ :sub:`30low`
|
||||
- Z\ :sub:`30high`
|
||||
- Z\ :sub:`31low`
|
||||
- Z\ :sub:`31high`
|
||||
- Z\ :sub:`32low`
|
||||
- Z\ :sub:`32high`
|
||||
- Z\ :sub:`33low`
|
||||
- Z\ :sub:`33high`
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -14,59 +14,31 @@ Selection flags
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Flag name
|
||||
|
||||
- id
|
||||
|
||||
- Definition
|
||||
|
||||
- Valid for V4L2
|
||||
|
||||
- Valid for V4L2 subdev
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_SEL_FLAG_GE``
|
||||
|
||||
- (1 << 0)
|
||||
|
||||
- Suggest the driver it should choose greater or equal rectangle (in
|
||||
size) than was requested. Albeit the driver may choose a lesser
|
||||
size, it will only do so due to hardware limitations. Without this
|
||||
flag (and ``V4L2_SEL_FLAG_LE``) the behaviour is to choose the
|
||||
closest possible rectangle.
|
||||
|
||||
- Yes
|
||||
|
||||
- Yes
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_SEL_FLAG_LE``
|
||||
|
||||
- (1 << 1)
|
||||
|
||||
- Suggest the driver it should choose lesser or equal rectangle (in
|
||||
size) than was requested. Albeit the driver may choose a greater
|
||||
size, it will only do so due to hardware limitations.
|
||||
|
||||
- Yes
|
||||
|
||||
- Yes
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_SEL_FLAG_KEEP_CONFIG``
|
||||
|
||||
- (1 << 2)
|
||||
|
||||
- The configuration must not be propagated to any further processing
|
||||
steps. If this flag is not given, the configuration is propagated
|
||||
inside the subdevice to all further processing steps.
|
||||
|
||||
- No
|
||||
|
||||
- Yes
|
||||
* - Flag name
|
||||
- id
|
||||
- Definition
|
||||
- Valid for V4L2
|
||||
- Valid for V4L2 subdev
|
||||
* - ``V4L2_SEL_FLAG_GE``
|
||||
- (1 << 0)
|
||||
- Suggest the driver it should choose greater or equal rectangle (in
|
||||
size) than was requested. Albeit the driver may choose a lesser
|
||||
size, it will only do so due to hardware limitations. Without this
|
||||
flag (and ``V4L2_SEL_FLAG_LE``) the behaviour is to choose the
|
||||
closest possible rectangle.
|
||||
- Yes
|
||||
- Yes
|
||||
* - ``V4L2_SEL_FLAG_LE``
|
||||
- (1 << 1)
|
||||
- Suggest the driver it should choose lesser or equal rectangle (in
|
||||
size) than was requested. Albeit the driver may choose a greater
|
||||
size, it will only do so due to hardware limitations.
|
||||
- Yes
|
||||
- Yes
|
||||
* - ``V4L2_SEL_FLAG_KEEP_CONFIG``
|
||||
- (1 << 2)
|
||||
- The configuration must not be propagated to any further processing
|
||||
steps. If this flag is not given, the configuration is propagated
|
||||
inside the subdevice to all further processing steps.
|
||||
- No
|
||||
- Yes
|
||||
|
|
|
@ -18,120 +18,57 @@ of the two interfaces they are used.
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Target name
|
||||
|
||||
- id
|
||||
|
||||
- Definition
|
||||
|
||||
- Valid for V4L2
|
||||
|
||||
- Valid for V4L2 subdev
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_SEL_TGT_CROP``
|
||||
|
||||
- 0x0000
|
||||
|
||||
- Crop rectangle. Defines the cropped area.
|
||||
|
||||
- Yes
|
||||
|
||||
- Yes
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_SEL_TGT_CROP_DEFAULT``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- Suggested cropping rectangle that covers the "whole picture".
|
||||
|
||||
- Yes
|
||||
|
||||
- No
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_SEL_TGT_CROP_BOUNDS``
|
||||
|
||||
- 0x0002
|
||||
|
||||
- Bounds of the crop rectangle. All valid crop rectangles fit inside
|
||||
the crop bounds rectangle.
|
||||
|
||||
- Yes
|
||||
|
||||
- Yes
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_SEL_TGT_NATIVE_SIZE``
|
||||
|
||||
- 0x0003
|
||||
|
||||
- The native size of the device, e.g. a sensor's pixel array.
|
||||
``left`` and ``top`` fields are zero for this target. Setting the
|
||||
native size will generally only make sense for memory to memory
|
||||
devices where the software can create a canvas of a given size in
|
||||
which for example a video frame can be composed. In that case
|
||||
V4L2_SEL_TGT_NATIVE_SIZE can be used to configure the size of
|
||||
that canvas.
|
||||
|
||||
- Yes
|
||||
|
||||
- Yes
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_SEL_TGT_COMPOSE``
|
||||
|
||||
- 0x0100
|
||||
|
||||
- Compose rectangle. Used to configure scaling and composition.
|
||||
|
||||
- Yes
|
||||
|
||||
- Yes
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_SEL_TGT_COMPOSE_DEFAULT``
|
||||
|
||||
- 0x0101
|
||||
|
||||
- Suggested composition rectangle that covers the "whole picture".
|
||||
|
||||
- Yes
|
||||
|
||||
- No
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_SEL_TGT_COMPOSE_BOUNDS``
|
||||
|
||||
- 0x0102
|
||||
|
||||
- Bounds of the compose rectangle. All valid compose rectangles fit
|
||||
inside the compose bounds rectangle.
|
||||
|
||||
- Yes
|
||||
|
||||
- Yes
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``V4L2_SEL_TGT_COMPOSE_PADDED``
|
||||
|
||||
- 0x0103
|
||||
|
||||
- The active area and all padding pixels that are inserted or
|
||||
modified by hardware.
|
||||
|
||||
- Yes
|
||||
|
||||
- No
|
||||
* - Target name
|
||||
- id
|
||||
- Definition
|
||||
- Valid for V4L2
|
||||
- Valid for V4L2 subdev
|
||||
* - ``V4L2_SEL_TGT_CROP``
|
||||
- 0x0000
|
||||
- Crop rectangle. Defines the cropped area.
|
||||
- Yes
|
||||
- Yes
|
||||
* - ``V4L2_SEL_TGT_CROP_DEFAULT``
|
||||
- 0x0001
|
||||
- Suggested cropping rectangle that covers the "whole picture".
|
||||
- Yes
|
||||
- No
|
||||
* - ``V4L2_SEL_TGT_CROP_BOUNDS``
|
||||
- 0x0002
|
||||
- Bounds of the crop rectangle. All valid crop rectangles fit inside
|
||||
the crop bounds rectangle.
|
||||
- Yes
|
||||
- Yes
|
||||
* - ``V4L2_SEL_TGT_NATIVE_SIZE``
|
||||
- 0x0003
|
||||
- The native size of the device, e.g. a sensor's pixel array.
|
||||
``left`` and ``top`` fields are zero for this target. Setting the
|
||||
native size will generally only make sense for memory to memory
|
||||
devices where the software can create a canvas of a given size in
|
||||
which for example a video frame can be composed. In that case
|
||||
V4L2_SEL_TGT_NATIVE_SIZE can be used to configure the size of
|
||||
that canvas.
|
||||
- Yes
|
||||
- Yes
|
||||
* - ``V4L2_SEL_TGT_COMPOSE``
|
||||
- 0x0100
|
||||
- Compose rectangle. Used to configure scaling and composition.
|
||||
- Yes
|
||||
- Yes
|
||||
* - ``V4L2_SEL_TGT_COMPOSE_DEFAULT``
|
||||
- 0x0101
|
||||
- Suggested composition rectangle that covers the "whole picture".
|
||||
- Yes
|
||||
- No
|
||||
* - ``V4L2_SEL_TGT_COMPOSE_BOUNDS``
|
||||
- 0x0102
|
||||
- Bounds of the compose rectangle. All valid compose rectangles fit
|
||||
inside the compose bounds rectangle.
|
||||
- Yes
|
||||
- Yes
|
||||
* - ``V4L2_SEL_TGT_COMPOSE_PADDED``
|
||||
- 0x0103
|
||||
- The active area and all padding pixels that are inserted or
|
||||
modified by hardware.
|
||||
- Yes
|
||||
- No
|
||||
|
|
|
@ -80,55 +80,30 @@ than the number requested.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- The starting buffer index, returned by the driver.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``count``
|
||||
|
||||
- The number of buffers requested or granted. If count == 0, then
|
||||
:ref:`VIDIOC_CREATE_BUFS` will set ``index`` to the current number of
|
||||
created buffers, and it will check the validity of ``memory`` and
|
||||
``format.type``. If those are invalid -1 is returned and errno is
|
||||
set to ``EINVAL`` error code, otherwise :ref:`VIDIOC_CREATE_BUFS` returns
|
||||
0. It will never set errno to ``EBUSY`` error code in this particular
|
||||
case.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``memory``
|
||||
|
||||
- Applications set this field to ``V4L2_MEMORY_MMAP``,
|
||||
``V4L2_MEMORY_DMABUF`` or ``V4L2_MEMORY_USERPTR``. See
|
||||
:c:type:`v4l2_memory`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- struct :c:type:`v4l2_format`
|
||||
|
||||
- ``format``
|
||||
|
||||
- Filled in by the application, preserved by the driver.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [8]
|
||||
|
||||
- A place holder for future extensions. Drivers and applications
|
||||
must set the array to zero.
|
||||
* - __u32
|
||||
- ``index``
|
||||
- The starting buffer index, returned by the driver.
|
||||
* - __u32
|
||||
- ``count``
|
||||
- The number of buffers requested or granted. If count == 0, then
|
||||
:ref:`VIDIOC_CREATE_BUFS` will set ``index`` to the current number of
|
||||
created buffers, and it will check the validity of ``memory`` and
|
||||
``format.type``. If those are invalid -1 is returned and errno is
|
||||
set to ``EINVAL`` error code, otherwise :ref:`VIDIOC_CREATE_BUFS` returns
|
||||
0. It will never set errno to ``EBUSY`` error code in this particular
|
||||
case.
|
||||
* - __u32
|
||||
- ``memory``
|
||||
- Applications set this field to ``V4L2_MEMORY_MMAP``,
|
||||
``V4L2_MEMORY_DMABUF`` or ``V4L2_MEMORY_USERPTR``. See
|
||||
:c:type:`v4l2_memory`
|
||||
* - struct :c:type:`v4l2_format`
|
||||
- ``format``
|
||||
- Filled in by the application, preserved by the driver.
|
||||
* - __u32
|
||||
- ``reserved``\ [8]
|
||||
- A place holder for future extensions. Drivers and applications
|
||||
must set the array to zero.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -59,56 +59,36 @@ overlay devices.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
* - __u32
|
||||
- ``type``
|
||||
- Type of the data stream, set by the application. Only these types
|
||||
are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``,
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT`` and
|
||||
``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`.
|
||||
* - struct :ref:`v4l2_rect <v4l2-rect-crop>`
|
||||
- ``bounds``
|
||||
- Defines the window within capturing or output is possible, this
|
||||
may exclude for example the horizontal and vertical blanking
|
||||
areas. The cropping rectangle cannot exceed these limits. Width
|
||||
and height are defined in pixels, the driver writer is free to
|
||||
choose origin and units of the coordinate system in the analog
|
||||
domain.
|
||||
* - struct :ref:`v4l2_rect <v4l2-rect-crop>`
|
||||
- ``defrect``
|
||||
- Default cropping rectangle, it shall cover the "whole picture".
|
||||
Assuming pixel aspect 1/1 this could be for example a 640 × 480
|
||||
rectangle for NTSC, a 768 × 576 rectangle for PAL and SECAM
|
||||
centered over the active picture area. The same co-ordinate system
|
||||
as for ``bounds`` is used.
|
||||
* - struct :c:type:`v4l2_fract`
|
||||
- ``pixelaspect``
|
||||
- This is the pixel aspect (y / x) when no scaling is applied, the
|
||||
ratio of the actual sampling frequency and the frequency required
|
||||
to get square pixels.
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- Type of the data stream, set by the application. Only these types
|
||||
are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``,
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT`` and
|
||||
``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- struct :ref:`v4l2_rect <v4l2-rect-crop>`
|
||||
|
||||
- ``bounds``
|
||||
|
||||
- Defines the window within capturing or output is possible, this
|
||||
may exclude for example the horizontal and vertical blanking
|
||||
areas. The cropping rectangle cannot exceed these limits. Width
|
||||
and height are defined in pixels, the driver writer is free to
|
||||
choose origin and units of the coordinate system in the analog
|
||||
domain.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- struct :ref:`v4l2_rect <v4l2-rect-crop>`
|
||||
|
||||
- ``defrect``
|
||||
|
||||
- Default cropping rectangle, it shall cover the "whole picture".
|
||||
Assuming pixel aspect 1/1 this could be for example a 640 × 480
|
||||
rectangle for NTSC, a 768 × 576 rectangle for PAL and SECAM
|
||||
centered over the active picture area. The same co-ordinate system
|
||||
as for ``bounds`` is used.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- struct :c:type:`v4l2_fract`
|
||||
|
||||
- ``pixelaspect``
|
||||
|
||||
- This is the pixel aspect (y / x) when no scaling is applied, the
|
||||
ratio of the actual sampling frequency and the frequency required
|
||||
to get square pixels.
|
||||
|
||||
When cropping coordinates refer to square pixels, the driver sets
|
||||
``pixelaspect`` to 1/1. Other common values are 54/59 for PAL and
|
||||
SECAM, 11/10 for NTSC sampled according to [:ref:`itu601`].
|
||||
When cropping coordinates refer to square pixels, the driver sets
|
||||
``pixelaspect`` to 1/1. Other common values are 54/59 for PAL and
|
||||
SECAM, 11/10 for NTSC sampled according to [:ref:`itu601`].
|
||||
|
||||
|
||||
|
||||
|
@ -121,40 +101,20 @@ overlay devices.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __s32
|
||||
|
||||
- ``left``
|
||||
|
||||
- Horizontal offset of the top, left corner of the rectangle, in
|
||||
pixels.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __s32
|
||||
|
||||
- ``top``
|
||||
|
||||
- Vertical offset of the top, left corner of the rectangle, in
|
||||
pixels.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``width``
|
||||
|
||||
- Width of the rectangle, in pixels.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``height``
|
||||
|
||||
- Height of the rectangle, in pixels.
|
||||
* - __s32
|
||||
- ``left``
|
||||
- Horizontal offset of the top, left corner of the rectangle, in
|
||||
pixels.
|
||||
* - __s32
|
||||
- ``top``
|
||||
- Vertical offset of the top, left corner of the rectangle, in
|
||||
pixels.
|
||||
* - __u32
|
||||
- ``width``
|
||||
- Width of the rectangle, in pixels.
|
||||
* - __u32
|
||||
- ``height``
|
||||
- Height of the rectangle, in pixels.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -85,40 +85,21 @@ instructions.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- See :ref:`name-chip-match-types` for a list of possible types.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- union
|
||||
|
||||
- (anonymous)
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``addr``
|
||||
|
||||
- Match a chip by this number, interpreted according to the ``type``
|
||||
field.
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
- char
|
||||
|
||||
- ``name[32]``
|
||||
|
||||
- Match a chip by this name, interpreted according to the ``type``
|
||||
field. Currently unused.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- See :ref:`name-chip-match-types` for a list of possible types.
|
||||
* - union
|
||||
- (anonymous)
|
||||
* -
|
||||
- __u32
|
||||
- ``addr``
|
||||
- Match a chip by this number, interpreted according to the ``type``
|
||||
field.
|
||||
* -
|
||||
- char
|
||||
- ``name[32]``
|
||||
- Match a chip by this name, interpreted according to the ``type``
|
||||
field. Currently unused.
|
||||
|
||||
|
||||
|
||||
|
@ -131,41 +112,21 @@ instructions.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- struct v4l2_dbg_match
|
||||
|
||||
- ``match``
|
||||
|
||||
- How to match the chip, see :ref:`name-v4l2-dbg-match`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- char
|
||||
|
||||
- ``name[32]``
|
||||
|
||||
- The name of the chip.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- Set by the driver. If ``V4L2_CHIP_FL_READABLE`` is set, then the
|
||||
driver supports reading registers from the device. If
|
||||
``V4L2_CHIP_FL_WRITABLE`` is set, then it supports writing
|
||||
registers.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved[8]``
|
||||
|
||||
- Reserved fields, both application and driver must set these to 0.
|
||||
* - struct v4l2_dbg_match
|
||||
- ``match``
|
||||
- How to match the chip, see :ref:`name-v4l2-dbg-match`.
|
||||
* - char
|
||||
- ``name[32]``
|
||||
- The name of the chip.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- Set by the driver. If ``V4L2_CHIP_FL_READABLE`` is set, then the
|
||||
driver supports reading registers from the device. If
|
||||
``V4L2_CHIP_FL_WRITABLE`` is set, then it supports writing
|
||||
registers.
|
||||
* - __u32
|
||||
- ``reserved[8]``
|
||||
- Reserved fields, both application and driver must set these to 0.
|
||||
|
||||
|
||||
|
||||
|
@ -178,23 +139,13 @@ instructions.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_CHIP_MATCH_BRIDGE``
|
||||
|
||||
- 0
|
||||
|
||||
- Match the nth chip on the card, zero for the bridge chip. Does not
|
||||
match sub-devices.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_CHIP_MATCH_SUBDEV``
|
||||
|
||||
- 4
|
||||
|
||||
- Match the nth sub-device.
|
||||
* - ``V4L2_CHIP_MATCH_BRIDGE``
|
||||
- 0
|
||||
- Match the nth chip on the card, zero for the bridge chip. Does not
|
||||
match sub-devices.
|
||||
* - ``V4L2_CHIP_MATCH_SUBDEV``
|
||||
- 4
|
||||
- Match the nth sub-device.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -94,40 +94,21 @@ instructions.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- See :ref:`chip-match-types` for a list of possible types.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- union
|
||||
|
||||
- (anonymous)
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``addr``
|
||||
|
||||
- Match a chip by this number, interpreted according to the ``type``
|
||||
field.
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
- char
|
||||
|
||||
- ``name[32]``
|
||||
|
||||
- Match a chip by this name, interpreted according to the ``type``
|
||||
field. Currently unused.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- See :ref:`chip-match-types` for a list of possible types.
|
||||
* - union
|
||||
- (anonymous)
|
||||
* -
|
||||
- __u32
|
||||
- ``addr``
|
||||
- Match a chip by this number, interpreted according to the ``type``
|
||||
field.
|
||||
* -
|
||||
- char
|
||||
- ``name[32]``
|
||||
- Match a chip by this name, interpreted according to the ``type``
|
||||
field. Currently unused.
|
||||
|
||||
|
||||
|
||||
|
@ -137,38 +118,18 @@ instructions.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- struct v4l2_dbg_match
|
||||
|
||||
- ``match``
|
||||
|
||||
- How to match the chip, see :c:type:`v4l2_dbg_match`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``size``
|
||||
|
||||
- The register size in bytes.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u64
|
||||
|
||||
- ``reg``
|
||||
|
||||
- A register number.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u64
|
||||
|
||||
- ``val``
|
||||
|
||||
- The value read from, or to be written into the register.
|
||||
* - struct v4l2_dbg_match
|
||||
- ``match``
|
||||
- How to match the chip, see :c:type:`v4l2_dbg_match`.
|
||||
* - __u32
|
||||
- ``size``
|
||||
- The register size in bytes.
|
||||
* - __u64
|
||||
- ``reg``
|
||||
- A register number.
|
||||
* - __u64
|
||||
- ``val``
|
||||
- The value read from, or to be written into the register.
|
||||
|
||||
|
||||
|
||||
|
@ -181,23 +142,13 @@ instructions.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_CHIP_MATCH_BRIDGE``
|
||||
|
||||
- 0
|
||||
|
||||
- Match the nth chip on the card, zero for the bridge chip. Does not
|
||||
match sub-devices.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_CHIP_MATCH_SUBDEV``
|
||||
|
||||
- 4
|
||||
|
||||
- Match the nth sub-device.
|
||||
* - ``V4L2_CHIP_MATCH_BRIDGE``
|
||||
- 0
|
||||
- Match the nth chip on the card, zero for the bridge chip. Does not
|
||||
match sub-devices.
|
||||
* - ``V4L2_CHIP_MATCH_SUBDEV``
|
||||
- 4
|
||||
- Match the nth sub-device.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -70,125 +70,75 @@ introduced in Linux 3.3.
|
|||
:stub-columns: 0
|
||||
:widths: 11 24 12 16 106
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``cmd``
|
||||
|
||||
-
|
||||
-
|
||||
- The decoder command, see :ref:`decoder-cmds`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
-
|
||||
-
|
||||
- Flags to go with the command. If no flags are defined for this
|
||||
command, drivers and applications must set this field to zero.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- union
|
||||
|
||||
- (anonymous)
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
- struct
|
||||
|
||||
- ``start``
|
||||
|
||||
-
|
||||
- Structure containing additional data for the
|
||||
``V4L2_DEC_CMD_START`` command.
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
-
|
||||
- __s32
|
||||
|
||||
- ``speed``
|
||||
|
||||
- Playback speed and direction. The playback speed is defined as
|
||||
``speed``/1000 of the normal speed. So 1000 is normal playback.
|
||||
Negative numbers denote reverse playback, so -1000 does reverse
|
||||
playback at normal speed. Speeds -1, 0 and 1 have special
|
||||
meanings: speed 0 is shorthand for 1000 (normal playback). A speed
|
||||
of 1 steps just one frame forward, a speed of -1 steps just one
|
||||
frame back.
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``format``
|
||||
|
||||
- Format restrictions. This field is set by the driver, not the
|
||||
application. Possible values are ``V4L2_DEC_START_FMT_NONE`` if
|
||||
there are no format restrictions or ``V4L2_DEC_START_FMT_GOP`` if
|
||||
the decoder operates on full GOPs (*Group Of Pictures*). This is
|
||||
usually the case for reverse playback: the decoder needs full
|
||||
GOPs, which it can then play in reverse order. So to implement
|
||||
reverse playback the application must feed the decoder the last
|
||||
GOP in the video file, then the GOP before that, etc. etc.
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
- struct
|
||||
|
||||
- ``stop``
|
||||
|
||||
-
|
||||
- Structure containing additional data for the ``V4L2_DEC_CMD_STOP``
|
||||
command.
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
-
|
||||
- __u64
|
||||
|
||||
- ``pts``
|
||||
|
||||
- Stop playback at this ``pts`` or immediately if the playback is
|
||||
already past that timestamp. Leave to 0 if you want to stop after
|
||||
the last frame was decoded.
|
||||
|
||||
- .. row 9
|
||||
|
||||
-
|
||||
- struct
|
||||
|
||||
- ``raw``
|
||||
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 10
|
||||
|
||||
-
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``data``\ [16]
|
||||
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
* - __u32
|
||||
- ``cmd``
|
||||
-
|
||||
-
|
||||
- The decoder command, see :ref:`decoder-cmds`.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
-
|
||||
-
|
||||
- Flags to go with the command. If no flags are defined for this
|
||||
command, drivers and applications must set this field to zero.
|
||||
* - union
|
||||
- (anonymous)
|
||||
-
|
||||
-
|
||||
-
|
||||
* -
|
||||
- struct
|
||||
- ``start``
|
||||
-
|
||||
- Structure containing additional data for the
|
||||
``V4L2_DEC_CMD_START`` command.
|
||||
* -
|
||||
-
|
||||
- __s32
|
||||
- ``speed``
|
||||
- Playback speed and direction. The playback speed is defined as
|
||||
``speed``/1000 of the normal speed. So 1000 is normal playback.
|
||||
Negative numbers denote reverse playback, so -1000 does reverse
|
||||
playback at normal speed. Speeds -1, 0 and 1 have special
|
||||
meanings: speed 0 is shorthand for 1000 (normal playback). A speed
|
||||
of 1 steps just one frame forward, a speed of -1 steps just one
|
||||
frame back.
|
||||
* -
|
||||
-
|
||||
- __u32
|
||||
- ``format``
|
||||
- Format restrictions. This field is set by the driver, not the
|
||||
application. Possible values are ``V4L2_DEC_START_FMT_NONE`` if
|
||||
there are no format restrictions or ``V4L2_DEC_START_FMT_GOP`` if
|
||||
the decoder operates on full GOPs (*Group Of Pictures*). This is
|
||||
usually the case for reverse playback: the decoder needs full
|
||||
GOPs, which it can then play in reverse order. So to implement
|
||||
reverse playback the application must feed the decoder the last
|
||||
GOP in the video file, then the GOP before that, etc. etc.
|
||||
* -
|
||||
- struct
|
||||
- ``stop``
|
||||
-
|
||||
- Structure containing additional data for the ``V4L2_DEC_CMD_STOP``
|
||||
command.
|
||||
* -
|
||||
-
|
||||
- __u64
|
||||
- ``pts``
|
||||
- Stop playback at this ``pts`` or immediately if the playback is
|
||||
already past that timestamp. Leave to 0 if you want to stop after
|
||||
the last frame was decoded.
|
||||
* -
|
||||
- struct
|
||||
- ``raw``
|
||||
-
|
||||
-
|
||||
* -
|
||||
-
|
||||
- __u32
|
||||
- ``data``\ [16]
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
|
||||
|
||||
|
@ -201,68 +151,48 @@ introduced in Linux 3.3.
|
|||
:stub-columns: 0
|
||||
:widths: 56 6 113
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_DEC_CMD_START``
|
||||
|
||||
- 0
|
||||
|
||||
- Start the decoder. When the decoder is already running or paused,
|
||||
this command will just change the playback speed. That means that
|
||||
calling ``V4L2_DEC_CMD_START`` when the decoder was paused will
|
||||
*not* resume the decoder. You have to explicitly call
|
||||
``V4L2_DEC_CMD_RESUME`` for that. This command has one flag:
|
||||
``V4L2_DEC_CMD_START_MUTE_AUDIO``. If set, then audio will be
|
||||
muted when playing back at a non-standard speed.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_DEC_CMD_STOP``
|
||||
|
||||
- 1
|
||||
|
||||
- Stop the decoder. When the decoder is already stopped, this
|
||||
command does nothing. This command has two flags: if
|
||||
``V4L2_DEC_CMD_STOP_TO_BLACK`` is set, then the decoder will set
|
||||
the picture to black after it stopped decoding. Otherwise the last
|
||||
image will repeat. mem2mem decoders will stop producing new frames
|
||||
altogether. They will send a ``V4L2_EVENT_EOS`` event when the
|
||||
last frame has been decoded and all frames are ready to be
|
||||
dequeued and will set the ``V4L2_BUF_FLAG_LAST`` buffer flag on
|
||||
the last buffer of the capture queue to indicate there will be no
|
||||
new buffers produced to dequeue. This buffer may be empty,
|
||||
indicated by the driver setting the ``bytesused`` field to 0. Once
|
||||
the ``V4L2_BUF_FLAG_LAST`` flag was set, the
|
||||
:ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore,
|
||||
but return an ``EPIPE`` error code. If
|
||||
``V4L2_DEC_CMD_STOP_IMMEDIATELY`` is set, then the decoder stops
|
||||
immediately (ignoring the ``pts`` value), otherwise it will keep
|
||||
decoding until timestamp >= pts or until the last of the pending
|
||||
data from its internal buffers was decoded.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_DEC_CMD_PAUSE``
|
||||
|
||||
- 2
|
||||
|
||||
- Pause the decoder. When the decoder has not been started yet, the
|
||||
driver will return an ``EPERM`` error code. When the decoder is
|
||||
already paused, this command does nothing. This command has one
|
||||
flag: if ``V4L2_DEC_CMD_PAUSE_TO_BLACK`` is set, then set the
|
||||
decoder output to black when paused.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_DEC_CMD_RESUME``
|
||||
|
||||
- 3
|
||||
|
||||
- Resume decoding after a PAUSE command. When the decoder has not
|
||||
been started yet, the driver will return an ``EPERM`` error code. When
|
||||
the decoder is already running, this command does nothing. No
|
||||
flags are defined for this command.
|
||||
* - ``V4L2_DEC_CMD_START``
|
||||
- 0
|
||||
- Start the decoder. When the decoder is already running or paused,
|
||||
this command will just change the playback speed. That means that
|
||||
calling ``V4L2_DEC_CMD_START`` when the decoder was paused will
|
||||
*not* resume the decoder. You have to explicitly call
|
||||
``V4L2_DEC_CMD_RESUME`` for that. This command has one flag:
|
||||
``V4L2_DEC_CMD_START_MUTE_AUDIO``. If set, then audio will be
|
||||
muted when playing back at a non-standard speed.
|
||||
* - ``V4L2_DEC_CMD_STOP``
|
||||
- 1
|
||||
- Stop the decoder. When the decoder is already stopped, this
|
||||
command does nothing. This command has two flags: if
|
||||
``V4L2_DEC_CMD_STOP_TO_BLACK`` is set, then the decoder will set
|
||||
the picture to black after it stopped decoding. Otherwise the last
|
||||
image will repeat. mem2mem decoders will stop producing new frames
|
||||
altogether. They will send a ``V4L2_EVENT_EOS`` event when the
|
||||
last frame has been decoded and all frames are ready to be
|
||||
dequeued and will set the ``V4L2_BUF_FLAG_LAST`` buffer flag on
|
||||
the last buffer of the capture queue to indicate there will be no
|
||||
new buffers produced to dequeue. This buffer may be empty,
|
||||
indicated by the driver setting the ``bytesused`` field to 0. Once
|
||||
the ``V4L2_BUF_FLAG_LAST`` flag was set, the
|
||||
:ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore,
|
||||
but return an ``EPIPE`` error code. If
|
||||
``V4L2_DEC_CMD_STOP_IMMEDIATELY`` is set, then the decoder stops
|
||||
immediately (ignoring the ``pts`` value), otherwise it will keep
|
||||
decoding until timestamp >= pts or until the last of the pending
|
||||
data from its internal buffers was decoded.
|
||||
* - ``V4L2_DEC_CMD_PAUSE``
|
||||
- 2
|
||||
- Pause the decoder. When the decoder has not been started yet, the
|
||||
driver will return an ``EPERM`` error code. When the decoder is
|
||||
already paused, this command does nothing. This command has one
|
||||
flag: if ``V4L2_DEC_CMD_PAUSE_TO_BLACK`` is set, then set the
|
||||
decoder output to black when paused.
|
||||
* - ``V4L2_DEC_CMD_RESUME``
|
||||
- 3
|
||||
- Resume decoding after a PAUSE command. When the decoder has not
|
||||
been started yet, the driver will return an ``EPERM`` error code. When
|
||||
the decoder is already running, this command does nothing. No
|
||||
flags are defined for this command.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -49,131 +49,66 @@ call.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2 1
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
-
|
||||
- Type of the event, see :ref:`event-type`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- union
|
||||
|
||||
- ``u``
|
||||
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_event_vsync`
|
||||
|
||||
- ``vsync``
|
||||
|
||||
- Event data for event ``V4L2_EVENT_VSYNC``.
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_event_ctrl`
|
||||
|
||||
- ``ctrl``
|
||||
|
||||
- Event data for event ``V4L2_EVENT_CTRL``.
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_event_frame_sync`
|
||||
|
||||
- ``frame_sync``
|
||||
|
||||
- Event data for event ``V4L2_EVENT_FRAME_SYNC``.
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_event_motion_det`
|
||||
|
||||
- ``motion_det``
|
||||
|
||||
- Event data for event V4L2_EVENT_MOTION_DET.
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_event_src_change`
|
||||
|
||||
- ``src_change``
|
||||
|
||||
- Event data for event V4L2_EVENT_SOURCE_CHANGE.
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
- __u8
|
||||
|
||||
- ``data``\ [64]
|
||||
|
||||
- Event data. Defined by the event type. The union should be used to
|
||||
define easily accessible type for events.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pending``
|
||||
|
||||
-
|
||||
- Number of pending events excluding this one.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- __u32
|
||||
|
||||
- ``sequence``
|
||||
|
||||
-
|
||||
- Event sequence number. The sequence number is incremented for
|
||||
every subscribed event that takes place. If sequence numbers are
|
||||
not contiguous it means that events have been lost.
|
||||
|
||||
- .. row 11
|
||||
|
||||
- struct timespec
|
||||
|
||||
- ``timestamp``
|
||||
|
||||
-
|
||||
- Event timestamp. The timestamp has been taken from the
|
||||
``CLOCK_MONOTONIC`` clock. To access the same clock outside V4L2,
|
||||
use :c:func:`clock_gettime`.
|
||||
|
||||
- .. row 12
|
||||
|
||||
- u32
|
||||
|
||||
- ``id``
|
||||
|
||||
-
|
||||
- The ID associated with the event source. If the event does not
|
||||
have an associated ID (this depends on the event type), then this
|
||||
is 0.
|
||||
|
||||
- .. row 13
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [8]
|
||||
|
||||
-
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
* - __u32
|
||||
- ``type``
|
||||
-
|
||||
- Type of the event, see :ref:`event-type`.
|
||||
* - union
|
||||
- ``u``
|
||||
-
|
||||
-
|
||||
* -
|
||||
- struct :c:type:`v4l2_event_vsync`
|
||||
- ``vsync``
|
||||
- Event data for event ``V4L2_EVENT_VSYNC``.
|
||||
* -
|
||||
- struct :c:type:`v4l2_event_ctrl`
|
||||
- ``ctrl``
|
||||
- Event data for event ``V4L2_EVENT_CTRL``.
|
||||
* -
|
||||
- struct :c:type:`v4l2_event_frame_sync`
|
||||
- ``frame_sync``
|
||||
- Event data for event ``V4L2_EVENT_FRAME_SYNC``.
|
||||
* -
|
||||
- struct :c:type:`v4l2_event_motion_det`
|
||||
- ``motion_det``
|
||||
- Event data for event V4L2_EVENT_MOTION_DET.
|
||||
* -
|
||||
- struct :c:type:`v4l2_event_src_change`
|
||||
- ``src_change``
|
||||
- Event data for event V4L2_EVENT_SOURCE_CHANGE.
|
||||
* -
|
||||
- __u8
|
||||
- ``data``\ [64]
|
||||
- Event data. Defined by the event type. The union should be used to
|
||||
define easily accessible type for events.
|
||||
* - __u32
|
||||
- ``pending``
|
||||
-
|
||||
- Number of pending events excluding this one.
|
||||
* - __u32
|
||||
- ``sequence``
|
||||
-
|
||||
- Event sequence number. The sequence number is incremented for
|
||||
every subscribed event that takes place. If sequence numbers are
|
||||
not contiguous it means that events have been lost.
|
||||
* - struct timespec
|
||||
- ``timestamp``
|
||||
-
|
||||
- Event timestamp. The timestamp has been taken from the
|
||||
``CLOCK_MONOTONIC`` clock. To access the same clock outside V4L2,
|
||||
use :c:func:`clock_gettime`.
|
||||
* - u32
|
||||
- ``id``
|
||||
-
|
||||
- The ID associated with the event source. If the event does not
|
||||
have an associated ID (this depends on the event type), then this
|
||||
is 0.
|
||||
* - __u32
|
||||
- ``reserved``\ [8]
|
||||
-
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
|
||||
|
||||
|
||||
|
@ -188,123 +123,83 @@ call.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
* - ``V4L2_EVENT_ALL``
|
||||
- 0
|
||||
- All events. V4L2_EVENT_ALL is valid only for
|
||||
VIDIOC_UNSUBSCRIBE_EVENT for unsubscribing all events at once.
|
||||
* - ``V4L2_EVENT_VSYNC``
|
||||
- 1
|
||||
- This event is triggered on the vertical sync. This event has a
|
||||
struct :c:type:`v4l2_event_vsync` associated
|
||||
with it.
|
||||
* - ``V4L2_EVENT_EOS``
|
||||
- 2
|
||||
- This event is triggered when the end of a stream is reached. This
|
||||
is typically used with MPEG decoders to report to the application
|
||||
when the last of the MPEG stream has been decoded.
|
||||
* - ``V4L2_EVENT_CTRL``
|
||||
- 3
|
||||
- This event requires that the ``id`` matches the control ID from
|
||||
which you want to receive events. This event is triggered if the
|
||||
control's value changes, if a button control is pressed or if the
|
||||
control's flags change. This event has a struct
|
||||
:c:type:`v4l2_event_ctrl` associated with it.
|
||||
This struct contains much of the same information as struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>` and struct
|
||||
:c:type:`v4l2_control`.
|
||||
|
||||
- .. row 1
|
||||
If the event is generated due to a call to
|
||||
:ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` or
|
||||
:ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`, then the
|
||||
event will *not* be sent to the file handle that called the ioctl
|
||||
function. This prevents nasty feedback loops. If you *do* want to
|
||||
get the event, then set the ``V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK``
|
||||
flag.
|
||||
|
||||
- ``V4L2_EVENT_ALL``
|
||||
This event type will ensure that no information is lost when more
|
||||
events are raised than there is room internally. In that case the
|
||||
struct :c:type:`v4l2_event_ctrl` of the
|
||||
second-oldest event is kept, but the ``changes`` field of the
|
||||
second-oldest event is ORed with the ``changes`` field of the
|
||||
oldest event.
|
||||
* - ``V4L2_EVENT_FRAME_SYNC``
|
||||
- 4
|
||||
- Triggered immediately when the reception of a frame has begun.
|
||||
This event has a struct
|
||||
:c:type:`v4l2_event_frame_sync`
|
||||
associated with it.
|
||||
|
||||
- 0
|
||||
If the hardware needs to be stopped in the case of a buffer
|
||||
underrun it might not be able to generate this event. In such
|
||||
cases the ``frame_sequence`` field in struct
|
||||
:c:type:`v4l2_event_frame_sync` will not
|
||||
be incremented. This causes two consecutive frame sequence numbers
|
||||
to have n times frame interval in between them.
|
||||
* - ``V4L2_EVENT_SOURCE_CHANGE``
|
||||
- 5
|
||||
- This event is triggered when a source parameter change is detected
|
||||
during runtime by the video device. It can be a runtime resolution
|
||||
change triggered by a video decoder or the format change happening
|
||||
on an input connector. This event requires that the ``id`` matches
|
||||
the input index (when used with a video device node) or the pad
|
||||
index (when used with a subdevice node) from which you want to
|
||||
receive events.
|
||||
|
||||
- All events. V4L2_EVENT_ALL is valid only for
|
||||
VIDIOC_UNSUBSCRIBE_EVENT for unsubscribing all events at once.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_EVENT_VSYNC``
|
||||
|
||||
- 1
|
||||
|
||||
- This event is triggered on the vertical sync. This event has a
|
||||
struct :c:type:`v4l2_event_vsync` associated
|
||||
with it.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_EVENT_EOS``
|
||||
|
||||
- 2
|
||||
|
||||
- This event is triggered when the end of a stream is reached. This
|
||||
is typically used with MPEG decoders to report to the application
|
||||
when the last of the MPEG stream has been decoded.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_EVENT_CTRL``
|
||||
|
||||
- 3
|
||||
|
||||
- This event requires that the ``id`` matches the control ID from
|
||||
which you want to receive events. This event is triggered if the
|
||||
control's value changes, if a button control is pressed or if the
|
||||
control's flags change. This event has a struct
|
||||
:c:type:`v4l2_event_ctrl` associated with it.
|
||||
This struct contains much of the same information as struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>` and struct
|
||||
:c:type:`v4l2_control`.
|
||||
|
||||
If the event is generated due to a call to
|
||||
:ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` or
|
||||
:ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`, then the
|
||||
event will *not* be sent to the file handle that called the ioctl
|
||||
function. This prevents nasty feedback loops. If you *do* want to
|
||||
get the event, then set the ``V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK``
|
||||
flag.
|
||||
|
||||
This event type will ensure that no information is lost when more
|
||||
events are raised than there is room internally. In that case the
|
||||
struct :c:type:`v4l2_event_ctrl` of the
|
||||
second-oldest event is kept, but the ``changes`` field of the
|
||||
second-oldest event is ORed with the ``changes`` field of the
|
||||
oldest event.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_EVENT_FRAME_SYNC``
|
||||
|
||||
- 4
|
||||
|
||||
- Triggered immediately when the reception of a frame has begun.
|
||||
This event has a struct
|
||||
:c:type:`v4l2_event_frame_sync`
|
||||
associated with it.
|
||||
|
||||
If the hardware needs to be stopped in the case of a buffer
|
||||
underrun it might not be able to generate this event. In such
|
||||
cases the ``frame_sequence`` field in struct
|
||||
:c:type:`v4l2_event_frame_sync` will not
|
||||
be incremented. This causes two consecutive frame sequence numbers
|
||||
to have n times frame interval in between them.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_EVENT_SOURCE_CHANGE``
|
||||
|
||||
- 5
|
||||
|
||||
- This event is triggered when a source parameter change is detected
|
||||
during runtime by the video device. It can be a runtime resolution
|
||||
change triggered by a video decoder or the format change happening
|
||||
on an input connector. This event requires that the ``id`` matches
|
||||
the input index (when used with a video device node) or the pad
|
||||
index (when used with a subdevice node) from which you want to
|
||||
receive events.
|
||||
|
||||
This event has a struct
|
||||
:c:type:`v4l2_event_src_change`
|
||||
associated with it. The ``changes`` bitfield denotes what has
|
||||
changed for the subscribed pad. If multiple events occurred before
|
||||
application could dequeue them, then the changes will have the
|
||||
ORed value of all the events generated.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_EVENT_MOTION_DET``
|
||||
|
||||
- 6
|
||||
|
||||
- Triggered whenever the motion detection state for one or more of
|
||||
the regions changes. This event has a struct
|
||||
:c:type:`v4l2_event_motion_det`
|
||||
associated with it.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_EVENT_PRIVATE_START``
|
||||
|
||||
- 0x08000000
|
||||
|
||||
- Base event number for driver-private events.
|
||||
This event has a struct
|
||||
:c:type:`v4l2_event_src_change`
|
||||
associated with it. The ``changes`` bitfield denotes what has
|
||||
changed for the subscribed pad. If multiple events occurred before
|
||||
application could dequeue them, then the changes will have the
|
||||
ORed value of all the events generated.
|
||||
* - ``V4L2_EVENT_MOTION_DET``
|
||||
- 6
|
||||
- Triggered whenever the motion detection state for one or more of
|
||||
the regions changes. This event has a struct
|
||||
:c:type:`v4l2_event_motion_det`
|
||||
associated with it.
|
||||
* - ``V4L2_EVENT_PRIVATE_START``
|
||||
- 0x08000000
|
||||
- Base event number for driver-private events.
|
||||
|
||||
|
||||
|
||||
|
@ -317,14 +212,9 @@ call.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u8
|
||||
|
||||
- ``field``
|
||||
|
||||
- The upcoming field. See enum :c:type:`v4l2_field`.
|
||||
* - __u8
|
||||
- ``field``
|
||||
- The upcoming field. See enum :c:type:`v4l2_field`.
|
||||
|
||||
|
||||
|
||||
|
@ -337,103 +227,54 @@ call.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2 1
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``changes``
|
||||
|
||||
-
|
||||
- A bitmask that tells what has changed. See
|
||||
:ref:`ctrl-changes-flags`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
-
|
||||
- The type of the control. See enum
|
||||
:c:type:`v4l2_ctrl_type`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- union (anonymous)
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
- __s32
|
||||
|
||||
- ``value``
|
||||
|
||||
- The 32-bit value of the control for 32-bit control types. This is
|
||||
0 for string controls since the value of a string cannot be passed
|
||||
using :ref:`VIDIOC_DQEVENT`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
- __s64
|
||||
|
||||
- ``value64``
|
||||
|
||||
- The 64-bit value of the control for 64-bit control types.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
-
|
||||
- The control flags. See :ref:`control-flags`.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __s32
|
||||
|
||||
- ``minimum``
|
||||
|
||||
-
|
||||
- The minimum value of the control. See struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>`.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __s32
|
||||
|
||||
- ``maximum``
|
||||
|
||||
-
|
||||
- The maximum value of the control. See struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>`.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- __s32
|
||||
|
||||
- ``step``
|
||||
|
||||
-
|
||||
- The step value of the control. See struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>`.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- __s32
|
||||
|
||||
- ``default_value``
|
||||
|
||||
-
|
||||
- The default value value of the control. See struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>`.
|
||||
* - __u32
|
||||
- ``changes``
|
||||
-
|
||||
- A bitmask that tells what has changed. See
|
||||
:ref:`ctrl-changes-flags`.
|
||||
* - __u32
|
||||
- ``type``
|
||||
-
|
||||
- The type of the control. See enum
|
||||
:c:type:`v4l2_ctrl_type`.
|
||||
* - union (anonymous)
|
||||
-
|
||||
-
|
||||
-
|
||||
* -
|
||||
- __s32
|
||||
- ``value``
|
||||
- The 32-bit value of the control for 32-bit control types. This is
|
||||
0 for string controls since the value of a string cannot be passed
|
||||
using :ref:`VIDIOC_DQEVENT`.
|
||||
* -
|
||||
- __s64
|
||||
- ``value64``
|
||||
- The 64-bit value of the control for 64-bit control types.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
-
|
||||
- The control flags. See :ref:`control-flags`.
|
||||
* - __s32
|
||||
- ``minimum``
|
||||
-
|
||||
- The minimum value of the control. See struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>`.
|
||||
* - __s32
|
||||
- ``maximum``
|
||||
-
|
||||
- The maximum value of the control. See struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>`.
|
||||
* - __s32
|
||||
- ``step``
|
||||
-
|
||||
- The step value of the control. See struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>`.
|
||||
* - __s32
|
||||
- ``default_value``
|
||||
-
|
||||
- The default value value of the control. See struct
|
||||
:ref:`v4l2_queryctrl <v4l2-queryctrl>`.
|
||||
|
||||
|
||||
|
||||
|
@ -446,14 +287,9 @@ call.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``frame_sequence``
|
||||
|
||||
- The sequence number of the frame being received.
|
||||
* - __u32
|
||||
- ``frame_sequence``
|
||||
- The sequence number of the frame being received.
|
||||
|
||||
|
||||
|
||||
|
@ -466,15 +302,10 @@ call.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``changes``
|
||||
|
||||
- A bitmask that tells what has changed. See
|
||||
:ref:`src-changes-flags`.
|
||||
* - __u32
|
||||
- ``changes``
|
||||
- A bitmask that tells what has changed. See
|
||||
:ref:`src-changes-flags`.
|
||||
|
||||
|
||||
|
||||
|
@ -487,39 +318,24 @@ call.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- Currently only one flag is available: if
|
||||
``V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ`` is set, then the
|
||||
``frame_sequence`` field is valid, otherwise that field should be
|
||||
ignored.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``frame_sequence``
|
||||
|
||||
- The sequence number of the frame being received. Only valid if the
|
||||
``V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ`` flag was set.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``region_mask``
|
||||
|
||||
- The bitmask of the regions that reported motion. There is at least
|
||||
one region. If this field is 0, then no motion was detected at
|
||||
all. If there is no ``V4L2_CID_DETECT_MD_REGION_GRID`` control
|
||||
(see :ref:`detect-controls`) to assign a different region to
|
||||
each cell in the motion detection grid, then that all cells are
|
||||
automatically assigned to the default region 0.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- Currently only one flag is available: if
|
||||
``V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ`` is set, then the
|
||||
``frame_sequence`` field is valid, otherwise that field should be
|
||||
ignored.
|
||||
* - __u32
|
||||
- ``frame_sequence``
|
||||
- The sequence number of the frame being received. Only valid if the
|
||||
``V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ`` flag was set.
|
||||
* - __u32
|
||||
- ``region_mask``
|
||||
- The bitmask of the regions that reported motion. There is at least
|
||||
one region. If this field is 0, then no motion was detected at
|
||||
all. If there is no ``V4L2_CID_DETECT_MD_REGION_GRID`` control
|
||||
(see :ref:`detect-controls`) to assign a different region to
|
||||
each cell in the motion detection grid, then that all cells are
|
||||
automatically assigned to the default region 0.
|
||||
|
||||
|
||||
|
||||
|
@ -532,35 +348,20 @@ call.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_EVENT_CTRL_CH_VALUE``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- This control event was triggered because the value of the control
|
||||
changed. Special cases: Volatile controls do no generate this
|
||||
event; If a control has the ``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE``
|
||||
flag set, then this event is sent as well, regardless its value.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_EVENT_CTRL_CH_FLAGS``
|
||||
|
||||
- 0x0002
|
||||
|
||||
- This control event was triggered because the control flags
|
||||
changed.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_EVENT_CTRL_CH_RANGE``
|
||||
|
||||
- 0x0004
|
||||
|
||||
- This control event was triggered because the minimum, maximum,
|
||||
step or the default value of the control changed.
|
||||
* - ``V4L2_EVENT_CTRL_CH_VALUE``
|
||||
- 0x0001
|
||||
- This control event was triggered because the value of the control
|
||||
changed. Special cases: Volatile controls do no generate this
|
||||
event; If a control has the ``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE``
|
||||
flag set, then this event is sent as well, regardless its value.
|
||||
* - ``V4L2_EVENT_CTRL_CH_FLAGS``
|
||||
- 0x0002
|
||||
- This control event was triggered because the control flags
|
||||
changed.
|
||||
* - ``V4L2_EVENT_CTRL_CH_RANGE``
|
||||
- 0x0004
|
||||
- This control event was triggered because the minimum, maximum,
|
||||
step or the default value of the control changed.
|
||||
|
||||
|
||||
|
||||
|
@ -573,16 +374,11 @@ call.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_EVENT_SRC_CH_RESOLUTION``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- This event gets triggered when a resolution change is detected at
|
||||
an input. This can come from an input connector or from a video
|
||||
decoder.
|
||||
* - ``V4L2_EVENT_SRC_CH_RESOLUTION``
|
||||
- 0x0001
|
||||
- This event gets triggered when a resolution change is detected at
|
||||
an input. This can come from an input connector or from a video
|
||||
decoder.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -64,81 +64,36 @@ that doesn't support them will return an ``EINVAL`` error code.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``min_width``
|
||||
|
||||
- Minimum width of the active video in pixels.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``max_width``
|
||||
|
||||
- Maximum width of the active video in pixels.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``min_height``
|
||||
|
||||
- Minimum height of the active video in lines.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``max_height``
|
||||
|
||||
- Maximum height of the active video in lines.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u64
|
||||
|
||||
- ``min_pixelclock``
|
||||
|
||||
- Minimum pixelclock frequency in Hz.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u64
|
||||
|
||||
- ``max_pixelclock``
|
||||
|
||||
- Maximum pixelclock frequency in Hz.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``standards``
|
||||
|
||||
- The video standard(s) supported by the hardware. See
|
||||
:ref:`dv-bt-standards` for a list of standards.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capabilities``
|
||||
|
||||
- Several flags giving more information about the capabilities. See
|
||||
:ref:`dv-bt-cap-capabilities` for a description of the flags.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [16]
|
||||
|
||||
- Reserved for future extensions.
|
||||
Drivers must set the array to zero.
|
||||
* - __u32
|
||||
- ``min_width``
|
||||
- Minimum width of the active video in pixels.
|
||||
* - __u32
|
||||
- ``max_width``
|
||||
- Maximum width of the active video in pixels.
|
||||
* - __u32
|
||||
- ``min_height``
|
||||
- Minimum height of the active video in lines.
|
||||
* - __u32
|
||||
- ``max_height``
|
||||
- Maximum height of the active video in lines.
|
||||
* - __u64
|
||||
- ``min_pixelclock``
|
||||
- Minimum pixelclock frequency in Hz.
|
||||
* - __u64
|
||||
- ``max_pixelclock``
|
||||
- Maximum pixelclock frequency in Hz.
|
||||
* - __u32
|
||||
- ``standards``
|
||||
- The video standard(s) supported by the hardware. See
|
||||
:ref:`dv-bt-standards` for a list of standards.
|
||||
* - __u32
|
||||
- ``capabilities``
|
||||
- Several flags giving more information about the capabilities. See
|
||||
:ref:`dv-bt-cap-capabilities` for a description of the flags.
|
||||
* - __u32
|
||||
- ``reserved``\ [16]
|
||||
- Reserved for future extensions.
|
||||
Drivers must set the array to zero.
|
||||
|
||||
|
||||
|
||||
|
@ -151,59 +106,30 @@ that doesn't support them will return an ``EINVAL`` error code.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2 1
|
||||
|
||||
* - __u32
|
||||
- ``type``
|
||||
- Type of DV timings as listed in :ref:`dv-timing-types`.
|
||||
* - __u32
|
||||
- ``pad``
|
||||
- Pad number as reported by the media controller API. This field is
|
||||
only used when operating on a subdevice node. When operating on a
|
||||
video node applications must set this field to zero.
|
||||
* - __u32
|
||||
- ``reserved``\ [2]
|
||||
- Reserved for future extensions.
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- Type of DV timings as listed in :ref:`dv-timing-types`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pad``
|
||||
|
||||
- Pad number as reported by the media controller API. This field is
|
||||
only used when operating on a subdevice node. When operating on a
|
||||
video node applications must set this field to zero.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [2]
|
||||
|
||||
- Reserved for future extensions.
|
||||
|
||||
Drivers and applications must set the array to zero.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- union
|
||||
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_bt_timings_cap`
|
||||
|
||||
- ``bt``
|
||||
|
||||
- BT.656/1120 timings capabilities of the hardware.
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``raw_data``\ [32]
|
||||
|
||||
-
|
||||
Drivers and applications must set the array to zero.
|
||||
* - union
|
||||
-
|
||||
-
|
||||
* -
|
||||
- struct :c:type:`v4l2_bt_timings_cap`
|
||||
- ``bt``
|
||||
- BT.656/1120 timings capabilities of the hardware.
|
||||
* -
|
||||
- __u32
|
||||
- ``raw_data``\ [32]
|
||||
-
|
||||
|
||||
.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
|
||||
|
||||
|
@ -213,43 +139,20 @@ that doesn't support them will return an ``EINVAL`` error code.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Flag
|
||||
|
||||
- Description
|
||||
|
||||
- .. row 2
|
||||
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_DV_BT_CAP_INTERLACED``
|
||||
|
||||
- Interlaced formats are supported.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_DV_BT_CAP_PROGRESSIVE``
|
||||
|
||||
- Progressive formats are supported.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_DV_BT_CAP_REDUCED_BLANKING``
|
||||
|
||||
- CVT/GTF specific: the timings can make use of reduced blanking
|
||||
(CVT) or the 'Secondary GTF' curve (GTF).
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_DV_BT_CAP_CUSTOM``
|
||||
|
||||
- Can support non-standard timings, i.e. timings not belonging to
|
||||
the standards set in the ``standards`` field.
|
||||
* - Flag
|
||||
- Description
|
||||
* -
|
||||
-
|
||||
* - ``V4L2_DV_BT_CAP_INTERLACED``
|
||||
- Interlaced formats are supported.
|
||||
* - ``V4L2_DV_BT_CAP_PROGRESSIVE``
|
||||
- Progressive formats are supported.
|
||||
* - ``V4L2_DV_BT_CAP_REDUCED_BLANKING``
|
||||
- CVT/GTF specific: the timings can make use of reduced blanking
|
||||
(CVT) or the 'Secondary GTF' curve (GTF).
|
||||
* - ``V4L2_DV_BT_CAP_CUSTOM``
|
||||
- Can support non-standard timings, i.e. timings not belonging to
|
||||
the standards set in the ``standards`` field.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -74,33 +74,18 @@ introduced in Linux 2.6.21.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``cmd``
|
||||
|
||||
- The encoder command, see :ref:`encoder-cmds`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- Flags to go with the command, see :ref:`encoder-flags`. If no
|
||||
flags are defined for this command, drivers and applications must
|
||||
set this field to zero.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``data``\ [8]
|
||||
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
* - __u32
|
||||
- ``cmd``
|
||||
- The encoder command, see :ref:`encoder-cmds`.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- Flags to go with the command, see :ref:`encoder-flags`. If no
|
||||
flags are defined for this command, drivers and applications must
|
||||
set this field to zero.
|
||||
* - __u32
|
||||
- ``data``\ [8]
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
|
||||
|
||||
|
@ -113,57 +98,37 @@ introduced in Linux 2.6.21.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_ENC_CMD_START``
|
||||
|
||||
- 0
|
||||
|
||||
- Start the encoder. When the encoder is already running or paused,
|
||||
this command does nothing. No flags are defined for this command.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_ENC_CMD_STOP``
|
||||
|
||||
- 1
|
||||
|
||||
- Stop the encoder. When the ``V4L2_ENC_CMD_STOP_AT_GOP_END`` flag
|
||||
is set, encoding will continue until the end of the current *Group
|
||||
Of Pictures*, otherwise encoding will stop immediately. When the
|
||||
encoder is already stopped, this command does nothing. mem2mem
|
||||
encoders will send a ``V4L2_EVENT_EOS`` event when the last frame
|
||||
has been encoded and all frames are ready to be dequeued and will
|
||||
set the ``V4L2_BUF_FLAG_LAST`` buffer flag on the last buffer of
|
||||
the capture queue to indicate there will be no new buffers
|
||||
produced to dequeue. This buffer may be empty, indicated by the
|
||||
driver setting the ``bytesused`` field to 0. Once the
|
||||
``V4L2_BUF_FLAG_LAST`` flag was set, the
|
||||
:ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore,
|
||||
but return an ``EPIPE`` error code.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_ENC_CMD_PAUSE``
|
||||
|
||||
- 2
|
||||
|
||||
- Pause the encoder. When the encoder has not been started yet, the
|
||||
driver will return an ``EPERM`` error code. When the encoder is
|
||||
already paused, this command does nothing. No flags are defined
|
||||
for this command.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_ENC_CMD_RESUME``
|
||||
|
||||
- 3
|
||||
|
||||
- Resume encoding after a PAUSE command. When the encoder has not
|
||||
been started yet, the driver will return an ``EPERM`` error code. When
|
||||
the encoder is already running, this command does nothing. No
|
||||
flags are defined for this command.
|
||||
* - ``V4L2_ENC_CMD_START``
|
||||
- 0
|
||||
- Start the encoder. When the encoder is already running or paused,
|
||||
this command does nothing. No flags are defined for this command.
|
||||
* - ``V4L2_ENC_CMD_STOP``
|
||||
- 1
|
||||
- Stop the encoder. When the ``V4L2_ENC_CMD_STOP_AT_GOP_END`` flag
|
||||
is set, encoding will continue until the end of the current *Group
|
||||
Of Pictures*, otherwise encoding will stop immediately. When the
|
||||
encoder is already stopped, this command does nothing. mem2mem
|
||||
encoders will send a ``V4L2_EVENT_EOS`` event when the last frame
|
||||
has been encoded and all frames are ready to be dequeued and will
|
||||
set the ``V4L2_BUF_FLAG_LAST`` buffer flag on the last buffer of
|
||||
the capture queue to indicate there will be no new buffers
|
||||
produced to dequeue. This buffer may be empty, indicated by the
|
||||
driver setting the ``bytesused`` field to 0. Once the
|
||||
``V4L2_BUF_FLAG_LAST`` flag was set, the
|
||||
:ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore,
|
||||
but return an ``EPIPE`` error code.
|
||||
* - ``V4L2_ENC_CMD_PAUSE``
|
||||
- 2
|
||||
- Pause the encoder. When the encoder has not been started yet, the
|
||||
driver will return an ``EPERM`` error code. When the encoder is
|
||||
already paused, this command does nothing. No flags are defined
|
||||
for this command.
|
||||
* - ``V4L2_ENC_CMD_RESUME``
|
||||
- 3
|
||||
- Resume encoding after a PAUSE command. When the encoder has not
|
||||
been started yet, the driver will return an ``EPERM`` error code. When
|
||||
the encoder is already running, this command does nothing. No
|
||||
flags are defined for this command.
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
|
||||
|
@ -175,15 +140,10 @@ introduced in Linux 2.6.21.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_ENC_CMD_STOP_AT_GOP_END``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- Stop encoding at the end of the current *Group Of Pictures*,
|
||||
rather than immediately.
|
||||
* - ``V4L2_ENC_CMD_STOP_AT_GOP_END``
|
||||
- 0x0001
|
||||
- Stop encoding at the end of the current *Group Of Pictures*,
|
||||
rather than immediately.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -74,41 +74,21 @@ return an ``EINVAL`` error code.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- Number of the DV timings, set by the application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pad``
|
||||
|
||||
- Pad number as reported by the media controller API. This field is
|
||||
only used when operating on a subdevice node. When operating on a
|
||||
video node applications must set this field to zero.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [2]
|
||||
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- struct :c:type:`v4l2_dv_timings`
|
||||
|
||||
- ``timings``
|
||||
|
||||
- The timings.
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Number of the DV timings, set by the application.
|
||||
* - __u32
|
||||
- ``pad``
|
||||
- Pad number as reported by the media controller API. This field is
|
||||
only used when operating on a subdevice node. When operating on a
|
||||
video node applications must set this field to zero.
|
||||
* - __u32
|
||||
- ``reserved``\ [2]
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
* - struct :c:type:`v4l2_dv_timings`
|
||||
- ``timings``
|
||||
- The timings.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -53,80 +53,48 @@ one until ``EINVAL`` is returned.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
- .. row 1
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Number of the format in the enumeration, set by the application.
|
||||
This is in no way related to the ``pixelformat`` field.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- Type of the data stream, set by the application. Only these types
|
||||
are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``,
|
||||
``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``,
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT``,
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` and
|
||||
``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- See :ref:`fmtdesc-flags`
|
||||
* - __u8
|
||||
- ``description``\ [32]
|
||||
- Description of the format, a NUL-terminated ASCII string. This
|
||||
information is intended for the user, for example: "YUV 4:2:2".
|
||||
* - __u32
|
||||
- ``pixelformat``
|
||||
- The image format identifier. This is a four character code as
|
||||
computed by the v4l2_fourcc() macro:
|
||||
* - :cspan:`2`
|
||||
|
||||
- __u32
|
||||
.. _v4l2-fourcc:
|
||||
|
||||
- ``index``
|
||||
``#define v4l2_fourcc(a,b,c,d)``
|
||||
|
||||
- Number of the format in the enumeration, set by the application.
|
||||
This is in no way related to the ``pixelformat`` field.
|
||||
``(((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))``
|
||||
|
||||
- .. row 2
|
||||
Several image formats are already defined by this specification in
|
||||
:ref:`pixfmt`.
|
||||
|
||||
- __u32
|
||||
.. attention::
|
||||
|
||||
- ``type``
|
||||
|
||||
- Type of the data stream, set by the application. Only these types
|
||||
are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``,
|
||||
``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``,
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT``,
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` and
|
||||
``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- See :ref:`fmtdesc-flags`
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u8
|
||||
|
||||
- ``description``\ [32]
|
||||
|
||||
- Description of the format, a NUL-terminated ASCII string. This
|
||||
information is intended for the user, for example: "YUV 4:2:2".
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pixelformat``
|
||||
|
||||
- The image format identifier. This is a four character code as
|
||||
computed by the v4l2_fourcc() macro:
|
||||
|
||||
- .. row 6
|
||||
|
||||
- :cspan:`2`
|
||||
|
||||
.. _v4l2-fourcc:
|
||||
|
||||
``#define v4l2_fourcc(a,b,c,d)``
|
||||
|
||||
``(((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))``
|
||||
|
||||
Several image formats are already defined by this specification in
|
||||
:ref:`pixfmt`.
|
||||
|
||||
.. attention::
|
||||
|
||||
These codes are not the same as those used
|
||||
in the Windows world.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [4]
|
||||
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
These codes are not the same as those used
|
||||
in the Windows world.
|
||||
* - __u32
|
||||
- ``reserved``\ [4]
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
|
||||
|
||||
|
||||
|
@ -139,24 +107,14 @@ one until ``EINVAL`` is returned.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_FMT_FLAG_COMPRESSED``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- This is a compressed format.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_FMT_FLAG_EMULATED``
|
||||
|
||||
- 0x0002
|
||||
|
||||
- This format is not native to the device but emulated through
|
||||
software (usually libv4l2), where possible try to use a native
|
||||
format instead for better performance.
|
||||
* - ``V4L2_FMT_FLAG_COMPRESSED``
|
||||
- 0x0001
|
||||
- This is a compressed format.
|
||||
* - ``V4L2_FMT_FLAG_EMULATED``
|
||||
- 0x0002
|
||||
- This format is not native to the device but emulated through
|
||||
software (usually libv4l2), where possible try to use a native
|
||||
format instead for better performance.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -110,30 +110,15 @@ application should zero out all members except for the *IN* fields.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- struct :c:type:`v4l2_fract`
|
||||
|
||||
- ``min``
|
||||
|
||||
- Minimum frame interval [s].
|
||||
|
||||
- .. row 2
|
||||
|
||||
- struct :c:type:`v4l2_fract`
|
||||
|
||||
- ``max``
|
||||
|
||||
- Maximum frame interval [s].
|
||||
|
||||
- .. row 3
|
||||
|
||||
- struct :c:type:`v4l2_fract`
|
||||
|
||||
- ``step``
|
||||
|
||||
- Frame interval step size [s].
|
||||
* - struct :c:type:`v4l2_fract`
|
||||
- ``min``
|
||||
- Minimum frame interval [s].
|
||||
* - struct :c:type:`v4l2_fract`
|
||||
- ``max``
|
||||
- Maximum frame interval [s].
|
||||
* - struct :c:type:`v4l2_fract`
|
||||
- ``step``
|
||||
- Frame interval step size [s].
|
||||
|
||||
|
||||
|
||||
|
@ -143,87 +128,43 @@ application should zero out all members except for the *IN* fields.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
-
|
||||
- IN: Index of the given frame interval in the enumeration.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pixel_format``
|
||||
|
||||
-
|
||||
- IN: Pixel format for which the frame intervals are enumerated.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``width``
|
||||
|
||||
-
|
||||
- IN: Frame width for which the frame intervals are enumerated.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``height``
|
||||
|
||||
-
|
||||
- IN: Frame height for which the frame intervals are enumerated.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
-
|
||||
- OUT: Frame interval type the device supports.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- union
|
||||
|
||||
-
|
||||
-
|
||||
- OUT: Frame interval with the given index.
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_fract`
|
||||
|
||||
- ``discrete``
|
||||
|
||||
- Frame interval [s].
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_frmival_stepwise`
|
||||
|
||||
- ``stepwise``
|
||||
|
||||
-
|
||||
|
||||
- .. row 9
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved[2]``
|
||||
|
||||
-
|
||||
- Reserved space for future use. Must be zeroed by drivers and
|
||||
applications.
|
||||
* - __u32
|
||||
- ``index``
|
||||
-
|
||||
- IN: Index of the given frame interval in the enumeration.
|
||||
* - __u32
|
||||
- ``pixel_format``
|
||||
-
|
||||
- IN: Pixel format for which the frame intervals are enumerated.
|
||||
* - __u32
|
||||
- ``width``
|
||||
-
|
||||
- IN: Frame width for which the frame intervals are enumerated.
|
||||
* - __u32
|
||||
- ``height``
|
||||
-
|
||||
- IN: Frame height for which the frame intervals are enumerated.
|
||||
* - __u32
|
||||
- ``type``
|
||||
-
|
||||
- OUT: Frame interval type the device supports.
|
||||
* - union
|
||||
-
|
||||
-
|
||||
- OUT: Frame interval with the given index.
|
||||
* -
|
||||
- struct :c:type:`v4l2_fract`
|
||||
- ``discrete``
|
||||
- Frame interval [s].
|
||||
* -
|
||||
- struct :c:type:`v4l2_frmival_stepwise`
|
||||
- ``stepwise``
|
||||
-
|
||||
* - __u32
|
||||
- ``reserved[2]``
|
||||
-
|
||||
- Reserved space for future use. Must be zeroed by drivers and
|
||||
applications.
|
||||
|
||||
|
||||
|
||||
|
@ -240,30 +181,15 @@ Enums
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_FRMIVAL_TYPE_DISCRETE``
|
||||
|
||||
- 1
|
||||
|
||||
- Discrete frame interval.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_FRMIVAL_TYPE_CONTINUOUS``
|
||||
|
||||
- 2
|
||||
|
||||
- Continuous frame interval.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_FRMIVAL_TYPE_STEPWISE``
|
||||
|
||||
- 3
|
||||
|
||||
- Step-wise defined frame interval.
|
||||
* - ``V4L2_FRMIVAL_TYPE_DISCRETE``
|
||||
- 1
|
||||
- Discrete frame interval.
|
||||
* - ``V4L2_FRMIVAL_TYPE_CONTINUOUS``
|
||||
- 2
|
||||
- Continuous frame interval.
|
||||
* - ``V4L2_FRMIVAL_TYPE_STEPWISE``
|
||||
- 3
|
||||
- Step-wise defined frame interval.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -99,22 +99,12 @@ application should zero out all members except for the *IN* fields.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``width``
|
||||
|
||||
- Width of the frame [pixel].
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``height``
|
||||
|
||||
- Height of the frame [pixel].
|
||||
* - __u32
|
||||
- ``width``
|
||||
- Width of the frame [pixel].
|
||||
* - __u32
|
||||
- ``height``
|
||||
- Height of the frame [pixel].
|
||||
|
||||
|
||||
|
||||
|
@ -127,54 +117,24 @@ application should zero out all members except for the *IN* fields.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``min_width``
|
||||
|
||||
- Minimum frame width [pixel].
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``max_width``
|
||||
|
||||
- Maximum frame width [pixel].
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``step_width``
|
||||
|
||||
- Frame width step size [pixel].
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``min_height``
|
||||
|
||||
- Minimum frame height [pixel].
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``max_height``
|
||||
|
||||
- Maximum frame height [pixel].
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``step_height``
|
||||
|
||||
- Frame height step size [pixel].
|
||||
* - __u32
|
||||
- ``min_width``
|
||||
- Minimum frame width [pixel].
|
||||
* - __u32
|
||||
- ``max_width``
|
||||
- Maximum frame width [pixel].
|
||||
* - __u32
|
||||
- ``step_width``
|
||||
- Frame width step size [pixel].
|
||||
* - __u32
|
||||
- ``min_height``
|
||||
- Minimum frame height [pixel].
|
||||
* - __u32
|
||||
- ``max_height``
|
||||
- Maximum frame height [pixel].
|
||||
* - __u32
|
||||
- ``step_height``
|
||||
- Frame height step size [pixel].
|
||||
|
||||
|
||||
|
||||
|
@ -184,69 +144,35 @@ application should zero out all members except for the *IN* fields.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
-
|
||||
- IN: Index of the given frame size in the enumeration.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pixel_format``
|
||||
|
||||
-
|
||||
- IN: Pixel format for which the frame sizes are enumerated.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
-
|
||||
- OUT: Frame size type the device supports.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- union
|
||||
|
||||
-
|
||||
-
|
||||
- OUT: Frame size with the given index.
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_frmsize_discrete`
|
||||
|
||||
- ``discrete``
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_frmsize_stepwise`
|
||||
|
||||
- ``stepwise``
|
||||
|
||||
-
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved[2]``
|
||||
|
||||
-
|
||||
- Reserved space for future use. Must be zeroed by drivers and
|
||||
applications.
|
||||
* - __u32
|
||||
- ``index``
|
||||
-
|
||||
- IN: Index of the given frame size in the enumeration.
|
||||
* - __u32
|
||||
- ``pixel_format``
|
||||
-
|
||||
- IN: Pixel format for which the frame sizes are enumerated.
|
||||
* - __u32
|
||||
- ``type``
|
||||
-
|
||||
- OUT: Frame size type the device supports.
|
||||
* - union
|
||||
-
|
||||
-
|
||||
- OUT: Frame size with the given index.
|
||||
* -
|
||||
- struct :c:type:`v4l2_frmsize_discrete`
|
||||
- ``discrete``
|
||||
-
|
||||
* -
|
||||
- struct :c:type:`v4l2_frmsize_stepwise`
|
||||
- ``stepwise``
|
||||
-
|
||||
* - __u32
|
||||
- ``reserved[2]``
|
||||
-
|
||||
- Reserved space for future use. Must be zeroed by drivers and
|
||||
applications.
|
||||
|
||||
|
||||
|
||||
|
@ -263,30 +189,15 @@ Enums
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_FRMSIZE_TYPE_DISCRETE``
|
||||
|
||||
- 1
|
||||
|
||||
- Discrete frame size.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_FRMSIZE_TYPE_CONTINUOUS``
|
||||
|
||||
- 2
|
||||
|
||||
- Continuous frame size.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_FRMSIZE_TYPE_STEPWISE``
|
||||
|
||||
- 3
|
||||
|
||||
- Step-wise defined frame size.
|
||||
* - ``V4L2_FRMSIZE_TYPE_DISCRETE``
|
||||
- 1
|
||||
- Discrete frame size.
|
||||
* - ``V4L2_FRMSIZE_TYPE_CONTINUOUS``
|
||||
- 2
|
||||
- Continuous frame size.
|
||||
* - ``V4L2_FRMSIZE_TYPE_STEPWISE``
|
||||
- 3
|
||||
- Step-wise defined frame size.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -50,103 +50,63 @@ of the corresponding tuner/modulator is set.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2 1 1
|
||||
|
||||
* - __u32
|
||||
- ``tuner``
|
||||
- The tuner or modulator index number. This is the same value as in
|
||||
the struct :c:type:`v4l2_input` ``tuner`` field and
|
||||
the struct :c:type:`v4l2_tuner` ``index`` field, or
|
||||
the struct :c:type:`v4l2_output` ``modulator`` field
|
||||
and the struct :c:type:`v4l2_modulator` ``index``
|
||||
field.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- The tuner type. This is the same value as in the struct
|
||||
:c:type:`v4l2_tuner` ``type`` field. The type must be
|
||||
set to ``V4L2_TUNER_RADIO`` for ``/dev/radioX`` device nodes, and
|
||||
to ``V4L2_TUNER_ANALOG_TV`` for all others. Set this field to
|
||||
``V4L2_TUNER_RADIO`` for modulators (currently only radio
|
||||
modulators are supported). See :c:type:`v4l2_tuner_type`
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Identifies the frequency band, set by the application.
|
||||
* - __u32
|
||||
- ``capability``
|
||||
- :cspan:`2` The tuner/modulator capability flags for this
|
||||
frequency band, see :ref:`tuner-capability`. The
|
||||
``V4L2_TUNER_CAP_LOW`` or ``V4L2_TUNER_CAP_1HZ`` capability must
|
||||
be the same for all frequency bands of the selected
|
||||
tuner/modulator. So either all bands have that capability set, or
|
||||
none of them have that capability.
|
||||
* - __u32
|
||||
- ``rangelow``
|
||||
- :cspan:`2` The lowest tunable frequency in units of 62.5 kHz, or
|
||||
if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units
|
||||
of 62.5 Hz, for this frequency band. A 1 Hz unit is used when the
|
||||
``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set.
|
||||
* - __u32
|
||||
- ``rangehigh``
|
||||
- :cspan:`2` The highest tunable frequency in units of 62.5 kHz,
|
||||
or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in
|
||||
units of 62.5 Hz, for this frequency band. A 1 Hz unit is used
|
||||
when the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set.
|
||||
* - __u32
|
||||
- ``modulation``
|
||||
- :cspan:`2` The supported modulation systems of this frequency
|
||||
band. See :ref:`band-modulation`.
|
||||
|
||||
- .. row 1
|
||||
.. note::
|
||||
|
||||
- __u32
|
||||
Currently only one modulation system per frequency band
|
||||
is supported. More work will need to be done if multiple
|
||||
modulation systems are possible. Contact the linux-media
|
||||
mailing list
|
||||
(`https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__)
|
||||
if you need such functionality.
|
||||
* - __u32
|
||||
- ``reserved``\ [9]
|
||||
- Reserved for future extensions.
|
||||
|
||||
- ``tuner``
|
||||
|
||||
- The tuner or modulator index number. This is the same value as in
|
||||
the struct :c:type:`v4l2_input` ``tuner`` field and
|
||||
the struct :c:type:`v4l2_tuner` ``index`` field, or
|
||||
the struct :c:type:`v4l2_output` ``modulator`` field
|
||||
and the struct :c:type:`v4l2_modulator` ``index``
|
||||
field.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- The tuner type. This is the same value as in the struct
|
||||
:c:type:`v4l2_tuner` ``type`` field. The type must be
|
||||
set to ``V4L2_TUNER_RADIO`` for ``/dev/radioX`` device nodes, and
|
||||
to ``V4L2_TUNER_ANALOG_TV`` for all others. Set this field to
|
||||
``V4L2_TUNER_RADIO`` for modulators (currently only radio
|
||||
modulators are supported). See :c:type:`v4l2_tuner_type`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- Identifies the frequency band, set by the application.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capability``
|
||||
|
||||
- :cspan:`2` The tuner/modulator capability flags for this
|
||||
frequency band, see :ref:`tuner-capability`. The
|
||||
``V4L2_TUNER_CAP_LOW`` or ``V4L2_TUNER_CAP_1HZ`` capability must
|
||||
be the same for all frequency bands of the selected
|
||||
tuner/modulator. So either all bands have that capability set, or
|
||||
none of them have that capability.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``rangelow``
|
||||
|
||||
- :cspan:`2` The lowest tunable frequency in units of 62.5 kHz, or
|
||||
if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units
|
||||
of 62.5 Hz, for this frequency band. A 1 Hz unit is used when the
|
||||
``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``rangehigh``
|
||||
|
||||
- :cspan:`2` The highest tunable frequency in units of 62.5 kHz,
|
||||
or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in
|
||||
units of 62.5 Hz, for this frequency band. A 1 Hz unit is used
|
||||
when the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``modulation``
|
||||
|
||||
- :cspan:`2` The supported modulation systems of this frequency
|
||||
band. See :ref:`band-modulation`.
|
||||
|
||||
.. note::
|
||||
|
||||
Currently only one modulation system per frequency band
|
||||
is supported. More work will need to be done if multiple
|
||||
modulation systems are possible. Contact the linux-media
|
||||
mailing list
|
||||
(`https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__)
|
||||
if you need such functionality.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [9]
|
||||
|
||||
- Reserved for future extensions.
|
||||
|
||||
Applications and drivers must set the array to zero.
|
||||
Applications and drivers must set the array to zero.
|
||||
|
||||
|
||||
|
||||
|
@ -159,30 +119,15 @@ of the corresponding tuner/modulator is set.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_BAND_MODULATION_VSB``
|
||||
|
||||
- 0x02
|
||||
|
||||
- Vestigial Sideband modulation, used for analog TV.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_BAND_MODULATION_FM``
|
||||
|
||||
- 0x04
|
||||
|
||||
- Frequency Modulation, commonly used for analog radio.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_BAND_MODULATION_AM``
|
||||
|
||||
- 0x08
|
||||
|
||||
- Amplitude Modulation, commonly used for analog radio.
|
||||
* - ``V4L2_BAND_MODULATION_VSB``
|
||||
- 0x02
|
||||
- Vestigial Sideband modulation, used for analog TV.
|
||||
* - ``V4L2_BAND_MODULATION_FM``
|
||||
- 0x04
|
||||
- Frequency Modulation, commonly used for analog radio.
|
||||
* - ``V4L2_BAND_MODULATION_AM``
|
||||
- 0x08
|
||||
- Amplitude Modulation, commonly used for analog radio.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -48,103 +48,58 @@ at index zero, incrementing by one until the driver returns ``EINVAL``.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Identifies the input, set by the application.
|
||||
* - __u8
|
||||
- ``name``\ [32]
|
||||
- Name of the video input, a NUL-terminated ASCII string, for
|
||||
example: "Vin (Composite 2)". This information is intended for the
|
||||
user, preferably the connector label on the device itself.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- Type of the input, see :ref:`input-type`.
|
||||
* - __u32
|
||||
- ``audioset``
|
||||
- Drivers can enumerate up to 32 video and audio inputs. This field
|
||||
shows which audio inputs were selectable as audio source if this
|
||||
was the currently selected video input. It is a bit mask. The LSB
|
||||
corresponds to audio input 0, the MSB to input 31. Any number of
|
||||
bits can be set, or none.
|
||||
|
||||
- .. row 1
|
||||
When the driver does not enumerate audio inputs no bits must be
|
||||
set. Applications shall not interpret this as lack of audio
|
||||
support. Some drivers automatically select audio sources and do
|
||||
not enumerate them since there is no choice anyway.
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- Identifies the input, set by the application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u8
|
||||
|
||||
- ``name``\ [32]
|
||||
|
||||
- Name of the video input, a NUL-terminated ASCII string, for
|
||||
example: "Vin (Composite 2)". This information is intended for the
|
||||
user, preferably the connector label on the device itself.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- Type of the input, see :ref:`input-type`.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``audioset``
|
||||
|
||||
- Drivers can enumerate up to 32 video and audio inputs. This field
|
||||
shows which audio inputs were selectable as audio source if this
|
||||
was the currently selected video input. It is a bit mask. The LSB
|
||||
corresponds to audio input 0, the MSB to input 31. Any number of
|
||||
bits can be set, or none.
|
||||
|
||||
When the driver does not enumerate audio inputs no bits must be
|
||||
set. Applications shall not interpret this as lack of audio
|
||||
support. Some drivers automatically select audio sources and do
|
||||
not enumerate them since there is no choice anyway.
|
||||
|
||||
For details on audio inputs and how to select the current input
|
||||
see :ref:`audio`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``tuner``
|
||||
|
||||
- Capture devices can have zero or more tuners (RF demodulators).
|
||||
When the ``type`` is set to ``V4L2_INPUT_TYPE_TUNER`` this is an
|
||||
RF connector and this field identifies the tuner. It corresponds
|
||||
to struct :c:type:`v4l2_tuner` field ``index``. For
|
||||
details on tuners see :ref:`tuner`.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- :ref:`v4l2_std_id <v4l2-std-id>`
|
||||
|
||||
- ``std``
|
||||
|
||||
- Every video input supports one or more different video standards.
|
||||
This field is a set of all supported standards. For details on
|
||||
video standards and how to switch see :ref:`standard`.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``status``
|
||||
|
||||
- This field provides status information about the input. See
|
||||
:ref:`input-status` for flags. With the exception of the sensor
|
||||
orientation bits ``status`` is only valid when this is the current
|
||||
input.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capabilities``
|
||||
|
||||
- This field provides capabilities for the input. See
|
||||
:ref:`input-capabilities` for flags.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [3]
|
||||
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
For details on audio inputs and how to select the current input
|
||||
see :ref:`audio`.
|
||||
* - __u32
|
||||
- ``tuner``
|
||||
- Capture devices can have zero or more tuners (RF demodulators).
|
||||
When the ``type`` is set to ``V4L2_INPUT_TYPE_TUNER`` this is an
|
||||
RF connector and this field identifies the tuner. It corresponds
|
||||
to struct :c:type:`v4l2_tuner` field ``index``. For
|
||||
details on tuners see :ref:`tuner`.
|
||||
* - :ref:`v4l2_std_id <v4l2-std-id>`
|
||||
- ``std``
|
||||
- Every video input supports one or more different video standards.
|
||||
This field is a set of all supported standards. For details on
|
||||
video standards and how to switch see :ref:`standard`.
|
||||
* - __u32
|
||||
- ``status``
|
||||
- This field provides status information about the input. See
|
||||
:ref:`input-status` for flags. With the exception of the sensor
|
||||
orientation bits ``status`` is only valid when this is the current
|
||||
input.
|
||||
* - __u32
|
||||
- ``capabilities``
|
||||
- This field provides capabilities for the input. See
|
||||
:ref:`input-capabilities` for flags.
|
||||
* - __u32
|
||||
- ``reserved``\ [3]
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
|
||||
|
||||
|
||||
|
@ -157,31 +112,16 @@ at index zero, incrementing by one until the driver returns ``EINVAL``.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_INPUT_TYPE_TUNER``
|
||||
|
||||
- 1
|
||||
|
||||
- This input uses a tuner (RF demodulator).
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_INPUT_TYPE_CAMERA``
|
||||
|
||||
- 2
|
||||
|
||||
- Analog baseband input, for example CVBS / Composite Video,
|
||||
S-Video, RGB.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_INPUT_TYPE_TOUCH``
|
||||
|
||||
- 3
|
||||
|
||||
- This input is a touch device for capturing raw touch data.
|
||||
* - ``V4L2_INPUT_TYPE_TUNER``
|
||||
- 1
|
||||
- This input uses a tuner (RF demodulator).
|
||||
* - ``V4L2_INPUT_TYPE_CAMERA``
|
||||
- 2
|
||||
- Analog baseband input, for example CVBS / Composite Video,
|
||||
S-Video, RGB.
|
||||
* - ``V4L2_INPUT_TYPE_TOUCH``
|
||||
- 3
|
||||
- This input is a touch device for capturing raw touch data.
|
||||
|
||||
|
||||
|
||||
|
@ -193,157 +133,67 @@ at index zero, incrementing by one until the driver returns ``EINVAL``.
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- :cspan:`2` General
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_IN_ST_NO_POWER``
|
||||
|
||||
- 0x00000001
|
||||
|
||||
- Attached device is off.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_IN_ST_NO_SIGNAL``
|
||||
|
||||
- 0x00000002
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_IN_ST_NO_COLOR``
|
||||
|
||||
- 0x00000004
|
||||
|
||||
- The hardware supports color decoding, but does not detect color
|
||||
modulation in the signal.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- :cspan:`2` Sensor Orientation
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_IN_ST_HFLIP``
|
||||
|
||||
- 0x00000010
|
||||
|
||||
- The input is connected to a device that produces a signal that is
|
||||
flipped horizontally and does not correct this before passing the
|
||||
signal to userspace.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_IN_ST_VFLIP``
|
||||
|
||||
- 0x00000020
|
||||
|
||||
- The input is connected to a device that produces a signal that is
|
||||
flipped vertically and does not correct this before passing the
|
||||
signal to userspace.
|
||||
.. note:: A 180 degree rotation is the same as HFLIP | VFLIP
|
||||
|
||||
- .. row 8
|
||||
|
||||
- :cspan:`2` Analog Video
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``V4L2_IN_ST_NO_H_LOCK``
|
||||
|
||||
- 0x00000100
|
||||
|
||||
- No horizontal sync lock.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- ``V4L2_IN_ST_COLOR_KILL``
|
||||
|
||||
- 0x00000200
|
||||
|
||||
- A color killer circuit automatically disables color decoding when
|
||||
it detects no color modulation. When this flag is set the color
|
||||
killer is enabled *and* has shut off color decoding.
|
||||
|
||||
- .. row 11
|
||||
|
||||
- ``V4L2_IN_ST_NO_V_LOCK``
|
||||
|
||||
- 0x00000400
|
||||
|
||||
- No vertical sync lock.
|
||||
|
||||
- .. row 12
|
||||
|
||||
- ``V4L2_IN_ST_NO_STD_LOCK``
|
||||
|
||||
- 0x00000800
|
||||
|
||||
- No standard format lock in case of auto-detection format
|
||||
by the component.
|
||||
|
||||
- .. row 13
|
||||
|
||||
- :cspan:`2` Digital Video
|
||||
|
||||
- .. row 14
|
||||
|
||||
- ``V4L2_IN_ST_NO_SYNC``
|
||||
|
||||
- 0x00010000
|
||||
|
||||
- No synchronization lock.
|
||||
|
||||
- .. row 15
|
||||
|
||||
- ``V4L2_IN_ST_NO_EQU``
|
||||
|
||||
- 0x00020000
|
||||
|
||||
- No equalizer lock.
|
||||
|
||||
- .. row 16
|
||||
|
||||
- ``V4L2_IN_ST_NO_CARRIER``
|
||||
|
||||
- 0x00040000
|
||||
|
||||
- Carrier recovery failed.
|
||||
|
||||
- .. row 17
|
||||
|
||||
- :cspan:`2` VCR and Set-Top Box
|
||||
|
||||
- .. row 18
|
||||
|
||||
- ``V4L2_IN_ST_MACROVISION``
|
||||
|
||||
- 0x01000000
|
||||
|
||||
- Macrovision is an analog copy prevention system mangling the video
|
||||
signal to confuse video recorders. When this flag is set
|
||||
Macrovision has been detected.
|
||||
|
||||
- .. row 19
|
||||
|
||||
- ``V4L2_IN_ST_NO_ACCESS``
|
||||
|
||||
- 0x02000000
|
||||
|
||||
- Conditional access denied.
|
||||
|
||||
- .. row 20
|
||||
|
||||
- ``V4L2_IN_ST_VTR``
|
||||
|
||||
- 0x04000000
|
||||
|
||||
- VTR time constant. [?]
|
||||
* - :cspan:`2` General
|
||||
* - ``V4L2_IN_ST_NO_POWER``
|
||||
- 0x00000001
|
||||
- Attached device is off.
|
||||
* - ``V4L2_IN_ST_NO_SIGNAL``
|
||||
- 0x00000002
|
||||
-
|
||||
* - ``V4L2_IN_ST_NO_COLOR``
|
||||
- 0x00000004
|
||||
- The hardware supports color decoding, but does not detect color
|
||||
modulation in the signal.
|
||||
* - :cspan:`2` Sensor Orientation
|
||||
* - ``V4L2_IN_ST_HFLIP``
|
||||
- 0x00000010
|
||||
- The input is connected to a device that produces a signal that is
|
||||
flipped horizontally and does not correct this before passing the
|
||||
signal to userspace.
|
||||
* - ``V4L2_IN_ST_VFLIP``
|
||||
- 0x00000020
|
||||
- The input is connected to a device that produces a signal that is
|
||||
flipped vertically and does not correct this before passing the
|
||||
signal to userspace.
|
||||
.. note:: A 180 degree rotation is the same as HFLIP | VFLIP
|
||||
* - :cspan:`2` Analog Video
|
||||
* - ``V4L2_IN_ST_NO_H_LOCK``
|
||||
- 0x00000100
|
||||
- No horizontal sync lock.
|
||||
* - ``V4L2_IN_ST_COLOR_KILL``
|
||||
- 0x00000200
|
||||
- A color killer circuit automatically disables color decoding when
|
||||
it detects no color modulation. When this flag is set the color
|
||||
killer is enabled *and* has shut off color decoding.
|
||||
* - ``V4L2_IN_ST_NO_V_LOCK``
|
||||
- 0x00000400
|
||||
- No vertical sync lock.
|
||||
* - ``V4L2_IN_ST_NO_STD_LOCK``
|
||||
- 0x00000800
|
||||
- No standard format lock in case of auto-detection format
|
||||
by the component.
|
||||
* - :cspan:`2` Digital Video
|
||||
* - ``V4L2_IN_ST_NO_SYNC``
|
||||
- 0x00010000
|
||||
- No synchronization lock.
|
||||
* - ``V4L2_IN_ST_NO_EQU``
|
||||
- 0x00020000
|
||||
- No equalizer lock.
|
||||
* - ``V4L2_IN_ST_NO_CARRIER``
|
||||
- 0x00040000
|
||||
- Carrier recovery failed.
|
||||
* - :cspan:`2` VCR and Set-Top Box
|
||||
* - ``V4L2_IN_ST_MACROVISION``
|
||||
- 0x01000000
|
||||
- Macrovision is an analog copy prevention system mangling the video
|
||||
signal to confuse video recorders. When this flag is set
|
||||
Macrovision has been detected.
|
||||
* - ``V4L2_IN_ST_NO_ACCESS``
|
||||
- 0x02000000
|
||||
- Conditional access denied.
|
||||
* - ``V4L2_IN_ST_VTR``
|
||||
- 0x04000000
|
||||
- VTR time constant. [?]
|
||||
|
||||
|
||||
|
||||
|
@ -356,34 +206,19 @@ at index zero, incrementing by one until the driver returns ``EINVAL``.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_IN_CAP_DV_TIMINGS``
|
||||
|
||||
- 0x00000002
|
||||
|
||||
- This input supports setting video timings by using
|
||||
VIDIOC_S_DV_TIMINGS.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_IN_CAP_STD``
|
||||
|
||||
- 0x00000004
|
||||
|
||||
- This input supports setting the TV standard by using
|
||||
VIDIOC_S_STD.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_IN_CAP_NATIVE_SIZE``
|
||||
|
||||
- 0x00000008
|
||||
|
||||
- This input supports setting the native size using the
|
||||
``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see
|
||||
:ref:`v4l2-selections-common`.
|
||||
* - ``V4L2_IN_CAP_DV_TIMINGS``
|
||||
- 0x00000002
|
||||
- This input supports setting video timings by using
|
||||
VIDIOC_S_DV_TIMINGS.
|
||||
* - ``V4L2_IN_CAP_STD``
|
||||
- 0x00000004
|
||||
- This input supports setting the TV standard by using
|
||||
VIDIOC_S_STD.
|
||||
* - ``V4L2_IN_CAP_NATIVE_SIZE``
|
||||
- 0x00000008
|
||||
- This input supports setting the native size using the
|
||||
``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see
|
||||
:ref:`v4l2-selections-common`.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -49,92 +49,52 @@ EINVAL.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Identifies the output, set by the application.
|
||||
* - __u8
|
||||
- ``name``\ [32]
|
||||
- Name of the video output, a NUL-terminated ASCII string, for
|
||||
example: "Vout". This information is intended for the user,
|
||||
preferably the connector label on the device itself.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- Type of the output, see :ref:`output-type`.
|
||||
* - __u32
|
||||
- ``audioset``
|
||||
- Drivers can enumerate up to 32 video and audio outputs. This field
|
||||
shows which audio outputs were selectable as the current output if
|
||||
this was the currently selected video output. It is a bit mask.
|
||||
The LSB corresponds to audio output 0, the MSB to output 31. Any
|
||||
number of bits can be set, or none.
|
||||
|
||||
- .. row 1
|
||||
When the driver does not enumerate audio outputs no bits must be
|
||||
set. Applications shall not interpret this as lack of audio
|
||||
support. Drivers may automatically select audio outputs without
|
||||
enumerating them.
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- Identifies the output, set by the application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u8
|
||||
|
||||
- ``name``\ [32]
|
||||
|
||||
- Name of the video output, a NUL-terminated ASCII string, for
|
||||
example: "Vout". This information is intended for the user,
|
||||
preferably the connector label on the device itself.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- Type of the output, see :ref:`output-type`.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``audioset``
|
||||
|
||||
- Drivers can enumerate up to 32 video and audio outputs. This field
|
||||
shows which audio outputs were selectable as the current output if
|
||||
this was the currently selected video output. It is a bit mask.
|
||||
The LSB corresponds to audio output 0, the MSB to output 31. Any
|
||||
number of bits can be set, or none.
|
||||
|
||||
When the driver does not enumerate audio outputs no bits must be
|
||||
set. Applications shall not interpret this as lack of audio
|
||||
support. Drivers may automatically select audio outputs without
|
||||
enumerating them.
|
||||
|
||||
For details on audio outputs and how to select the current output
|
||||
see :ref:`audio`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``modulator``
|
||||
|
||||
- Output devices can have zero or more RF modulators. When the
|
||||
``type`` is ``V4L2_OUTPUT_TYPE_MODULATOR`` this is an RF connector
|
||||
and this field identifies the modulator. It corresponds to struct
|
||||
:c:type:`v4l2_modulator` field ``index``. For
|
||||
details on modulators see :ref:`tuner`.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- :ref:`v4l2_std_id <v4l2-std-id>`
|
||||
|
||||
- ``std``
|
||||
|
||||
- Every video output supports one or more different video standards.
|
||||
This field is a set of all supported standards. For details on
|
||||
video standards and how to switch see :ref:`standard`.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capabilities``
|
||||
|
||||
- This field provides capabilities for the output. See
|
||||
:ref:`output-capabilities` for flags.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [3]
|
||||
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
For details on audio outputs and how to select the current output
|
||||
see :ref:`audio`.
|
||||
* - __u32
|
||||
- ``modulator``
|
||||
- Output devices can have zero or more RF modulators. When the
|
||||
``type`` is ``V4L2_OUTPUT_TYPE_MODULATOR`` this is an RF connector
|
||||
and this field identifies the modulator. It corresponds to struct
|
||||
:c:type:`v4l2_modulator` field ``index``. For
|
||||
details on modulators see :ref:`tuner`.
|
||||
* - :ref:`v4l2_std_id <v4l2-std-id>`
|
||||
- ``std``
|
||||
- Every video output supports one or more different video standards.
|
||||
This field is a set of all supported standards. For details on
|
||||
video standards and how to switch see :ref:`standard`.
|
||||
* - __u32
|
||||
- ``capabilities``
|
||||
- This field provides capabilities for the output. See
|
||||
:ref:`output-capabilities` for flags.
|
||||
* - __u32
|
||||
- ``reserved``\ [3]
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
|
||||
|
||||
|
||||
|
@ -147,31 +107,16 @@ EINVAL.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_OUTPUT_TYPE_MODULATOR``
|
||||
|
||||
- 1
|
||||
|
||||
- This output is an analog TV modulator.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_OUTPUT_TYPE_ANALOG``
|
||||
|
||||
- 2
|
||||
|
||||
- Analog baseband output, for example Composite / CVBS, S-Video,
|
||||
RGB.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY``
|
||||
|
||||
- 3
|
||||
|
||||
- [?]
|
||||
* - ``V4L2_OUTPUT_TYPE_MODULATOR``
|
||||
- 1
|
||||
- This output is an analog TV modulator.
|
||||
* - ``V4L2_OUTPUT_TYPE_ANALOG``
|
||||
- 2
|
||||
- Analog baseband output, for example Composite / CVBS, S-Video,
|
||||
RGB.
|
||||
* - ``V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY``
|
||||
- 3
|
||||
- [?]
|
||||
|
||||
|
||||
|
||||
|
@ -184,34 +129,19 @@ EINVAL.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_OUT_CAP_DV_TIMINGS``
|
||||
|
||||
- 0x00000002
|
||||
|
||||
- This output supports setting video timings by using
|
||||
VIDIOC_S_DV_TIMINGS.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_OUT_CAP_STD``
|
||||
|
||||
- 0x00000004
|
||||
|
||||
- This output supports setting the TV standard by using
|
||||
VIDIOC_S_STD.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_OUT_CAP_NATIVE_SIZE``
|
||||
|
||||
- 0x00000008
|
||||
|
||||
- This output supports setting the native size using the
|
||||
``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see
|
||||
:ref:`v4l2-selections-common`.
|
||||
* - ``V4L2_OUT_CAP_DV_TIMINGS``
|
||||
- 0x00000002
|
||||
- This output supports setting video timings by using
|
||||
VIDIOC_S_DV_TIMINGS.
|
||||
* - ``V4L2_OUT_CAP_STD``
|
||||
- 0x00000004
|
||||
- This output supports setting the TV standard by using
|
||||
VIDIOC_S_STD.
|
||||
* - ``V4L2_OUT_CAP_NATIVE_SIZE``
|
||||
- 0x00000008
|
||||
- This output supports setting the native size using the
|
||||
``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see
|
||||
:ref:`v4l2-selections-common`.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -51,64 +51,34 @@ or output. [#f1]_
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- Number of the video standard, set by the application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- :ref:`v4l2_std_id <v4l2-std-id>`
|
||||
|
||||
- ``id``
|
||||
|
||||
- The bits in this field identify the standard as one of the common
|
||||
standards listed in :ref:`v4l2-std-id`, or if bits 32 to 63 are
|
||||
set as custom standards. Multiple bits can be set if the hardware
|
||||
does not distinguish between these standards, however separate
|
||||
indices do not indicate the opposite. The ``id`` must be unique.
|
||||
No other enumerated struct :c:type:`v4l2_standard` structure,
|
||||
for this input or output anyway, can contain the same set of bits.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u8
|
||||
|
||||
- ``name``\ [24]
|
||||
|
||||
- Name of the standard, a NUL-terminated ASCII string, for example:
|
||||
"PAL-B/G", "NTSC Japan". This information is intended for the
|
||||
user.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- struct :c:type:`v4l2_fract`
|
||||
|
||||
- ``frameperiod``
|
||||
|
||||
- The frame period (not field period) is numerator / denominator.
|
||||
For example M/NTSC has a frame period of 1001 / 30000 seconds.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``framelines``
|
||||
|
||||
- Total lines per frame including blanking, e. g. 625 for B/PAL.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [4]
|
||||
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Number of the video standard, set by the application.
|
||||
* - :ref:`v4l2_std_id <v4l2-std-id>`
|
||||
- ``id``
|
||||
- The bits in this field identify the standard as one of the common
|
||||
standards listed in :ref:`v4l2-std-id`, or if bits 32 to 63 are
|
||||
set as custom standards. Multiple bits can be set if the hardware
|
||||
does not distinguish between these standards, however separate
|
||||
indices do not indicate the opposite. The ``id`` must be unique.
|
||||
No other enumerated struct :c:type:`v4l2_standard` structure,
|
||||
for this input or output anyway, can contain the same set of bits.
|
||||
* - __u8
|
||||
- ``name``\ [24]
|
||||
- Name of the standard, a NUL-terminated ASCII string, for example:
|
||||
"PAL-B/G", "NTSC Japan". This information is intended for the
|
||||
user.
|
||||
* - struct :c:type:`v4l2_fract`
|
||||
- ``frameperiod``
|
||||
- The frame period (not field period) is numerator / denominator.
|
||||
For example M/NTSC has a frame period of 1001 / 30000 seconds.
|
||||
* - __u32
|
||||
- ``framelines``
|
||||
- Total lines per frame including blanking, e. g. 625 for B/PAL.
|
||||
* - __u32
|
||||
- ``reserved``\ [4]
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
|
||||
|
||||
|
||||
|
@ -121,22 +91,12 @@ or output. [#f1]_
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``numerator``
|
||||
|
||||
-
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``denominator``
|
||||
|
||||
-
|
||||
* - __u32
|
||||
- ``numerator``
|
||||
-
|
||||
* - __u32
|
||||
- ``denominator``
|
||||
-
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
|
||||
|
@ -148,17 +108,12 @@ or output. [#f1]_
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u64
|
||||
|
||||
- ``v4l2_std_id``
|
||||
|
||||
- This type is a set, each bit representing another video standard
|
||||
as listed below and in :ref:`video-standards`. The 32 most
|
||||
significant bits are reserved for custom (driver defined) video
|
||||
standards.
|
||||
* - __u64
|
||||
- ``v4l2_std_id``
|
||||
- This type is a set, each bit representing another video standard
|
||||
as listed below and in :ref:`video-standards`. The 32 most
|
||||
significant bits are reserved for custom (driver defined) video
|
||||
standards.
|
||||
|
||||
|
||||
|
||||
|
@ -282,120 +237,59 @@ support digital TV. See also the Linux DVB API at
|
|||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
* - Characteristics
|
||||
- M/NTSC [#f2]_
|
||||
- M/PAL
|
||||
- N/PAL [#f3]_
|
||||
- B, B1, G/PAL
|
||||
- D, D1, K/PAL
|
||||
- H/PAL
|
||||
- I/PAL
|
||||
- B, G/SECAM
|
||||
- D, K/SECAM
|
||||
- K1/SECAM
|
||||
- L/SECAM
|
||||
* - Frame lines
|
||||
- :cspan:`1` 525
|
||||
- :cspan:`8` 625
|
||||
* - Frame period (s)
|
||||
- :cspan:`1` 1001/30000
|
||||
- :cspan:`8` 1/25
|
||||
* - Chrominance sub-carrier frequency (Hz)
|
||||
- 3579545 ± 10
|
||||
- 3579611.49 ± 10
|
||||
- 4433618.75 ± 5
|
||||
|
||||
- .. row 1
|
||||
(3582056.25 ± 5)
|
||||
- :cspan:`3` 4433618.75 ± 5
|
||||
- 4433618.75 ± 1
|
||||
- :cspan:`2` f\ :sub:`OR` = 4406250 ± 2000,
|
||||
|
||||
- Characteristics
|
||||
|
||||
- M/NTSC [#f2]_
|
||||
|
||||
- M/PAL
|
||||
|
||||
- N/PAL [#f3]_
|
||||
|
||||
- B, B1, G/PAL
|
||||
|
||||
- D, D1, K/PAL
|
||||
|
||||
- H/PAL
|
||||
|
||||
- I/PAL
|
||||
|
||||
- B, G/SECAM
|
||||
|
||||
- D, K/SECAM
|
||||
|
||||
- K1/SECAM
|
||||
|
||||
- L/SECAM
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Frame lines
|
||||
|
||||
- :cspan:`1` 525
|
||||
|
||||
- :cspan:`8` 625
|
||||
|
||||
- .. row 3
|
||||
|
||||
- Frame period (s)
|
||||
|
||||
- :cspan:`1` 1001/30000
|
||||
|
||||
- :cspan:`8` 1/25
|
||||
|
||||
- .. row 4
|
||||
|
||||
- Chrominance sub-carrier frequency (Hz)
|
||||
|
||||
- 3579545 ± 10
|
||||
|
||||
- 3579611.49 ± 10
|
||||
|
||||
- 4433618.75 ± 5
|
||||
|
||||
(3582056.25 ± 5)
|
||||
|
||||
- :cspan:`3` 4433618.75 ± 5
|
||||
|
||||
- 4433618.75 ± 1
|
||||
|
||||
- :cspan:`2` f\ :sub:`OR` = 4406250 ± 2000,
|
||||
|
||||
f\ :sub:`OB` = 4250000 ± 2000
|
||||
|
||||
- .. row 5
|
||||
|
||||
- Nominal radio-frequency channel bandwidth (MHz)
|
||||
|
||||
- 6
|
||||
|
||||
- 6
|
||||
|
||||
- 6
|
||||
|
||||
- B: 7; B1, G: 8
|
||||
|
||||
- 8
|
||||
|
||||
- 8
|
||||
|
||||
- 8
|
||||
|
||||
- 8
|
||||
|
||||
- 8
|
||||
|
||||
- 8
|
||||
|
||||
- 8
|
||||
|
||||
- .. row 6
|
||||
|
||||
- Sound carrier relative to vision carrier (MHz)
|
||||
|
||||
- 4.5
|
||||
|
||||
- 4.5
|
||||
|
||||
- 4.5
|
||||
|
||||
- 5.5 ± 0.001 [#f4]_ [#f5]_ [#f6]_ [#f7]_
|
||||
|
||||
- 6.5 ± 0.001
|
||||
|
||||
- 5.5
|
||||
|
||||
- 5.9996 ± 0.0005
|
||||
|
||||
- 5.5 ± 0.001
|
||||
|
||||
- 6.5 ± 0.001
|
||||
|
||||
- 6.5
|
||||
|
||||
- 6.5 [#f8]_
|
||||
f\ :sub:`OB` = 4250000 ± 2000
|
||||
* - Nominal radio-frequency channel bandwidth (MHz)
|
||||
- 6
|
||||
- 6
|
||||
- 6
|
||||
- B: 7; B1, G: 8
|
||||
- 8
|
||||
- 8
|
||||
- 8
|
||||
- 8
|
||||
- 8
|
||||
- 8
|
||||
- 8
|
||||
* - Sound carrier relative to vision carrier (MHz)
|
||||
- 4.5
|
||||
- 4.5
|
||||
- 4.5
|
||||
- 5.5 ± 0.001 [#f4]_ [#f5]_ [#f6]_ [#f7]_
|
||||
- 6.5 ± 0.001
|
||||
- 5.5
|
||||
- 5.9996 ± 0.0005
|
||||
- 5.5 ± 0.001
|
||||
- 6.5 ± 0.001
|
||||
- 6.5
|
||||
- 6.5 [#f8]_
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
|
|
@ -123,66 +123,36 @@ Examples
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- Type of the buffer, same as struct
|
||||
:c:type:`v4l2_format` ``type`` or struct
|
||||
:c:type:`v4l2_requestbuffers` ``type``, set
|
||||
by the application. See :c:type:`v4l2_buf_type`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- Number of the buffer, set by the application. This field is only
|
||||
used for :ref:`memory mapping <mmap>` I/O and can range from
|
||||
zero to the number of buffers allocated with the
|
||||
:ref:`VIDIOC_REQBUFS` and/or
|
||||
:ref:`VIDIOC_CREATE_BUFS` ioctls.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``plane``
|
||||
|
||||
- Index of the plane to be exported when using the multi-planar API.
|
||||
Otherwise this value must be set to zero.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- Flags for the newly created file, currently only ``O_CLOEXEC``,
|
||||
``O_RDONLY``, ``O_WRONLY``, and ``O_RDWR`` are supported, refer to
|
||||
the manual of open() for more details.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __s32
|
||||
|
||||
- ``fd``
|
||||
|
||||
- The DMABUF file descriptor associated with a buffer. Set by the
|
||||
driver.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved[11]``
|
||||
|
||||
- Reserved field for future use. Drivers and applications must set
|
||||
the array to zero.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- Type of the buffer, same as struct
|
||||
:c:type:`v4l2_format` ``type`` or struct
|
||||
:c:type:`v4l2_requestbuffers` ``type``, set
|
||||
by the application. See :c:type:`v4l2_buf_type`
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Number of the buffer, set by the application. This field is only
|
||||
used for :ref:`memory mapping <mmap>` I/O and can range from
|
||||
zero to the number of buffers allocated with the
|
||||
:ref:`VIDIOC_REQBUFS` and/or
|
||||
:ref:`VIDIOC_CREATE_BUFS` ioctls.
|
||||
* - __u32
|
||||
- ``plane``
|
||||
- Index of the plane to be exported when using the multi-planar API.
|
||||
Otherwise this value must be set to zero.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- Flags for the newly created file, currently only ``O_CLOEXEC``,
|
||||
``O_RDONLY``, ``O_WRONLY``, and ``O_RDWR`` are supported, refer to
|
||||
the manual of open() for more details.
|
||||
* - __s32
|
||||
- ``fd``
|
||||
- The DMABUF file descriptor associated with a buffer. Set by the
|
||||
driver.
|
||||
* - __u32
|
||||
- ``reserved[11]``
|
||||
- Reserved field for future use. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -58,50 +58,25 @@ return the actual new audio mode.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- Identifies the audio input, set by the driver or application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u8
|
||||
|
||||
- ``name``\ [32]
|
||||
|
||||
- Name of the audio input, a NUL-terminated ASCII string, for
|
||||
example: "Line In". This information is intended for the user,
|
||||
preferably the connector label on the device itself.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capability``
|
||||
|
||||
- Audio capability flags, see :ref:`audio-capability`.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``mode``
|
||||
|
||||
- Audio mode flags set by drivers and applications (on
|
||||
:ref:`VIDIOC_S_AUDIO <VIDIOC_G_AUDIO>` ioctl), see :ref:`audio-mode`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [2]
|
||||
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Identifies the audio input, set by the driver or application.
|
||||
* - __u8
|
||||
- ``name``\ [32]
|
||||
- Name of the audio input, a NUL-terminated ASCII string, for
|
||||
example: "Line In". This information is intended for the user,
|
||||
preferably the connector label on the device itself.
|
||||
* - __u32
|
||||
- ``capability``
|
||||
- Audio capability flags, see :ref:`audio-capability`.
|
||||
* - __u32
|
||||
- ``mode``
|
||||
- Audio mode flags set by drivers and applications (on
|
||||
:ref:`VIDIOC_S_AUDIO <VIDIOC_G_AUDIO>` ioctl), see :ref:`audio-mode`.
|
||||
* - __u32
|
||||
- ``reserved``\ [2]
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
|
||||
|
||||
|
@ -114,25 +89,15 @@ return the actual new audio mode.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_AUDCAP_STEREO``
|
||||
|
||||
- 0x00001
|
||||
|
||||
- This is a stereo input. The flag is intended to automatically
|
||||
disable stereo recording etc. when the signal is always monaural.
|
||||
The API provides no means to detect if stereo is *received*,
|
||||
unless the audio input belongs to a tuner.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_AUDCAP_AVL``
|
||||
|
||||
- 0x00002
|
||||
|
||||
- Automatic Volume Level mode is supported.
|
||||
* - ``V4L2_AUDCAP_STEREO``
|
||||
- 0x00001
|
||||
- This is a stereo input. The flag is intended to automatically
|
||||
disable stereo recording etc. when the signal is always monaural.
|
||||
The API provides no means to detect if stereo is *received*,
|
||||
unless the audio input belongs to a tuner.
|
||||
* - ``V4L2_AUDCAP_AVL``
|
||||
- 0x00002
|
||||
- Automatic Volume Level mode is supported.
|
||||
|
||||
|
||||
|
||||
|
@ -145,14 +110,9 @@ return the actual new audio mode.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_AUDMODE_AVL``
|
||||
|
||||
- 0x00001
|
||||
|
||||
- AVL mode is on.
|
||||
* - ``V4L2_AUDMODE_AVL``
|
||||
- 0x00001
|
||||
- AVL mode is on.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -65,51 +65,26 @@ as ``VIDIOC_G_AUDOUT`` does.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- Identifies the audio output, set by the driver or application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u8
|
||||
|
||||
- ``name``\ [32]
|
||||
|
||||
- Name of the audio output, a NUL-terminated ASCII string, for
|
||||
example: "Line Out". This information is intended for the user,
|
||||
preferably the connector label on the device itself.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capability``
|
||||
|
||||
- Audio capability flags, none defined yet. Drivers must set this
|
||||
field to zero.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``mode``
|
||||
|
||||
- Audio mode, none defined yet. Drivers and applications (on
|
||||
``VIDIOC_S_AUDOUT``) must set this field to zero.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [2]
|
||||
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Identifies the audio output, set by the driver or application.
|
||||
* - __u8
|
||||
- ``name``\ [32]
|
||||
- Name of the audio output, a NUL-terminated ASCII string, for
|
||||
example: "Line Out". This information is intended for the user,
|
||||
preferably the connector label on the device itself.
|
||||
* - __u32
|
||||
- ``capability``
|
||||
- Audio capability flags, none defined yet. Drivers must set this
|
||||
field to zero.
|
||||
* - __u32
|
||||
- ``mode``
|
||||
- Audio mode, none defined yet. Drivers and applications (on
|
||||
``VIDIOC_S_AUDOUT``) must set this field to zero.
|
||||
* - __u32
|
||||
- ``reserved``\ [2]
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -84,26 +84,16 @@ When cropping is not supported then no parameters are changed and
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- Type of the data stream, set by the application. Only these types
|
||||
are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``,
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT`` and
|
||||
``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- struct :c:type:`v4l2_rect`
|
||||
|
||||
- ``c``
|
||||
|
||||
- Cropping rectangle. The same co-ordinate system as for struct
|
||||
:c:type:`v4l2_cropcap` ``bounds`` is used.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- Type of the data stream, set by the application. Only these types
|
||||
are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``,
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT`` and
|
||||
``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`.
|
||||
* - struct :c:type:`v4l2_rect`
|
||||
- ``c``
|
||||
- Cropping rectangle. The same co-ordinate system as for struct
|
||||
:c:type:`v4l2_cropcap` ``bounds`` is used.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -64,22 +64,12 @@ These ioctls work only with user controls. For other control classes the
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``id``
|
||||
|
||||
- Identifies the control, set by the application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __s32
|
||||
|
||||
- ``value``
|
||||
|
||||
- New value or current value.
|
||||
* - __u32
|
||||
- ``id``
|
||||
- Identifies the control, set by the application.
|
||||
* - __s32
|
||||
- ``value``
|
||||
- New value or current value.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -83,158 +83,73 @@ EBUSY
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``width``
|
||||
|
||||
- Width of the active video in pixels.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``height``
|
||||
|
||||
- Height of the active video frame in lines. So for interlaced
|
||||
formats the height of the active video in each field is
|
||||
``height``/2.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``interlaced``
|
||||
|
||||
- Progressive (``V4L2_DV_PROGRESSIVE``) or interlaced (``V4L2_DV_INTERLACED``).
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``polarities``
|
||||
|
||||
- This is a bit mask that defines polarities of sync signals. bit 0
|
||||
(``V4L2_DV_VSYNC_POS_POL``) is for vertical sync polarity and bit
|
||||
1 (``V4L2_DV_HSYNC_POS_POL``) is for horizontal sync polarity. If
|
||||
the bit is set (1) it is positive polarity and if is cleared (0),
|
||||
it is negative polarity.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u64
|
||||
|
||||
- ``pixelclock``
|
||||
|
||||
- Pixel clock in Hz. Ex. 74.25MHz->74250000
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``hfrontporch``
|
||||
|
||||
- Horizontal front porch in pixels
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``hsync``
|
||||
|
||||
- Horizontal sync length in pixels
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __u32
|
||||
|
||||
- ``hbackporch``
|
||||
|
||||
- Horizontal back porch in pixels
|
||||
|
||||
- .. row 9
|
||||
|
||||
- __u32
|
||||
|
||||
- ``vfrontporch``
|
||||
|
||||
- Vertical front porch in lines. For interlaced formats this refers
|
||||
to the odd field (aka field 1).
|
||||
|
||||
- .. row 10
|
||||
|
||||
- __u32
|
||||
|
||||
- ``vsync``
|
||||
|
||||
- Vertical sync length in lines. For interlaced formats this refers
|
||||
to the odd field (aka field 1).
|
||||
|
||||
- .. row 11
|
||||
|
||||
- __u32
|
||||
|
||||
- ``vbackporch``
|
||||
|
||||
- Vertical back porch in lines. For interlaced formats this refers
|
||||
to the odd field (aka field 1).
|
||||
|
||||
- .. row 12
|
||||
|
||||
- __u32
|
||||
|
||||
- ``il_vfrontporch``
|
||||
|
||||
- Vertical front porch in lines for the even field (aka field 2) of
|
||||
interlaced field formats. Must be 0 for progressive formats.
|
||||
|
||||
- .. row 13
|
||||
|
||||
- __u32
|
||||
|
||||
- ``il_vsync``
|
||||
|
||||
- Vertical sync length in lines for the even field (aka field 2) of
|
||||
interlaced field formats. Must be 0 for progressive formats.
|
||||
|
||||
- .. row 14
|
||||
|
||||
- __u32
|
||||
|
||||
- ``il_vbackporch``
|
||||
|
||||
- Vertical back porch in lines for the even field (aka field 2) of
|
||||
interlaced field formats. Must be 0 for progressive formats.
|
||||
|
||||
- .. row 15
|
||||
|
||||
- __u32
|
||||
|
||||
- ``standards``
|
||||
|
||||
- The video standard(s) this format belongs to. This will be filled
|
||||
in by the driver. Applications must set this to 0. See
|
||||
:ref:`dv-bt-standards` for a list of standards.
|
||||
|
||||
- .. row 16
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- Several flags giving more information about the format. See
|
||||
:ref:`dv-bt-flags` for a description of the flags.
|
||||
|
||||
- .. row 17
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved[14]``
|
||||
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
* - __u32
|
||||
- ``width``
|
||||
- Width of the active video in pixels.
|
||||
* - __u32
|
||||
- ``height``
|
||||
- Height of the active video frame in lines. So for interlaced
|
||||
formats the height of the active video in each field is
|
||||
``height``/2.
|
||||
* - __u32
|
||||
- ``interlaced``
|
||||
- Progressive (``V4L2_DV_PROGRESSIVE``) or interlaced (``V4L2_DV_INTERLACED``).
|
||||
* - __u32
|
||||
- ``polarities``
|
||||
- This is a bit mask that defines polarities of sync signals. bit 0
|
||||
(``V4L2_DV_VSYNC_POS_POL``) is for vertical sync polarity and bit
|
||||
1 (``V4L2_DV_HSYNC_POS_POL``) is for horizontal sync polarity. If
|
||||
the bit is set (1) it is positive polarity and if is cleared (0),
|
||||
it is negative polarity.
|
||||
* - __u64
|
||||
- ``pixelclock``
|
||||
- Pixel clock in Hz. Ex. 74.25MHz->74250000
|
||||
* - __u32
|
||||
- ``hfrontporch``
|
||||
- Horizontal front porch in pixels
|
||||
* - __u32
|
||||
- ``hsync``
|
||||
- Horizontal sync length in pixels
|
||||
* - __u32
|
||||
- ``hbackporch``
|
||||
- Horizontal back porch in pixels
|
||||
* - __u32
|
||||
- ``vfrontporch``
|
||||
- Vertical front porch in lines. For interlaced formats this refers
|
||||
to the odd field (aka field 1).
|
||||
* - __u32
|
||||
- ``vsync``
|
||||
- Vertical sync length in lines. For interlaced formats this refers
|
||||
to the odd field (aka field 1).
|
||||
* - __u32
|
||||
- ``vbackporch``
|
||||
- Vertical back porch in lines. For interlaced formats this refers
|
||||
to the odd field (aka field 1).
|
||||
* - __u32
|
||||
- ``il_vfrontporch``
|
||||
- Vertical front porch in lines for the even field (aka field 2) of
|
||||
interlaced field formats. Must be 0 for progressive formats.
|
||||
* - __u32
|
||||
- ``il_vsync``
|
||||
- Vertical sync length in lines for the even field (aka field 2) of
|
||||
interlaced field formats. Must be 0 for progressive formats.
|
||||
* - __u32
|
||||
- ``il_vbackporch``
|
||||
- Vertical back porch in lines for the even field (aka field 2) of
|
||||
interlaced field formats. Must be 0 for progressive formats.
|
||||
* - __u32
|
||||
- ``standards``
|
||||
- The video standard(s) this format belongs to. This will be filled
|
||||
in by the driver. Applications must set this to 0. See
|
||||
:ref:`dv-bt-standards` for a list of standards.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- Several flags giving more information about the format. See
|
||||
:ref:`dv-bt-flags` for a description of the flags.
|
||||
* - __u32
|
||||
- ``reserved[14]``
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{7.0cm}|p{3.5cm}|
|
||||
|
@ -246,40 +161,21 @@ EBUSY
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2 1
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
-
|
||||
- Type of DV timings as listed in :ref:`dv-timing-types`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- union
|
||||
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_bt_timings`
|
||||
|
||||
- ``bt``
|
||||
|
||||
- Timings defined by BT.656/1120 specifications
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [32]
|
||||
|
||||
-
|
||||
* - __u32
|
||||
- ``type``
|
||||
-
|
||||
- Type of DV timings as listed in :ref:`dv-timing-types`.
|
||||
* - union
|
||||
-
|
||||
-
|
||||
* -
|
||||
- struct :c:type:`v4l2_bt_timings`
|
||||
- ``bt``
|
||||
- Timings defined by BT.656/1120 specifications
|
||||
* -
|
||||
- __u32
|
||||
- ``reserved``\ [32]
|
||||
-
|
||||
|
||||
.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
|
||||
|
||||
|
@ -290,28 +186,15 @@ EBUSY
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Timing type
|
||||
|
||||
- value
|
||||
|
||||
- Description
|
||||
|
||||
- .. row 2
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_DV_BT_656_1120``
|
||||
|
||||
- 0
|
||||
|
||||
- BT.656/1120 timings
|
||||
* - Timing type
|
||||
- value
|
||||
- Description
|
||||
* -
|
||||
-
|
||||
-
|
||||
* - ``V4L2_DV_BT_656_1120``
|
||||
- 0
|
||||
- BT.656/1120 timings
|
||||
|
||||
|
||||
|
||||
|
@ -321,44 +204,20 @@ EBUSY
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Timing standard
|
||||
|
||||
- Description
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_DV_BT_STD_CEA861``
|
||||
|
||||
- The timings follow the CEA-861 Digital TV Profile standard
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_DV_BT_STD_DMT``
|
||||
|
||||
- The timings follow the VESA Discrete Monitor Timings standard
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_DV_BT_STD_CVT``
|
||||
|
||||
- The timings follow the VESA Coordinated Video Timings standard
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_DV_BT_STD_GTF``
|
||||
|
||||
- The timings follow the VESA Generalized Timings Formula standard
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_DV_BT_STD_SDI``
|
||||
|
||||
- The timings follow the SDI Timings standard.
|
||||
There are no horizontal syncs/porches at all in this format.
|
||||
Total blanking timings must be set in hsync or vsync fields only.
|
||||
* - Timing standard
|
||||
- Description
|
||||
* - ``V4L2_DV_BT_STD_CEA861``
|
||||
- The timings follow the CEA-861 Digital TV Profile standard
|
||||
* - ``V4L2_DV_BT_STD_DMT``
|
||||
- The timings follow the VESA Discrete Monitor Timings standard
|
||||
* - ``V4L2_DV_BT_STD_CVT``
|
||||
- The timings follow the VESA Coordinated Video Timings standard
|
||||
* - ``V4L2_DV_BT_STD_GTF``
|
||||
- The timings follow the VESA Generalized Timings Formula standard
|
||||
* - ``V4L2_DV_BT_STD_SDI``
|
||||
- The timings follow the SDI Timings standard.
|
||||
There are no horizontal syncs/porches at all in this format.
|
||||
Total blanking timings must be set in hsync or vsync fields only.
|
||||
|
||||
.. tabularcolumns:: |p{6.0cm}|p{11.5cm}|
|
||||
|
||||
|
@ -368,74 +227,46 @@ EBUSY
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- Flag
|
||||
|
||||
- Description
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_DV_FL_REDUCED_BLANKING``
|
||||
|
||||
- CVT/GTF specific: the timings use reduced blanking (CVT) or the
|
||||
'Secondary GTF' curve (GTF). In both cases the horizontal and/or
|
||||
vertical blanking intervals are reduced, allowing a higher
|
||||
resolution over the same bandwidth. This is a read-only flag,
|
||||
applications must not set this.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_DV_FL_CAN_REDUCE_FPS``
|
||||
|
||||
- CEA-861 specific: set for CEA-861 formats with a framerate that is
|
||||
a multiple of six. These formats can be optionally played at 1 /
|
||||
1.001 speed to be compatible with 60 Hz based standards such as
|
||||
NTSC and PAL-M that use a framerate of 29.97 frames per second. If
|
||||
the transmitter can't generate such frequencies, then the flag
|
||||
will also be cleared. This is a read-only flag, applications must
|
||||
not set this.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_DV_FL_REDUCED_FPS``
|
||||
|
||||
- CEA-861 specific: only valid for video transmitters, the flag is
|
||||
cleared by receivers. It is also only valid for formats with the
|
||||
``V4L2_DV_FL_CAN_REDUCE_FPS`` flag set, for other formats the
|
||||
flag will be cleared by the driver. If the application sets this
|
||||
flag, then the pixelclock used to set up the transmitter is
|
||||
divided by 1.001 to make it compatible with NTSC framerates. If
|
||||
the transmitter can't generate such frequencies, then the flag
|
||||
will also be cleared.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_DV_FL_HALF_LINE``
|
||||
|
||||
- Specific to interlaced formats: if set, then the vertical
|
||||
frontporch of field 1 (aka the odd field) is really one half-line
|
||||
longer and the vertical backporch of field 2 (aka the even field)
|
||||
is really one half-line shorter, so each field has exactly the
|
||||
same number of half-lines. Whether half-lines can be detected or
|
||||
used depends on the hardware.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_DV_FL_IS_CE_VIDEO``
|
||||
|
||||
- If set, then this is a Consumer Electronics (CE) video format.
|
||||
Such formats differ from other formats (commonly called IT
|
||||
formats) in that if R'G'B' encoding is used then by default the
|
||||
R'G'B' values use limited range (i.e. 16-235) as opposed to full
|
||||
range (i.e. 0-255). All formats defined in CEA-861 except for the
|
||||
640x480p59.94 format are CE formats.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE``
|
||||
|
||||
- Some formats like SMPTE-125M have an interlaced signal with a odd
|
||||
total height. For these formats, if this flag is set, the first
|
||||
field has the extra line. Else, it is the second field.
|
||||
* - Flag
|
||||
- Description
|
||||
* - ``V4L2_DV_FL_REDUCED_BLANKING``
|
||||
- CVT/GTF specific: the timings use reduced blanking (CVT) or the
|
||||
'Secondary GTF' curve (GTF). In both cases the horizontal and/or
|
||||
vertical blanking intervals are reduced, allowing a higher
|
||||
resolution over the same bandwidth. This is a read-only flag,
|
||||
applications must not set this.
|
||||
* - ``V4L2_DV_FL_CAN_REDUCE_FPS``
|
||||
- CEA-861 specific: set for CEA-861 formats with a framerate that is
|
||||
a multiple of six. These formats can be optionally played at 1 /
|
||||
1.001 speed to be compatible with 60 Hz based standards such as
|
||||
NTSC and PAL-M that use a framerate of 29.97 frames per second. If
|
||||
the transmitter can't generate such frequencies, then the flag
|
||||
will also be cleared. This is a read-only flag, applications must
|
||||
not set this.
|
||||
* - ``V4L2_DV_FL_REDUCED_FPS``
|
||||
- CEA-861 specific: only valid for video transmitters, the flag is
|
||||
cleared by receivers. It is also only valid for formats with the
|
||||
``V4L2_DV_FL_CAN_REDUCE_FPS`` flag set, for other formats the
|
||||
flag will be cleared by the driver. If the application sets this
|
||||
flag, then the pixelclock used to set up the transmitter is
|
||||
divided by 1.001 to make it compatible with NTSC framerates. If
|
||||
the transmitter can't generate such frequencies, then the flag
|
||||
will also be cleared.
|
||||
* - ``V4L2_DV_FL_HALF_LINE``
|
||||
- Specific to interlaced formats: if set, then the vertical
|
||||
frontporch of field 1 (aka the odd field) is really one half-line
|
||||
longer and the vertical backporch of field 2 (aka the even field)
|
||||
is really one half-line shorter, so each field has exactly the
|
||||
same number of half-lines. Whether half-lines can be detected or
|
||||
used depends on the hardware.
|
||||
* - ``V4L2_DV_FL_IS_CE_VIDEO``
|
||||
- If set, then this is a Consumer Electronics (CE) video format.
|
||||
Such formats differ from other formats (commonly called IT
|
||||
formats) in that if R'G'B' encoding is used then by default the
|
||||
R'G'B' values use limited range (i.e. 16-235) as opposed to full
|
||||
range (i.e. 0-255). All formats defined in CEA-861 except for the
|
||||
640x480p59.94 format are CE formats.
|
||||
* - ``V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE``
|
||||
- Some formats like SMPTE-125M have an interlaced signal with a odd
|
||||
total height. For these formats, if this flag is set, the first
|
||||
field has the extra line. Else, it is the second field.
|
||||
|
|
|
@ -106,55 +106,30 @@ EDID is no longer available.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``pad``
|
||||
|
||||
- Pad for which to get/set the EDID blocks. When used with a video
|
||||
device node the pad represents the input or output index as
|
||||
returned by :ref:`VIDIOC_ENUMINPUT` and
|
||||
:ref:`VIDIOC_ENUMOUTPUT` respectively.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``start_block``
|
||||
|
||||
- Read the EDID from starting with this block. Must be 0 when
|
||||
setting the EDID.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``blocks``
|
||||
|
||||
- The number of blocks to get or set. Must be less or equal to 256
|
||||
(the maximum number of blocks as defined by the standard). When
|
||||
you set the EDID and ``blocks`` is 0, then the EDID is disabled or
|
||||
erased.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [5]
|
||||
|
||||
- Reserved for future extensions. Applications and drivers must set
|
||||
the array to zero.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u8 *
|
||||
|
||||
- ``edid``
|
||||
|
||||
- Pointer to memory that contains the EDID. The minimum size is
|
||||
``blocks`` * 128.
|
||||
* - __u32
|
||||
- ``pad``
|
||||
- Pad for which to get/set the EDID blocks. When used with a video
|
||||
device node the pad represents the input or output index as
|
||||
returned by :ref:`VIDIOC_ENUMINPUT` and
|
||||
:ref:`VIDIOC_ENUMOUTPUT` respectively.
|
||||
* - __u32
|
||||
- ``start_block``
|
||||
- Read the EDID from starting with this block. Must be 0 when
|
||||
setting the EDID.
|
||||
* - __u32
|
||||
- ``blocks``
|
||||
- The number of blocks to get or set. Must be less or equal to 256
|
||||
(the maximum number of blocks as defined by the standard). When
|
||||
you set the EDID and ``blocks`` is 0, then the EDID is disabled or
|
||||
erased.
|
||||
* - __u32
|
||||
- ``reserved``\ [5]
|
||||
- Reserved for future extensions. Applications and drivers must set
|
||||
the array to zero.
|
||||
* - __u8 *
|
||||
- ``edid``
|
||||
- Pointer to memory that contains the EDID. The minimum size is
|
||||
``blocks`` * 128.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -64,42 +64,22 @@ video elementary streams.
|
|||
:stub-columns: 0
|
||||
:widths: 1 3 8
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``entries``
|
||||
|
||||
- The number of entries the driver stored in the ``entry`` array.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``entries_cap``
|
||||
|
||||
- The number of entries the driver can buffer. Must be greater than
|
||||
zero.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [4]
|
||||
|
||||
- Reserved for future extensions. Drivers must set the
|
||||
array to zero.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- struct :c:type:`v4l2_enc_idx_entry`
|
||||
|
||||
- ``entry``\ [``V4L2_ENC_IDX_ENTRIES``]
|
||||
|
||||
- Meta data about a compressed video stream. Each element of the
|
||||
array corresponds to one picture, sorted in ascending order by
|
||||
their ``offset``.
|
||||
* - __u32
|
||||
- ``entries``
|
||||
- The number of entries the driver stored in the ``entry`` array.
|
||||
* - __u32
|
||||
- ``entries_cap``
|
||||
- The number of entries the driver can buffer. Must be greater than
|
||||
zero.
|
||||
* - __u32
|
||||
- ``reserved``\ [4]
|
||||
- Reserved for future extensions. Drivers must set the
|
||||
array to zero.
|
||||
* - struct :c:type:`v4l2_enc_idx_entry`
|
||||
- ``entry``\ [``V4L2_ENC_IDX_ENTRIES``]
|
||||
- Meta data about a compressed video stream. Each element of the
|
||||
array corresponds to one picture, sorted in ascending order by
|
||||
their ``offset``.
|
||||
|
||||
|
||||
|
||||
|
@ -112,53 +92,28 @@ video elementary streams.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u64
|
||||
|
||||
- ``offset``
|
||||
|
||||
- The offset in bytes from the beginning of the compressed video
|
||||
stream to the beginning of this picture, that is a *PES packet
|
||||
header* as defined in :ref:`mpeg2part1` or a *picture header* as
|
||||
defined in :ref:`mpeg2part2`. When the encoder is stopped, the
|
||||
driver resets the offset to zero.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u64
|
||||
|
||||
- ``pts``
|
||||
|
||||
- The 33 bit *Presentation Time Stamp* of this picture as defined in
|
||||
:ref:`mpeg2part1`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``length``
|
||||
|
||||
- The length of this picture in bytes.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- Flags containing the coding type of this picture, see
|
||||
:ref:`enc-idx-flags`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [2]
|
||||
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
* - __u64
|
||||
- ``offset``
|
||||
- The offset in bytes from the beginning of the compressed video
|
||||
stream to the beginning of this picture, that is a *PES packet
|
||||
header* as defined in :ref:`mpeg2part1` or a *picture header* as
|
||||
defined in :ref:`mpeg2part2`. When the encoder is stopped, the
|
||||
driver resets the offset to zero.
|
||||
* - __u64
|
||||
- ``pts``
|
||||
- The 33 bit *Presentation Time Stamp* of this picture as defined in
|
||||
:ref:`mpeg2part1`.
|
||||
* - __u32
|
||||
- ``length``
|
||||
- The length of this picture in bytes.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- Flags containing the coding type of this picture, see
|
||||
:ref:`enc-idx-flags`.
|
||||
* - __u32
|
||||
- ``reserved``\ [2]
|
||||
- Reserved for future extensions. Drivers must set the array to
|
||||
zero.
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
|
||||
|
@ -170,39 +125,19 @@ video elementary streams.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_ENC_IDX_FRAME_I``
|
||||
|
||||
- 0x00
|
||||
|
||||
- This is an Intra-coded picture.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_ENC_IDX_FRAME_P``
|
||||
|
||||
- 0x01
|
||||
|
||||
- This is a Predictive-coded picture.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_ENC_IDX_FRAME_B``
|
||||
|
||||
- 0x02
|
||||
|
||||
- This is a Bidirectionally predictive-coded picture.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_ENC_IDX_FRAME_MASK``
|
||||
|
||||
- 0x0F
|
||||
|
||||
- *AND* the flags field with this mask to obtain the picture coding
|
||||
type.
|
||||
* - ``V4L2_ENC_IDX_FRAME_I``
|
||||
- 0x00
|
||||
- This is an Intra-coded picture.
|
||||
* - ``V4L2_ENC_IDX_FRAME_P``
|
||||
- 0x01
|
||||
- This is a Predictive-coded picture.
|
||||
* - ``V4L2_ENC_IDX_FRAME_B``
|
||||
- 0x02
|
||||
- This is a Bidirectionally predictive-coded picture.
|
||||
* - ``V4L2_ENC_IDX_FRAME_MASK``
|
||||
- 0x0F
|
||||
- *AND* the flags field with this mask to obtain the picture coding
|
||||
type.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -111,127 +111,73 @@ still cause this situation.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 1 2
|
||||
|
||||
* - __u32
|
||||
- ``id``
|
||||
-
|
||||
- Identifies the control, set by the application.
|
||||
* - __u32
|
||||
- ``size``
|
||||
-
|
||||
- The total size in bytes of the payload of this control. This is
|
||||
normally 0, but for pointer controls this should be set to the
|
||||
size of the memory containing the payload, or that will receive
|
||||
the payload. If :ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` finds that this value is
|
||||
less than is required to store the payload result, then it is set
|
||||
to a value large enough to store the payload result and ``ENOSPC`` is
|
||||
returned.
|
||||
|
||||
- .. row 1
|
||||
.. note::
|
||||
|
||||
- __u32
|
||||
|
||||
- ``id``
|
||||
|
||||
-
|
||||
- Identifies the control, set by the application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``size``
|
||||
|
||||
-
|
||||
- The total size in bytes of the payload of this control. This is
|
||||
normally 0, but for pointer controls this should be set to the
|
||||
size of the memory containing the payload, or that will receive
|
||||
the payload. If :ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` finds that this value is
|
||||
less than is required to store the payload result, then it is set
|
||||
to a value large enough to store the payload result and ``ENOSPC`` is
|
||||
returned.
|
||||
|
||||
.. note::
|
||||
|
||||
For string controls, this ``size`` field should
|
||||
not be confused with the length of the string. This field refers
|
||||
to the size of the memory that contains the string. The actual
|
||||
*length* of the string may well be much smaller.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved2``\ [1]
|
||||
|
||||
-
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- union
|
||||
|
||||
- (anonymous)
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
- __s32
|
||||
|
||||
- ``value``
|
||||
|
||||
- New value or current value. Valid if this control is not of type
|
||||
``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is
|
||||
not set.
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
- __s64
|
||||
|
||||
- ``value64``
|
||||
|
||||
- New value or current value. Valid if this control is of type
|
||||
``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is
|
||||
not set.
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
- char *
|
||||
|
||||
- ``string``
|
||||
|
||||
- A pointer to a string. Valid if this control is of type
|
||||
``V4L2_CTRL_TYPE_STRING``.
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
- __u8 *
|
||||
|
||||
- ``p_u8``
|
||||
|
||||
- A pointer to a matrix control of unsigned 8-bit values. Valid if
|
||||
this control is of type ``V4L2_CTRL_TYPE_U8``.
|
||||
|
||||
- .. row 9
|
||||
|
||||
-
|
||||
- __u16 *
|
||||
|
||||
- ``p_u16``
|
||||
|
||||
- A pointer to a matrix control of unsigned 16-bit values. Valid if
|
||||
this control is of type ``V4L2_CTRL_TYPE_U16``.
|
||||
|
||||
- .. row 10
|
||||
|
||||
-
|
||||
- __u32 *
|
||||
|
||||
- ``p_u32``
|
||||
|
||||
- A pointer to a matrix control of unsigned 32-bit values. Valid if
|
||||
this control is of type ``V4L2_CTRL_TYPE_U32``.
|
||||
|
||||
- .. row 11
|
||||
|
||||
-
|
||||
- void *
|
||||
|
||||
- ``ptr``
|
||||
|
||||
- A pointer to a compound type which can be an N-dimensional array
|
||||
and/or a compound type (the control's type is >=
|
||||
``V4L2_CTRL_COMPOUND_TYPES``). Valid if
|
||||
``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is set for this control.
|
||||
For string controls, this ``size`` field should
|
||||
not be confused with the length of the string. This field refers
|
||||
to the size of the memory that contains the string. The actual
|
||||
*length* of the string may well be much smaller.
|
||||
* - __u32
|
||||
- ``reserved2``\ [1]
|
||||
-
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
* - union
|
||||
- (anonymous)
|
||||
* -
|
||||
- __s32
|
||||
- ``value``
|
||||
- New value or current value. Valid if this control is not of type
|
||||
``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is
|
||||
not set.
|
||||
* -
|
||||
- __s64
|
||||
- ``value64``
|
||||
- New value or current value. Valid if this control is of type
|
||||
``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is
|
||||
not set.
|
||||
* -
|
||||
- char *
|
||||
- ``string``
|
||||
- A pointer to a string. Valid if this control is of type
|
||||
``V4L2_CTRL_TYPE_STRING``.
|
||||
* -
|
||||
- __u8 *
|
||||
- ``p_u8``
|
||||
- A pointer to a matrix control of unsigned 8-bit values. Valid if
|
||||
this control is of type ``V4L2_CTRL_TYPE_U8``.
|
||||
* -
|
||||
- __u16 *
|
||||
- ``p_u16``
|
||||
- A pointer to a matrix control of unsigned 16-bit values. Valid if
|
||||
this control is of type ``V4L2_CTRL_TYPE_U16``.
|
||||
* -
|
||||
- __u32 *
|
||||
- ``p_u32``
|
||||
- A pointer to a matrix control of unsigned 32-bit values. Valid if
|
||||
this control is of type ``V4L2_CTRL_TYPE_U32``.
|
||||
* -
|
||||
- void *
|
||||
- ``ptr``
|
||||
- A pointer to a compound type which can be an N-dimensional array
|
||||
and/or a compound type (the control's type is >=
|
||||
``V4L2_CTRL_COMPOUND_TYPES``). Valid if
|
||||
``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is set for this control.
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{4.0cm}|p{2.0cm}|p{2.0cm}|p{8.5cm}|
|
||||
|
@ -245,130 +191,96 @@ still cause this situation.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2 1
|
||||
|
||||
* - union
|
||||
- (anonymous)
|
||||
* -
|
||||
- __u32
|
||||
- ``ctrl_class``
|
||||
- The control class to which all controls belong, see
|
||||
:ref:`ctrl-class`. Drivers that use a kernel framework for
|
||||
handling controls will also accept a value of 0 here, meaning that
|
||||
the controls can belong to any control class. Whether drivers
|
||||
support this can be tested by setting ``ctrl_class`` to 0 and
|
||||
calling :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` with a ``count`` of 0. If that
|
||||
succeeds, then the driver supports this feature.
|
||||
* -
|
||||
- __u32
|
||||
- ``which``
|
||||
- Which value of the control to get/set/try.
|
||||
``V4L2_CTRL_WHICH_CUR_VAL`` will return the current value of the
|
||||
control and ``V4L2_CTRL_WHICH_DEF_VAL`` will return the default
|
||||
value of the control.
|
||||
|
||||
- .. row 1
|
||||
.. note::
|
||||
|
||||
- union
|
||||
You can only get the default value of the control,
|
||||
you cannot set or try it.
|
||||
|
||||
- (anonymous)
|
||||
For backwards compatibility you can also use a control class here
|
||||
(see :ref:`ctrl-class`). In that case all controls have to
|
||||
belong to that control class. This usage is deprecated, instead
|
||||
just use ``V4L2_CTRL_WHICH_CUR_VAL``. There are some very old
|
||||
drivers that do not yet support ``V4L2_CTRL_WHICH_CUR_VAL`` and
|
||||
that require a control class here. You can test for such drivers
|
||||
by setting ctrl_class to ``V4L2_CTRL_WHICH_CUR_VAL`` and calling
|
||||
VIDIOC_TRY_EXT_CTRLS with a count of 0. If that fails, then the
|
||||
driver does not support ``V4L2_CTRL_WHICH_CUR_VAL``.
|
||||
* - __u32
|
||||
- ``count``
|
||||
- The number of controls in the controls array. May also be zero.
|
||||
* - __u32
|
||||
- ``error_idx``
|
||||
- Set by the driver in case of an error. If the error is associated
|
||||
with a particular control, then ``error_idx`` is set to the index
|
||||
of that control. If the error is not related to a specific
|
||||
control, or the validation step failed (see below), then
|
||||
``error_idx`` is set to ``count``. The value is undefined if the
|
||||
ioctl returned 0 (success).
|
||||
|
||||
- .. row 2
|
||||
Before controls are read from/written to hardware a validation
|
||||
step takes place: this checks if all controls in the list are
|
||||
valid controls, if no attempt is made to write to a read-only
|
||||
control or read from a write-only control, and any other up-front
|
||||
checks that can be done without accessing the hardware. The exact
|
||||
validations done during this step are driver dependent since some
|
||||
checks might require hardware access for some devices, thus making
|
||||
it impossible to do those checks up-front. However, drivers should
|
||||
make a best-effort to do as many up-front checks as possible.
|
||||
|
||||
-
|
||||
- __u32
|
||||
This check is done to avoid leaving the hardware in an
|
||||
inconsistent state due to easy-to-avoid problems. But it leads to
|
||||
another problem: the application needs to know whether an error
|
||||
came from the validation step (meaning that the hardware was not
|
||||
touched) or from an error during the actual reading from/writing
|
||||
to hardware.
|
||||
|
||||
- ``ctrl_class``
|
||||
The, in hindsight quite poor, solution for that is to set
|
||||
``error_idx`` to ``count`` if the validation failed. This has the
|
||||
unfortunate side-effect that it is not possible to see which
|
||||
control failed the validation. If the validation was successful
|
||||
and the error happened while accessing the hardware, then
|
||||
``error_idx`` is less than ``count`` and only the controls up to
|
||||
``error_idx-1`` were read or written correctly, and the state of
|
||||
the remaining controls is undefined.
|
||||
|
||||
- The control class to which all controls belong, see
|
||||
:ref:`ctrl-class`. Drivers that use a kernel framework for
|
||||
handling controls will also accept a value of 0 here, meaning that
|
||||
the controls can belong to any control class. Whether drivers
|
||||
support this can be tested by setting ``ctrl_class`` to 0 and
|
||||
calling :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` with a ``count`` of 0. If that
|
||||
succeeds, then the driver supports this feature.
|
||||
Since :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` does not access hardware there is
|
||||
also no need to handle the validation step in this special way, so
|
||||
``error_idx`` will just be set to the control that failed the
|
||||
validation step instead of to ``count``. This means that if
|
||||
:ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` fails with ``error_idx`` set to ``count``,
|
||||
then you can call :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` to try to discover the
|
||||
actual control that failed the validation step. Unfortunately,
|
||||
there is no ``TRY`` equivalent for :ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`.
|
||||
* - __u32
|
||||
- ``reserved``\ [2]
|
||||
- Reserved for future extensions.
|
||||
|
||||
- .. row 3
|
||||
Drivers and applications must set the array to zero.
|
||||
* - struct :c:type:`v4l2_ext_control` *
|
||||
- ``controls``
|
||||
- Pointer to an array of ``count`` v4l2_ext_control structures.
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``which``
|
||||
|
||||
- Which value of the control to get/set/try.
|
||||
``V4L2_CTRL_WHICH_CUR_VAL`` will return the current value of the
|
||||
control and ``V4L2_CTRL_WHICH_DEF_VAL`` will return the default
|
||||
value of the control.
|
||||
|
||||
.. note::
|
||||
|
||||
You can only get the default value of the control,
|
||||
you cannot set or try it.
|
||||
|
||||
For backwards compatibility you can also use a control class here
|
||||
(see :ref:`ctrl-class`). In that case all controls have to
|
||||
belong to that control class. This usage is deprecated, instead
|
||||
just use ``V4L2_CTRL_WHICH_CUR_VAL``. There are some very old
|
||||
drivers that do not yet support ``V4L2_CTRL_WHICH_CUR_VAL`` and
|
||||
that require a control class here. You can test for such drivers
|
||||
by setting ctrl_class to ``V4L2_CTRL_WHICH_CUR_VAL`` and calling
|
||||
VIDIOC_TRY_EXT_CTRLS with a count of 0. If that fails, then the
|
||||
driver does not support ``V4L2_CTRL_WHICH_CUR_VAL``.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``count``
|
||||
|
||||
- The number of controls in the controls array. May also be zero.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``error_idx``
|
||||
|
||||
- Set by the driver in case of an error. If the error is associated
|
||||
with a particular control, then ``error_idx`` is set to the index
|
||||
of that control. If the error is not related to a specific
|
||||
control, or the validation step failed (see below), then
|
||||
``error_idx`` is set to ``count``. The value is undefined if the
|
||||
ioctl returned 0 (success).
|
||||
|
||||
Before controls are read from/written to hardware a validation
|
||||
step takes place: this checks if all controls in the list are
|
||||
valid controls, if no attempt is made to write to a read-only
|
||||
control or read from a write-only control, and any other up-front
|
||||
checks that can be done without accessing the hardware. The exact
|
||||
validations done during this step are driver dependent since some
|
||||
checks might require hardware access for some devices, thus making
|
||||
it impossible to do those checks up-front. However, drivers should
|
||||
make a best-effort to do as many up-front checks as possible.
|
||||
|
||||
This check is done to avoid leaving the hardware in an
|
||||
inconsistent state due to easy-to-avoid problems. But it leads to
|
||||
another problem: the application needs to know whether an error
|
||||
came from the validation step (meaning that the hardware was not
|
||||
touched) or from an error during the actual reading from/writing
|
||||
to hardware.
|
||||
|
||||
The, in hindsight quite poor, solution for that is to set
|
||||
``error_idx`` to ``count`` if the validation failed. This has the
|
||||
unfortunate side-effect that it is not possible to see which
|
||||
control failed the validation. If the validation was successful
|
||||
and the error happened while accessing the hardware, then
|
||||
``error_idx`` is less than ``count`` and only the controls up to
|
||||
``error_idx-1`` were read or written correctly, and the state of
|
||||
the remaining controls is undefined.
|
||||
|
||||
Since :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` does not access hardware there is
|
||||
also no need to handle the validation step in this special way, so
|
||||
``error_idx`` will just be set to the control that failed the
|
||||
validation step instead of to ``count``. This means that if
|
||||
:ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` fails with ``error_idx`` set to ``count``,
|
||||
then you can call :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` to try to discover the
|
||||
actual control that failed the validation step. Unfortunately,
|
||||
there is no ``TRY`` equivalent for :ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [2]
|
||||
|
||||
- Reserved for future extensions.
|
||||
|
||||
Drivers and applications must set the array to zero.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- struct :c:type:`v4l2_ext_control` *
|
||||
|
||||
- ``controls``
|
||||
|
||||
- Pointer to an array of ``count`` v4l2_ext_control structures.
|
||||
|
||||
Ignored if ``count`` equals zero.
|
||||
Ignored if ``count`` equals zero.
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
|
||||
|
@ -380,99 +292,49 @@ still cause this situation.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_CTRL_CLASS_USER``
|
||||
|
||||
- 0x980000
|
||||
|
||||
- The class containing user controls. These controls are described
|
||||
in :ref:`control`. All controls that can be set using the
|
||||
:ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` and
|
||||
:ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` ioctl belong to this
|
||||
class.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_CTRL_CLASS_MPEG``
|
||||
|
||||
- 0x990000
|
||||
|
||||
- The class containing MPEG compression controls. These controls are
|
||||
described in :ref:`mpeg-controls`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_CTRL_CLASS_CAMERA``
|
||||
|
||||
- 0x9a0000
|
||||
|
||||
- The class containing camera controls. These controls are described
|
||||
in :ref:`camera-controls`.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_CTRL_CLASS_FM_TX``
|
||||
|
||||
- 0x9b0000
|
||||
|
||||
- The class containing FM Transmitter (FM TX) controls. These
|
||||
controls are described in :ref:`fm-tx-controls`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_CTRL_CLASS_FLASH``
|
||||
|
||||
- 0x9c0000
|
||||
|
||||
- The class containing flash device controls. These controls are
|
||||
described in :ref:`flash-controls`.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_CTRL_CLASS_JPEG``
|
||||
|
||||
- 0x9d0000
|
||||
|
||||
- The class containing JPEG compression controls. These controls are
|
||||
described in :ref:`jpeg-controls`.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_CTRL_CLASS_IMAGE_SOURCE``
|
||||
|
||||
- 0x9e0000
|
||||
|
||||
- The class containing image source controls. These controls are
|
||||
described in :ref:`image-source-controls`.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_CTRL_CLASS_IMAGE_PROC``
|
||||
|
||||
- 0x9f0000
|
||||
|
||||
- The class containing image processing controls. These controls are
|
||||
described in :ref:`image-process-controls`.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``V4L2_CTRL_CLASS_FM_RX``
|
||||
|
||||
- 0xa10000
|
||||
|
||||
- The class containing FM Receiver (FM RX) controls. These controls
|
||||
are described in :ref:`fm-rx-controls`.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- ``V4L2_CTRL_CLASS_RF_TUNER``
|
||||
|
||||
- 0xa20000
|
||||
|
||||
- The class containing RF tuner controls. These controls are
|
||||
described in :ref:`rf-tuner-controls`.
|
||||
* - ``V4L2_CTRL_CLASS_USER``
|
||||
- 0x980000
|
||||
- The class containing user controls. These controls are described
|
||||
in :ref:`control`. All controls that can be set using the
|
||||
:ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` and
|
||||
:ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` ioctl belong to this
|
||||
class.
|
||||
* - ``V4L2_CTRL_CLASS_MPEG``
|
||||
- 0x990000
|
||||
- The class containing MPEG compression controls. These controls are
|
||||
described in :ref:`mpeg-controls`.
|
||||
* - ``V4L2_CTRL_CLASS_CAMERA``
|
||||
- 0x9a0000
|
||||
- The class containing camera controls. These controls are described
|
||||
in :ref:`camera-controls`.
|
||||
* - ``V4L2_CTRL_CLASS_FM_TX``
|
||||
- 0x9b0000
|
||||
- The class containing FM Transmitter (FM TX) controls. These
|
||||
controls are described in :ref:`fm-tx-controls`.
|
||||
* - ``V4L2_CTRL_CLASS_FLASH``
|
||||
- 0x9c0000
|
||||
- The class containing flash device controls. These controls are
|
||||
described in :ref:`flash-controls`.
|
||||
* - ``V4L2_CTRL_CLASS_JPEG``
|
||||
- 0x9d0000
|
||||
- The class containing JPEG compression controls. These controls are
|
||||
described in :ref:`jpeg-controls`.
|
||||
* - ``V4L2_CTRL_CLASS_IMAGE_SOURCE``
|
||||
- 0x9e0000
|
||||
- The class containing image source controls. These controls are
|
||||
described in :ref:`image-source-controls`.
|
||||
* - ``V4L2_CTRL_CLASS_IMAGE_PROC``
|
||||
- 0x9f0000
|
||||
- The class containing image processing controls. These controls are
|
||||
described in :ref:`image-process-controls`.
|
||||
* - ``V4L2_CTRL_CLASS_FM_RX``
|
||||
- 0xa10000
|
||||
- The class containing FM Receiver (FM RX) controls. These controls
|
||||
are described in :ref:`fm-rx-controls`.
|
||||
* - ``V4L2_CTRL_CLASS_RF_TUNER``
|
||||
- 0xa20000
|
||||
- The class containing RF tuner controls. These controls are
|
||||
described in :ref:`rf-tuner-controls`.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -86,201 +86,126 @@ destructive video overlay.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 1 2
|
||||
|
||||
* - __u32
|
||||
- ``capability``
|
||||
-
|
||||
- Overlay capability flags set by the driver, see
|
||||
:ref:`framebuffer-cap`.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
-
|
||||
- Overlay control flags set by application and driver, see
|
||||
:ref:`framebuffer-flags`
|
||||
* - void *
|
||||
- ``base``
|
||||
-
|
||||
- Physical base address of the framebuffer, that is the address of
|
||||
the pixel in the top left corner of the framebuffer. [#f1]_
|
||||
* -
|
||||
-
|
||||
-
|
||||
- This field is irrelevant to *non-destructive Video Overlays*. For
|
||||
*destructive Video Overlays* applications must provide a base
|
||||
address. The driver may accept only base addresses which are a
|
||||
multiple of two, four or eight bytes. For *Video Output Overlays*
|
||||
the driver must return a valid base address, so applications can
|
||||
find the corresponding Linux framebuffer device (see
|
||||
:ref:`osd`).
|
||||
* - struct
|
||||
- ``fmt``
|
||||
-
|
||||
- Layout of the frame buffer.
|
||||
* -
|
||||
- __u32
|
||||
- ``width``
|
||||
- Width of the frame buffer in pixels.
|
||||
* -
|
||||
- __u32
|
||||
- ``height``
|
||||
- Height of the frame buffer in pixels.
|
||||
* -
|
||||
- __u32
|
||||
- ``pixelformat``
|
||||
- The pixel format of the framebuffer.
|
||||
* -
|
||||
-
|
||||
-
|
||||
- For *non-destructive Video Overlays* this field only defines a
|
||||
format for the struct :c:type:`v4l2_window`
|
||||
``chromakey`` field.
|
||||
* -
|
||||
-
|
||||
-
|
||||
- For *destructive Video Overlays* applications must initialize this
|
||||
field. For *Video Output Overlays* the driver must return a valid
|
||||
format.
|
||||
* -
|
||||
-
|
||||
-
|
||||
- Usually this is an RGB format (for example
|
||||
:ref:`V4L2_PIX_FMT_RGB565 <V4L2-PIX-FMT-RGB565>`) but YUV
|
||||
formats (only packed YUV formats when chroma keying is used, not
|
||||
including ``V4L2_PIX_FMT_YUYV`` and ``V4L2_PIX_FMT_UYVY``) and the
|
||||
``V4L2_PIX_FMT_PAL8`` format are also permitted. The behavior of
|
||||
the driver when an application requests a compressed format is
|
||||
undefined. See :ref:`pixfmt` for information on pixel formats.
|
||||
* -
|
||||
- enum :c:type:`v4l2_field`
|
||||
- ``field``
|
||||
- Drivers and applications shall ignore this field. If applicable,
|
||||
the field order is selected with the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, using the ``field``
|
||||
field of struct :c:type:`v4l2_window`.
|
||||
* -
|
||||
- __u32
|
||||
- ``bytesperline``
|
||||
- Distance in bytes between the leftmost pixels in two adjacent
|
||||
lines.
|
||||
* - :cspan:`3`
|
||||
|
||||
- .. row 1
|
||||
This field is irrelevant to *non-destructive Video Overlays*.
|
||||
|
||||
- __u32
|
||||
For *destructive Video Overlays* both applications and drivers can
|
||||
set this field to request padding bytes at the end of each line.
|
||||
Drivers however may ignore the requested value, returning
|
||||
``width`` times bytes-per-pixel or a larger value required by the
|
||||
hardware. That implies applications can just set this field to
|
||||
zero to get a reasonable default.
|
||||
|
||||
- ``capability``
|
||||
For *Video Output Overlays* the driver must return a valid value.
|
||||
|
||||
-
|
||||
- Overlay capability flags set by the driver, see
|
||||
:ref:`framebuffer-cap`.
|
||||
Video hardware may access padding bytes, therefore they must
|
||||
reside in accessible memory. Consider for example the case where
|
||||
padding bytes after the last line of an image cross a system page
|
||||
boundary. Capture devices may write padding bytes, the value is
|
||||
undefined. Output devices ignore the contents of padding bytes.
|
||||
|
||||
- .. row 2
|
||||
When the image format is planar the ``bytesperline`` value applies
|
||||
to the first plane and is divided by the same factor as the
|
||||
``width`` field for the other planes. For example the Cb and Cr
|
||||
planes of a YUV 4:2:0 image have half as many padding bytes
|
||||
following each line as the Y plane. To avoid ambiguities drivers
|
||||
must return a ``bytesperline`` value rounded up to a multiple of
|
||||
the scale factor.
|
||||
* -
|
||||
- __u32
|
||||
- ``sizeimage``
|
||||
- This field is irrelevant to *non-destructive Video Overlays*. For
|
||||
*destructive Video Overlays* applications must initialize this
|
||||
field. For *Video Output Overlays* the driver must return a valid
|
||||
format.
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
-
|
||||
- Overlay control flags set by application and driver, see
|
||||
:ref:`framebuffer-flags`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- void *
|
||||
|
||||
- ``base``
|
||||
|
||||
-
|
||||
- Physical base address of the framebuffer, that is the address of
|
||||
the pixel in the top left corner of the framebuffer. [#f1]_
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
- This field is irrelevant to *non-destructive Video Overlays*. For
|
||||
*destructive Video Overlays* applications must provide a base
|
||||
address. The driver may accept only base addresses which are a
|
||||
multiple of two, four or eight bytes. For *Video Output Overlays*
|
||||
the driver must return a valid base address, so applications can
|
||||
find the corresponding Linux framebuffer device (see
|
||||
:ref:`osd`).
|
||||
|
||||
- .. row 5
|
||||
|
||||
- struct
|
||||
|
||||
- ``fmt``
|
||||
|
||||
-
|
||||
- Layout of the frame buffer.
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``width``
|
||||
|
||||
- Width of the frame buffer in pixels.
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``height``
|
||||
|
||||
- Height of the frame buffer in pixels.
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``pixelformat``
|
||||
|
||||
- The pixel format of the framebuffer.
|
||||
|
||||
- .. row 9
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
- For *non-destructive Video Overlays* this field only defines a
|
||||
format for the struct :c:type:`v4l2_window`
|
||||
``chromakey`` field.
|
||||
|
||||
- .. row 10
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
- For *destructive Video Overlays* applications must initialize this
|
||||
field. For *Video Output Overlays* the driver must return a valid
|
||||
format.
|
||||
|
||||
- .. row 11
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
- Usually this is an RGB format (for example
|
||||
:ref:`V4L2_PIX_FMT_RGB565 <V4L2-PIX-FMT-RGB565>`) but YUV
|
||||
formats (only packed YUV formats when chroma keying is used, not
|
||||
including ``V4L2_PIX_FMT_YUYV`` and ``V4L2_PIX_FMT_UYVY``) and the
|
||||
``V4L2_PIX_FMT_PAL8`` format are also permitted. The behavior of
|
||||
the driver when an application requests a compressed format is
|
||||
undefined. See :ref:`pixfmt` for information on pixel formats.
|
||||
|
||||
- .. row 12
|
||||
|
||||
-
|
||||
- enum :c:type:`v4l2_field`
|
||||
|
||||
- ``field``
|
||||
|
||||
- Drivers and applications shall ignore this field. If applicable,
|
||||
the field order is selected with the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, using the ``field``
|
||||
field of struct :c:type:`v4l2_window`.
|
||||
|
||||
- .. row 13
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``bytesperline``
|
||||
|
||||
- Distance in bytes between the leftmost pixels in two adjacent
|
||||
lines.
|
||||
|
||||
- .. row 14
|
||||
|
||||
- :cspan:`3`
|
||||
|
||||
This field is irrelevant to *non-destructive Video Overlays*.
|
||||
|
||||
For *destructive Video Overlays* both applications and drivers can
|
||||
set this field to request padding bytes at the end of each line.
|
||||
Drivers however may ignore the requested value, returning
|
||||
``width`` times bytes-per-pixel or a larger value required by the
|
||||
hardware. That implies applications can just set this field to
|
||||
zero to get a reasonable default.
|
||||
|
||||
For *Video Output Overlays* the driver must return a valid value.
|
||||
|
||||
Video hardware may access padding bytes, therefore they must
|
||||
reside in accessible memory. Consider for example the case where
|
||||
padding bytes after the last line of an image cross a system page
|
||||
boundary. Capture devices may write padding bytes, the value is
|
||||
undefined. Output devices ignore the contents of padding bytes.
|
||||
|
||||
When the image format is planar the ``bytesperline`` value applies
|
||||
to the first plane and is divided by the same factor as the
|
||||
``width`` field for the other planes. For example the Cb and Cr
|
||||
planes of a YUV 4:2:0 image have half as many padding bytes
|
||||
following each line as the Y plane. To avoid ambiguities drivers
|
||||
must return a ``bytesperline`` value rounded up to a multiple of
|
||||
the scale factor.
|
||||
|
||||
- .. row 15
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``sizeimage``
|
||||
|
||||
- This field is irrelevant to *non-destructive Video Overlays*. For
|
||||
*destructive Video Overlays* applications must initialize this
|
||||
field. For *Video Output Overlays* the driver must return a valid
|
||||
format.
|
||||
|
||||
Together with ``base`` it defines the framebuffer memory
|
||||
accessible by the driver.
|
||||
|
||||
- .. row 16
|
||||
|
||||
-
|
||||
- enum :c:type:`v4l2_colorspace`
|
||||
|
||||
- ``colorspace``
|
||||
|
||||
- This information supplements the ``pixelformat`` and must be set
|
||||
by the driver, see :ref:`colorspaces`.
|
||||
|
||||
- .. row 17
|
||||
|
||||
-
|
||||
- __u32
|
||||
|
||||
- ``priv``
|
||||
|
||||
- Reserved. Drivers and applications must set this field to zero.
|
||||
Together with ``base`` it defines the framebuffer memory
|
||||
accessible by the driver.
|
||||
* -
|
||||
- enum :c:type:`v4l2_colorspace`
|
||||
- ``colorspace``
|
||||
- This information supplements the ``pixelformat`` and must be set
|
||||
by the driver, see :ref:`colorspaces`.
|
||||
* -
|
||||
- __u32
|
||||
- ``priv``
|
||||
- Reserved. Drivers and applications must set this field to zero.
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
|
||||
|
@ -292,84 +217,44 @@ destructive video overlay.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_FBUF_CAP_EXTERNOVERLAY``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- The device is capable of non-destructive overlays. When the driver
|
||||
clears this flag, only destructive overlays are supported. There
|
||||
are no drivers yet which support both destructive and
|
||||
non-destructive overlays. Video Output Overlays are in practice
|
||||
always non-destructive.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_FBUF_CAP_CHROMAKEY``
|
||||
|
||||
- 0x0002
|
||||
|
||||
- The device supports clipping by chroma-keying the images. That is,
|
||||
image pixels replace pixels in the VGA or video signal only where
|
||||
the latter assume a certain color. Chroma-keying makes no sense
|
||||
for destructive overlays.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_FBUF_CAP_LIST_CLIPPING``
|
||||
|
||||
- 0x0004
|
||||
|
||||
- The device supports clipping using a list of clip rectangles.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_FBUF_CAP_BITMAP_CLIPPING``
|
||||
|
||||
- 0x0008
|
||||
|
||||
- The device supports clipping using a bit mask.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_FBUF_CAP_LOCAL_ALPHA``
|
||||
|
||||
- 0x0010
|
||||
|
||||
- The device supports clipping/blending using the alpha channel of
|
||||
the framebuffer or VGA signal. Alpha blending makes no sense for
|
||||
destructive overlays.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_FBUF_CAP_GLOBAL_ALPHA``
|
||||
|
||||
- 0x0020
|
||||
|
||||
- The device supports alpha blending using a global alpha value.
|
||||
Alpha blending makes no sense for destructive overlays.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_FBUF_CAP_LOCAL_INV_ALPHA``
|
||||
|
||||
- 0x0040
|
||||
|
||||
- The device supports clipping/blending using the inverted alpha
|
||||
channel of the framebuffer or VGA signal. Alpha blending makes no
|
||||
sense for destructive overlays.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_FBUF_CAP_SRC_CHROMAKEY``
|
||||
|
||||
- 0x0080
|
||||
|
||||
- The device supports Source Chroma-keying. Video pixels with the
|
||||
chroma-key colors are replaced by framebuffer pixels, which is
|
||||
exactly opposite of ``V4L2_FBUF_CAP_CHROMAKEY``
|
||||
* - ``V4L2_FBUF_CAP_EXTERNOVERLAY``
|
||||
- 0x0001
|
||||
- The device is capable of non-destructive overlays. When the driver
|
||||
clears this flag, only destructive overlays are supported. There
|
||||
are no drivers yet which support both destructive and
|
||||
non-destructive overlays. Video Output Overlays are in practice
|
||||
always non-destructive.
|
||||
* - ``V4L2_FBUF_CAP_CHROMAKEY``
|
||||
- 0x0002
|
||||
- The device supports clipping by chroma-keying the images. That is,
|
||||
image pixels replace pixels in the VGA or video signal only where
|
||||
the latter assume a certain color. Chroma-keying makes no sense
|
||||
for destructive overlays.
|
||||
* - ``V4L2_FBUF_CAP_LIST_CLIPPING``
|
||||
- 0x0004
|
||||
- The device supports clipping using a list of clip rectangles.
|
||||
* - ``V4L2_FBUF_CAP_BITMAP_CLIPPING``
|
||||
- 0x0008
|
||||
- The device supports clipping using a bit mask.
|
||||
* - ``V4L2_FBUF_CAP_LOCAL_ALPHA``
|
||||
- 0x0010
|
||||
- The device supports clipping/blending using the alpha channel of
|
||||
the framebuffer or VGA signal. Alpha blending makes no sense for
|
||||
destructive overlays.
|
||||
* - ``V4L2_FBUF_CAP_GLOBAL_ALPHA``
|
||||
- 0x0020
|
||||
- The device supports alpha blending using a global alpha value.
|
||||
Alpha blending makes no sense for destructive overlays.
|
||||
* - ``V4L2_FBUF_CAP_LOCAL_INV_ALPHA``
|
||||
- 0x0040
|
||||
- The device supports clipping/blending using the inverted alpha
|
||||
channel of the framebuffer or VGA signal. Alpha blending makes no
|
||||
sense for destructive overlays.
|
||||
* - ``V4L2_FBUF_CAP_SRC_CHROMAKEY``
|
||||
- 0x0080
|
||||
- The device supports Source Chroma-keying. Video pixels with the
|
||||
chroma-key colors are replaced by framebuffer pixels, which is
|
||||
exactly opposite of ``V4L2_FBUF_CAP_CHROMAKEY``
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
|
||||
|
@ -383,106 +268,68 @@ destructive video overlay.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_FBUF_FLAG_PRIMARY``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- The framebuffer is the primary graphics surface. In other words,
|
||||
the overlay is destructive. This flag is typically set by any
|
||||
driver that doesn't have the ``V4L2_FBUF_CAP_EXTERNOVERLAY``
|
||||
capability and it is cleared otherwise.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_FBUF_FLAG_OVERLAY``
|
||||
|
||||
- 0x0002
|
||||
|
||||
- If this flag is set for a video capture device, then the driver
|
||||
will set the initial overlay size to cover the full framebuffer
|
||||
size, otherwise the existing overlay size (as set by
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`) will be used. Only one
|
||||
video capture driver (bttv) supports this flag. The use of this
|
||||
flag for capture devices is deprecated. There is no way to detect
|
||||
which drivers support this flag, so the only reliable method of
|
||||
setting the overlay size is through
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. If this flag is set for a
|
||||
video output device, then the video output overlay window is
|
||||
relative to the top-left corner of the framebuffer and restricted
|
||||
to the size of the framebuffer. If it is cleared, then the video
|
||||
output overlay window is relative to the video output display.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_FBUF_FLAG_CHROMAKEY``
|
||||
|
||||
- 0x0004
|
||||
|
||||
- Use chroma-keying. The chroma-key color is determined by the
|
||||
``chromakey`` field of struct :c:type:`v4l2_window`
|
||||
and negotiated with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`
|
||||
ioctl, see :ref:`overlay` and :ref:`osd`.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- :cspan:`2` There are no flags to enable clipping using a list of
|
||||
clip rectangles or a bitmap. These methods are negotiated with the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, see :ref:`overlay`
|
||||
and :ref:`osd`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_FBUF_FLAG_LOCAL_ALPHA``
|
||||
|
||||
- 0x0008
|
||||
|
||||
- Use the alpha channel of the framebuffer to clip or blend
|
||||
framebuffer pixels with video images. The blend function is:
|
||||
output = framebuffer pixel * alpha + video pixel * (1 - alpha).
|
||||
The actual alpha depth depends on the framebuffer pixel format.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_FBUF_FLAG_GLOBAL_ALPHA``
|
||||
|
||||
- 0x0010
|
||||
|
||||
- Use a global alpha value to blend the framebuffer with video
|
||||
images. The blend function is: output = (framebuffer pixel * alpha
|
||||
+ video pixel * (255 - alpha)) / 255. The alpha value is
|
||||
determined by the ``global_alpha`` field of struct
|
||||
:c:type:`v4l2_window` and negotiated with the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, see :ref:`overlay`
|
||||
and :ref:`osd`.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_FBUF_FLAG_LOCAL_INV_ALPHA``
|
||||
|
||||
- 0x0020
|
||||
|
||||
- Like ``V4L2_FBUF_FLAG_LOCAL_ALPHA``, use the alpha channel of the
|
||||
framebuffer to clip or blend framebuffer pixels with video images,
|
||||
but with an inverted alpha value. The blend function is: output =
|
||||
framebuffer pixel * (1 - alpha) + video pixel * alpha. The actual
|
||||
alpha depth depends on the framebuffer pixel format.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_FBUF_FLAG_SRC_CHROMAKEY``
|
||||
|
||||
- 0x0040
|
||||
|
||||
- Use source chroma-keying. The source chroma-key color is
|
||||
determined by the ``chromakey`` field of struct
|
||||
:c:type:`v4l2_window` and negotiated with the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, see :ref:`overlay`
|
||||
and :ref:`osd`. Both chroma-keying are mutual exclusive to each
|
||||
other, so same ``chromakey`` field of struct
|
||||
:c:type:`v4l2_window` is being used.
|
||||
* - ``V4L2_FBUF_FLAG_PRIMARY``
|
||||
- 0x0001
|
||||
- The framebuffer is the primary graphics surface. In other words,
|
||||
the overlay is destructive. This flag is typically set by any
|
||||
driver that doesn't have the ``V4L2_FBUF_CAP_EXTERNOVERLAY``
|
||||
capability and it is cleared otherwise.
|
||||
* - ``V4L2_FBUF_FLAG_OVERLAY``
|
||||
- 0x0002
|
||||
- If this flag is set for a video capture device, then the driver
|
||||
will set the initial overlay size to cover the full framebuffer
|
||||
size, otherwise the existing overlay size (as set by
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`) will be used. Only one
|
||||
video capture driver (bttv) supports this flag. The use of this
|
||||
flag for capture devices is deprecated. There is no way to detect
|
||||
which drivers support this flag, so the only reliable method of
|
||||
setting the overlay size is through
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. If this flag is set for a
|
||||
video output device, then the video output overlay window is
|
||||
relative to the top-left corner of the framebuffer and restricted
|
||||
to the size of the framebuffer. If it is cleared, then the video
|
||||
output overlay window is relative to the video output display.
|
||||
* - ``V4L2_FBUF_FLAG_CHROMAKEY``
|
||||
- 0x0004
|
||||
- Use chroma-keying. The chroma-key color is determined by the
|
||||
``chromakey`` field of struct :c:type:`v4l2_window`
|
||||
and negotiated with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`
|
||||
ioctl, see :ref:`overlay` and :ref:`osd`.
|
||||
* - :cspan:`2` There are no flags to enable clipping using a list of
|
||||
clip rectangles or a bitmap. These methods are negotiated with the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, see :ref:`overlay`
|
||||
and :ref:`osd`.
|
||||
* - ``V4L2_FBUF_FLAG_LOCAL_ALPHA``
|
||||
- 0x0008
|
||||
- Use the alpha channel of the framebuffer to clip or blend
|
||||
framebuffer pixels with video images. The blend function is:
|
||||
output = framebuffer pixel * alpha + video pixel * (1 - alpha).
|
||||
The actual alpha depth depends on the framebuffer pixel format.
|
||||
* - ``V4L2_FBUF_FLAG_GLOBAL_ALPHA``
|
||||
- 0x0010
|
||||
- Use a global alpha value to blend the framebuffer with video
|
||||
images. The blend function is: output = (framebuffer pixel * alpha
|
||||
+ video pixel * (255 - alpha)) / 255. The alpha value is
|
||||
determined by the ``global_alpha`` field of struct
|
||||
:c:type:`v4l2_window` and negotiated with the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, see :ref:`overlay`
|
||||
and :ref:`osd`.
|
||||
* - ``V4L2_FBUF_FLAG_LOCAL_INV_ALPHA``
|
||||
- 0x0020
|
||||
- Like ``V4L2_FBUF_FLAG_LOCAL_ALPHA``, use the alpha channel of the
|
||||
framebuffer to clip or blend framebuffer pixels with video images,
|
||||
but with an inverted alpha value. The blend function is: output =
|
||||
framebuffer pixel * (1 - alpha) + video pixel * alpha. The actual
|
||||
alpha depth depends on the framebuffer pixel format.
|
||||
* - ``V4L2_FBUF_FLAG_SRC_CHROMAKEY``
|
||||
- 0x0040
|
||||
- Use source chroma-keying. The source chroma-key color is
|
||||
determined by the ``chromakey`` field of struct
|
||||
:c:type:`v4l2_window` and negotiated with the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, see :ref:`overlay`
|
||||
and :ref:`osd`. Both chroma-keying are mutual exclusive to each
|
||||
other, so same ``chromakey`` field of struct
|
||||
:c:type:`v4l2_window` is being used.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -93,92 +93,48 @@ The format as returned by :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` must be identical
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
-
|
||||
- Type of the data stream, see :c:type:`v4l2_buf_type`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- union
|
||||
|
||||
- ``fmt``
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_pix_format`
|
||||
|
||||
- ``pix``
|
||||
|
||||
- Definition of an image format, see :ref:`pixfmt`, used by video
|
||||
capture and output devices.
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_pix_format_mplane`
|
||||
|
||||
- ``pix_mp``
|
||||
|
||||
- Definition of an image format, see :ref:`pixfmt`, used by video
|
||||
capture and output devices that support the
|
||||
:ref:`multi-planar version of the API <planar-apis>`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_window`
|
||||
|
||||
- ``win``
|
||||
|
||||
- Definition of an overlaid image, see :ref:`overlay`, used by
|
||||
video overlay devices.
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_vbi_format`
|
||||
|
||||
- ``vbi``
|
||||
|
||||
- Raw VBI capture or output parameters. This is discussed in more
|
||||
detail in :ref:`raw-vbi`. Used by raw VBI capture and output
|
||||
devices.
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_sliced_vbi_format`
|
||||
|
||||
- ``sliced``
|
||||
|
||||
- Sliced VBI capture or output parameters. See :ref:`sliced` for
|
||||
details. Used by sliced VBI capture and output devices.
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_sdr_format`
|
||||
|
||||
- ``sdr``
|
||||
|
||||
- Definition of a data format, see :ref:`pixfmt`, used by SDR
|
||||
capture and output devices.
|
||||
|
||||
- .. row 9
|
||||
|
||||
-
|
||||
- __u8
|
||||
|
||||
- ``raw_data``\ [200]
|
||||
|
||||
- Place holder for future extensions.
|
||||
* - __u32
|
||||
- ``type``
|
||||
-
|
||||
- Type of the data stream, see :c:type:`v4l2_buf_type`.
|
||||
* - union
|
||||
- ``fmt``
|
||||
* -
|
||||
- struct :c:type:`v4l2_pix_format`
|
||||
- ``pix``
|
||||
- Definition of an image format, see :ref:`pixfmt`, used by video
|
||||
capture and output devices.
|
||||
* -
|
||||
- struct :c:type:`v4l2_pix_format_mplane`
|
||||
- ``pix_mp``
|
||||
- Definition of an image format, see :ref:`pixfmt`, used by video
|
||||
capture and output devices that support the
|
||||
:ref:`multi-planar version of the API <planar-apis>`.
|
||||
* -
|
||||
- struct :c:type:`v4l2_window`
|
||||
- ``win``
|
||||
- Definition of an overlaid image, see :ref:`overlay`, used by
|
||||
video overlay devices.
|
||||
* -
|
||||
- struct :c:type:`v4l2_vbi_format`
|
||||
- ``vbi``
|
||||
- Raw VBI capture or output parameters. This is discussed in more
|
||||
detail in :ref:`raw-vbi`. Used by raw VBI capture and output
|
||||
devices.
|
||||
* -
|
||||
- struct :c:type:`v4l2_sliced_vbi_format`
|
||||
- ``sliced``
|
||||
- Sliced VBI capture or output parameters. See :ref:`sliced` for
|
||||
details. Used by sliced VBI capture and output devices.
|
||||
* -
|
||||
- struct :c:type:`v4l2_sdr_format`
|
||||
- ``sdr``
|
||||
- Definition of a data format, see :ref:`pixfmt`, used by SDR
|
||||
capture and output devices.
|
||||
* -
|
||||
- __u8
|
||||
- ``raw_data``\ [200]
|
||||
- Place holder for future extensions.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -60,53 +60,33 @@ write-only ioctl, it does not return the actual new frequency.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``tuner``
|
||||
|
||||
- The tuner or modulator index number. This is the same value as in
|
||||
the struct :c:type:`v4l2_input` ``tuner`` field and
|
||||
the struct :c:type:`v4l2_tuner` ``index`` field, or
|
||||
the struct :c:type:`v4l2_output` ``modulator`` field
|
||||
and the struct :c:type:`v4l2_modulator` ``index``
|
||||
field.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- The tuner type. This is the same value as in the struct
|
||||
:c:type:`v4l2_tuner` ``type`` field. The type must be
|
||||
set to ``V4L2_TUNER_RADIO`` for ``/dev/radioX`` device nodes, and
|
||||
to ``V4L2_TUNER_ANALOG_TV`` for all others. Set this field to
|
||||
``V4L2_TUNER_RADIO`` for modulators (currently only radio
|
||||
modulators are supported). See :c:type:`v4l2_tuner_type`
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``frequency``
|
||||
|
||||
- Tuning frequency in units of 62.5 kHz, or if the struct
|
||||
:c:type:`v4l2_tuner` or struct
|
||||
:c:type:`v4l2_modulator` ``capability`` flag
|
||||
``V4L2_TUNER_CAP_LOW`` is set, in units of 62.5 Hz. A 1 Hz unit is
|
||||
used when the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [8]
|
||||
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
* - __u32
|
||||
- ``tuner``
|
||||
- The tuner or modulator index number. This is the same value as in
|
||||
the struct :c:type:`v4l2_input` ``tuner`` field and
|
||||
the struct :c:type:`v4l2_tuner` ``index`` field, or
|
||||
the struct :c:type:`v4l2_output` ``modulator`` field
|
||||
and the struct :c:type:`v4l2_modulator` ``index``
|
||||
field.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- The tuner type. This is the same value as in the struct
|
||||
:c:type:`v4l2_tuner` ``type`` field. The type must be
|
||||
set to ``V4L2_TUNER_RADIO`` for ``/dev/radioX`` device nodes, and
|
||||
to ``V4L2_TUNER_ANALOG_TV`` for all others. Set this field to
|
||||
``V4L2_TUNER_RADIO`` for modulators (currently only radio
|
||||
modulators are supported). See :c:type:`v4l2_tuner_type`
|
||||
* - __u32
|
||||
- ``frequency``
|
||||
- Tuning frequency in units of 62.5 kHz, or if the struct
|
||||
:c:type:`v4l2_tuner` or struct
|
||||
:c:type:`v4l2_modulator` ``capability`` flag
|
||||
``V4L2_TUNER_CAP_LOW`` is set, in units of 62.5 Hz. A 1 Hz unit is
|
||||
used when the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set.
|
||||
* - __u32
|
||||
- ``reserved``\ [8]
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -63,68 +63,33 @@ encoding. You usually do want to add them.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- int
|
||||
|
||||
- ``quality``
|
||||
|
||||
- Deprecated. If
|
||||
:ref:`V4L2_CID_JPEG_COMPRESSION_QUALITY <jpeg-quality-control>`
|
||||
control is exposed by a driver applications should use it instead
|
||||
and ignore this field.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- int
|
||||
|
||||
- ``APPn``
|
||||
|
||||
-
|
||||
|
||||
- .. row 3
|
||||
|
||||
- int
|
||||
|
||||
- ``APP_len``
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- char
|
||||
|
||||
- ``APP_data``\ [60]
|
||||
|
||||
-
|
||||
|
||||
- .. row 5
|
||||
|
||||
- int
|
||||
|
||||
- ``COM_len``
|
||||
|
||||
-
|
||||
|
||||
- .. row 6
|
||||
|
||||
- char
|
||||
|
||||
- ``COM_data``\ [60]
|
||||
|
||||
-
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``jpeg_markers``
|
||||
|
||||
- See :ref:`jpeg-markers`. Deprecated. If
|
||||
:ref:`V4L2_CID_JPEG_ACTIVE_MARKER <jpeg-active-marker-control>`
|
||||
control is exposed by a driver applications should use it instead
|
||||
and ignore this field.
|
||||
* - int
|
||||
- ``quality``
|
||||
- Deprecated. If
|
||||
:ref:`V4L2_CID_JPEG_COMPRESSION_QUALITY <jpeg-quality-control>`
|
||||
control is exposed by a driver applications should use it instead
|
||||
and ignore this field.
|
||||
* - int
|
||||
- ``APPn``
|
||||
-
|
||||
* - int
|
||||
- ``APP_len``
|
||||
-
|
||||
* - char
|
||||
- ``APP_data``\ [60]
|
||||
-
|
||||
* - int
|
||||
- ``COM_len``
|
||||
-
|
||||
* - char
|
||||
- ``COM_data``\ [60]
|
||||
-
|
||||
* - __u32
|
||||
- ``jpeg_markers``
|
||||
- See :ref:`jpeg-markers`. Deprecated. If
|
||||
:ref:`V4L2_CID_JPEG_ACTIVE_MARKER <jpeg-active-marker-control>`
|
||||
control is exposed by a driver applications should use it instead
|
||||
and ignore this field.
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
|
||||
|
@ -136,46 +101,21 @@ encoding. You usually do want to add them.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_JPEG_MARKER_DHT``
|
||||
|
||||
- (1<<3)
|
||||
|
||||
- Define Huffman Tables
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_JPEG_MARKER_DQT``
|
||||
|
||||
- (1<<4)
|
||||
|
||||
- Define Quantization Tables
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_JPEG_MARKER_DRI``
|
||||
|
||||
- (1<<5)
|
||||
|
||||
- Define Restart Interval
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_JPEG_MARKER_COM``
|
||||
|
||||
- (1<<6)
|
||||
|
||||
- Comment segment
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_JPEG_MARKER_APP``
|
||||
|
||||
- (1<<7)
|
||||
|
||||
- App segment, driver will always use APP0
|
||||
* - ``V4L2_JPEG_MARKER_DHT``
|
||||
- (1<<3)
|
||||
- Define Huffman Tables
|
||||
* - ``V4L2_JPEG_MARKER_DQT``
|
||||
- (1<<4)
|
||||
- Define Quantization Tables
|
||||
* - ``V4L2_JPEG_MARKER_DRI``
|
||||
- (1<<5)
|
||||
- Define Restart Interval
|
||||
* - ``V4L2_JPEG_MARKER_COM``
|
||||
- (1<<6)
|
||||
- Comment segment
|
||||
* - ``V4L2_JPEG_MARKER_APP``
|
||||
- (1<<7)
|
||||
- App segment, driver will always use APP0
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -69,95 +69,55 @@ To change the radio frequency the
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2 1 1
|
||||
|
||||
* - __u32
|
||||
- ``index``
|
||||
- Identifies the modulator, set by the application.
|
||||
* - __u8
|
||||
- ``name``\ [32]
|
||||
- Name of the modulator, a NUL-terminated ASCII string.
|
||||
|
||||
- .. row 1
|
||||
This information is intended for the user.
|
||||
* - __u32
|
||||
- ``capability``
|
||||
- Modulator capability flags. No flags are defined for this field,
|
||||
the tuner flags in struct :c:type:`v4l2_tuner` are
|
||||
used accordingly. The audio flags indicate the ability to encode
|
||||
audio subprograms. They will *not* change for example with the
|
||||
current video standard.
|
||||
* - __u32
|
||||
- ``rangelow``
|
||||
- The lowest tunable frequency in units of 62.5 KHz, or if the
|
||||
``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units of
|
||||
62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is
|
||||
set, in units of 1 Hz.
|
||||
* - __u32
|
||||
- ``rangehigh``
|
||||
- The highest tunable frequency in units of 62.5 KHz, or if the
|
||||
``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units of
|
||||
62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is
|
||||
set, in units of 1 Hz.
|
||||
* - __u32
|
||||
- ``txsubchans``
|
||||
- With this field applications can determine how audio sub-carriers
|
||||
shall be modulated. It contains a set of flags as defined in
|
||||
:ref:`modulator-txsubchans`.
|
||||
|
||||
- __u32
|
||||
.. note::
|
||||
|
||||
- ``index``
|
||||
The tuner ``rxsubchans`` flags are reused, but the
|
||||
semantics are different. Video output devices
|
||||
are assumed to have an analog or PCM audio input with 1-3
|
||||
channels. The ``txsubchans`` flags select one or more channels
|
||||
for modulation, together with some audio subprogram indicator,
|
||||
for example, a stereo pilot tone.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- :cspan:`2` Type of the modulator, see :c:type:`v4l2_tuner_type`.
|
||||
* - __u32
|
||||
- ``reserved``\ [3]
|
||||
- Reserved for future extensions.
|
||||
|
||||
- Identifies the modulator, set by the application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u8
|
||||
|
||||
- ``name``\ [32]
|
||||
|
||||
- Name of the modulator, a NUL-terminated ASCII string.
|
||||
|
||||
This information is intended for the user.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capability``
|
||||
|
||||
- Modulator capability flags. No flags are defined for this field,
|
||||
the tuner flags in struct :c:type:`v4l2_tuner` are
|
||||
used accordingly. The audio flags indicate the ability to encode
|
||||
audio subprograms. They will *not* change for example with the
|
||||
current video standard.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``rangelow``
|
||||
|
||||
- The lowest tunable frequency in units of 62.5 KHz, or if the
|
||||
``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units of
|
||||
62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is
|
||||
set, in units of 1 Hz.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``rangehigh``
|
||||
|
||||
- The highest tunable frequency in units of 62.5 KHz, or if the
|
||||
``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units of
|
||||
62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is
|
||||
set, in units of 1 Hz.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``txsubchans``
|
||||
|
||||
- With this field applications can determine how audio sub-carriers
|
||||
shall be modulated. It contains a set of flags as defined in
|
||||
:ref:`modulator-txsubchans`.
|
||||
|
||||
.. note::
|
||||
|
||||
The tuner ``rxsubchans`` flags are reused, but the
|
||||
semantics are different. Video output devices
|
||||
are assumed to have an analog or PCM audio input with 1-3
|
||||
channels. The ``txsubchans`` flags select one or more channels
|
||||
for modulation, together with some audio subprogram indicator,
|
||||
for example, a stereo pilot tone.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- :cspan:`2` Type of the modulator, see :c:type:`v4l2_tuner_type`.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [3]
|
||||
|
||||
- Reserved for future extensions.
|
||||
|
||||
Drivers and applications must set the array to zero.
|
||||
Drivers and applications must set the array to zero.
|
||||
|
||||
|
||||
|
||||
|
@ -170,86 +130,56 @@ To change the radio frequency the
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_TUNER_SUB_MONO``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- Modulate channel 1 as mono audio, when the input has more
|
||||
channels, a down-mix of channel 1 and 2. This flag does not
|
||||
combine with ``V4L2_TUNER_SUB_STEREO`` or
|
||||
``V4L2_TUNER_SUB_LANG1``.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_TUNER_SUB_STEREO``
|
||||
|
||||
- 0x0002
|
||||
|
||||
- Modulate channel 1 and 2 as left and right channel of a stereo
|
||||
audio signal. When the input has only one channel or two channels
|
||||
and ``V4L2_TUNER_SUB_SAP`` is also set, channel 1 is encoded as
|
||||
left and right channel. This flag does not combine with
|
||||
``V4L2_TUNER_SUB_MONO`` or ``V4L2_TUNER_SUB_LANG1``. When the
|
||||
driver does not support stereo audio it shall fall back to mono.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_TUNER_SUB_LANG1``
|
||||
|
||||
- 0x0008
|
||||
|
||||
- Modulate channel 1 and 2 as primary and secondary language of a
|
||||
bilingual audio signal. When the input has only one channel it is
|
||||
used for both languages. It is not possible to encode the primary
|
||||
or secondary language only. This flag does not combine with
|
||||
``V4L2_TUNER_SUB_MONO``, ``V4L2_TUNER_SUB_STEREO`` or
|
||||
``V4L2_TUNER_SUB_SAP``. If the hardware does not support the
|
||||
respective audio matrix, or the current video standard does not
|
||||
permit bilingual audio the :ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` ioctl shall
|
||||
return an ``EINVAL`` error code and the driver shall fall back to mono
|
||||
or stereo mode.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_TUNER_SUB_LANG2``
|
||||
|
||||
- 0x0004
|
||||
|
||||
- Same effect as ``V4L2_TUNER_SUB_SAP``.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_TUNER_SUB_SAP``
|
||||
|
||||
- 0x0004
|
||||
|
||||
- When combined with ``V4L2_TUNER_SUB_MONO`` the first channel is
|
||||
encoded as mono audio, the last channel as Second Audio Program.
|
||||
When the input has only one channel it is used for both audio
|
||||
tracks. When the input has three channels the mono track is a
|
||||
down-mix of channel 1 and 2. When combined with
|
||||
``V4L2_TUNER_SUB_STEREO`` channel 1 and 2 are encoded as left and
|
||||
right stereo audio, channel 3 as Second Audio Program. When the
|
||||
input has only two channels, the first is encoded as left and
|
||||
right channel and the second as SAP. When the input has only one
|
||||
channel it is used for all audio tracks. It is not possible to
|
||||
encode a Second Audio Program only. This flag must combine with
|
||||
``V4L2_TUNER_SUB_MONO`` or ``V4L2_TUNER_SUB_STEREO``. If the
|
||||
hardware does not support the respective audio matrix, or the
|
||||
current video standard does not permit SAP the
|
||||
:ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` ioctl shall return an ``EINVAL`` error code and
|
||||
driver shall fall back to mono or stereo mode.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_TUNER_SUB_RDS``
|
||||
|
||||
- 0x0010
|
||||
|
||||
- Enable the RDS encoder for a radio FM transmitter.
|
||||
* - ``V4L2_TUNER_SUB_MONO``
|
||||
- 0x0001
|
||||
- Modulate channel 1 as mono audio, when the input has more
|
||||
channels, a down-mix of channel 1 and 2. This flag does not
|
||||
combine with ``V4L2_TUNER_SUB_STEREO`` or
|
||||
``V4L2_TUNER_SUB_LANG1``.
|
||||
* - ``V4L2_TUNER_SUB_STEREO``
|
||||
- 0x0002
|
||||
- Modulate channel 1 and 2 as left and right channel of a stereo
|
||||
audio signal. When the input has only one channel or two channels
|
||||
and ``V4L2_TUNER_SUB_SAP`` is also set, channel 1 is encoded as
|
||||
left and right channel. This flag does not combine with
|
||||
``V4L2_TUNER_SUB_MONO`` or ``V4L2_TUNER_SUB_LANG1``. When the
|
||||
driver does not support stereo audio it shall fall back to mono.
|
||||
* - ``V4L2_TUNER_SUB_LANG1``
|
||||
- 0x0008
|
||||
- Modulate channel 1 and 2 as primary and secondary language of a
|
||||
bilingual audio signal. When the input has only one channel it is
|
||||
used for both languages. It is not possible to encode the primary
|
||||
or secondary language only. This flag does not combine with
|
||||
``V4L2_TUNER_SUB_MONO``, ``V4L2_TUNER_SUB_STEREO`` or
|
||||
``V4L2_TUNER_SUB_SAP``. If the hardware does not support the
|
||||
respective audio matrix, or the current video standard does not
|
||||
permit bilingual audio the :ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` ioctl shall
|
||||
return an ``EINVAL`` error code and the driver shall fall back to mono
|
||||
or stereo mode.
|
||||
* - ``V4L2_TUNER_SUB_LANG2``
|
||||
- 0x0004
|
||||
- Same effect as ``V4L2_TUNER_SUB_SAP``.
|
||||
* - ``V4L2_TUNER_SUB_SAP``
|
||||
- 0x0004
|
||||
- When combined with ``V4L2_TUNER_SUB_MONO`` the first channel is
|
||||
encoded as mono audio, the last channel as Second Audio Program.
|
||||
When the input has only one channel it is used for both audio
|
||||
tracks. When the input has three channels the mono track is a
|
||||
down-mix of channel 1 and 2. When combined with
|
||||
``V4L2_TUNER_SUB_STEREO`` channel 1 and 2 are encoded as left and
|
||||
right stereo audio, channel 3 as Second Audio Program. When the
|
||||
input has only two channels, the first is encoded as left and
|
||||
right channel and the second as SAP. When the input has only one
|
||||
channel it is used for all audio tracks. It is not possible to
|
||||
encode a Second Audio Program only. This flag must combine with
|
||||
``V4L2_TUNER_SUB_MONO`` or ``V4L2_TUNER_SUB_STEREO``. If the
|
||||
hardware does not support the respective audio matrix, or the
|
||||
current video standard does not permit SAP the
|
||||
:ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` ioctl shall return an ``EINVAL`` error code and
|
||||
driver shall fall back to mono or stereo mode.
|
||||
* - ``V4L2_TUNER_SUB_RDS``
|
||||
- 0x0010
|
||||
- Enable the RDS encoder for a radio FM transmitter.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -60,55 +60,30 @@ union holding separate parameters for input and output devices.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
-
|
||||
- The buffer (stream) type, same as struct
|
||||
:c:type:`v4l2_format` ``type``, set by the
|
||||
application. See :c:type:`v4l2_buf_type`
|
||||
|
||||
- .. row 2
|
||||
|
||||
- union
|
||||
|
||||
- ``parm``
|
||||
|
||||
-
|
||||
-
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_captureparm`
|
||||
|
||||
- ``capture``
|
||||
|
||||
- Parameters for capture devices, used when ``type`` is
|
||||
``V4L2_BUF_TYPE_VIDEO_CAPTURE``.
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
- struct :c:type:`v4l2_outputparm`
|
||||
|
||||
- ``output``
|
||||
|
||||
- Parameters for output devices, used when ``type`` is
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT``.
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
- __u8
|
||||
|
||||
- ``raw_data``\ [200]
|
||||
|
||||
- A place holder for future extensions.
|
||||
* - __u32
|
||||
- ``type``
|
||||
-
|
||||
- The buffer (stream) type, same as struct
|
||||
:c:type:`v4l2_format` ``type``, set by the
|
||||
application. See :c:type:`v4l2_buf_type`
|
||||
* - union
|
||||
- ``parm``
|
||||
-
|
||||
-
|
||||
* -
|
||||
- struct :c:type:`v4l2_captureparm`
|
||||
- ``capture``
|
||||
- Parameters for capture devices, used when ``type`` is
|
||||
``V4L2_BUF_TYPE_VIDEO_CAPTURE``.
|
||||
* -
|
||||
- struct :c:type:`v4l2_outputparm`
|
||||
- ``output``
|
||||
- Parameters for output devices, used when ``type`` is
|
||||
``V4L2_BUF_TYPE_VIDEO_OUTPUT``.
|
||||
* -
|
||||
- __u8
|
||||
- ``raw_data``\ [200]
|
||||
- A place holder for future extensions.
|
||||
|
||||
|
||||
|
||||
|
@ -121,77 +96,47 @@ union holding separate parameters for input and output devices.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
* - __u32
|
||||
- ``capability``
|
||||
- See :ref:`parm-caps`.
|
||||
* - __u32
|
||||
- ``capturemode``
|
||||
- Set by drivers and applications, see :ref:`parm-flags`.
|
||||
* - struct :c:type:`v4l2_fract`
|
||||
- ``timeperframe``
|
||||
- This is the desired period between successive frames captured by
|
||||
the driver, in seconds. The field is intended to skip frames on
|
||||
the driver side, saving I/O bandwidth.
|
||||
|
||||
- .. row 1
|
||||
Applications store here the desired frame period, drivers return
|
||||
the actual frame period, which must be greater or equal to the
|
||||
nominal frame period determined by the current video standard
|
||||
(struct :c:type:`v4l2_standard` ``frameperiod``
|
||||
field). Changing the video standard (also implicitly by switching
|
||||
the video input) may reset this parameter to the nominal frame
|
||||
period. To reset manually applications can just set this field to
|
||||
zero.
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capability``
|
||||
|
||||
- See :ref:`parm-caps`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capturemode``
|
||||
|
||||
- Set by drivers and applications, see :ref:`parm-flags`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- struct :c:type:`v4l2_fract`
|
||||
|
||||
- ``timeperframe``
|
||||
|
||||
- This is the desired period between successive frames captured by
|
||||
the driver, in seconds. The field is intended to skip frames on
|
||||
the driver side, saving I/O bandwidth.
|
||||
|
||||
Applications store here the desired frame period, drivers return
|
||||
the actual frame period, which must be greater or equal to the
|
||||
nominal frame period determined by the current video standard
|
||||
(struct :c:type:`v4l2_standard` ``frameperiod``
|
||||
field). Changing the video standard (also implicitly by switching
|
||||
the video input) may reset this parameter to the nominal frame
|
||||
period. To reset manually applications can just set this field to
|
||||
zero.
|
||||
|
||||
Drivers support this function only when they set the
|
||||
``V4L2_CAP_TIMEPERFRAME`` flag in the ``capability`` field.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``extendedmode``
|
||||
|
||||
- Custom (driver specific) streaming parameters. When unused,
|
||||
applications and drivers must set this field to zero. Applications
|
||||
using this field should check the driver name and version, see
|
||||
:ref:`querycap`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``readbuffers``
|
||||
|
||||
- Applications set this field to the desired number of buffers used
|
||||
internally by the driver in :ref:`read() <func-read>` mode.
|
||||
Drivers return the actual number of buffers. When an application
|
||||
requests zero buffers, drivers should just return the current
|
||||
setting rather than the minimum or an error code. For details see
|
||||
:ref:`rw`.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [4]
|
||||
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
Drivers support this function only when they set the
|
||||
``V4L2_CAP_TIMEPERFRAME`` flag in the ``capability`` field.
|
||||
* - __u32
|
||||
- ``extendedmode``
|
||||
- Custom (driver specific) streaming parameters. When unused,
|
||||
applications and drivers must set this field to zero. Applications
|
||||
using this field should check the driver name and version, see
|
||||
:ref:`querycap`.
|
||||
* - __u32
|
||||
- ``readbuffers``
|
||||
- Applications set this field to the desired number of buffers used
|
||||
internally by the driver in :ref:`read() <func-read>` mode.
|
||||
Drivers return the actual number of buffers. When an application
|
||||
requests zero buffers, drivers should just return the current
|
||||
setting rather than the minimum or an error code. For details see
|
||||
:ref:`rw`.
|
||||
* - __u32
|
||||
- ``reserved``\ [4]
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
|
||||
|
||||
|
@ -204,84 +149,51 @@ union holding separate parameters for input and output devices.
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
* - __u32
|
||||
- ``capability``
|
||||
- See :ref:`parm-caps`.
|
||||
* - __u32
|
||||
- ``outputmode``
|
||||
- Set by drivers and applications, see :ref:`parm-flags`.
|
||||
* - struct :c:type:`v4l2_fract`
|
||||
- ``timeperframe``
|
||||
- This is the desired period between successive frames output by the
|
||||
driver, in seconds.
|
||||
* - :cspan:`2`
|
||||
|
||||
- .. row 1
|
||||
The field is intended to repeat frames on the driver side in
|
||||
:ref:`write() <func-write>` mode (in streaming mode timestamps
|
||||
can be used to throttle the output), saving I/O bandwidth.
|
||||
|
||||
- __u32
|
||||
Applications store here the desired frame period, drivers return
|
||||
the actual frame period, which must be greater or equal to the
|
||||
nominal frame period determined by the current video standard
|
||||
(struct :c:type:`v4l2_standard` ``frameperiod``
|
||||
field). Changing the video standard (also implicitly by switching
|
||||
the video output) may reset this parameter to the nominal frame
|
||||
period. To reset manually applications can just set this field to
|
||||
zero.
|
||||
|
||||
- ``capability``
|
||||
|
||||
- See :ref:`parm-caps`.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``outputmode``
|
||||
|
||||
- Set by drivers and applications, see :ref:`parm-flags`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- struct :c:type:`v4l2_fract`
|
||||
|
||||
- ``timeperframe``
|
||||
|
||||
- This is the desired period between successive frames output by the
|
||||
driver, in seconds.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- :cspan:`2`
|
||||
|
||||
The field is intended to repeat frames on the driver side in
|
||||
:ref:`write() <func-write>` mode (in streaming mode timestamps
|
||||
can be used to throttle the output), saving I/O bandwidth.
|
||||
|
||||
Applications store here the desired frame period, drivers return
|
||||
the actual frame period, which must be greater or equal to the
|
||||
nominal frame period determined by the current video standard
|
||||
(struct :c:type:`v4l2_standard` ``frameperiod``
|
||||
field). Changing the video standard (also implicitly by switching
|
||||
the video output) may reset this parameter to the nominal frame
|
||||
period. To reset manually applications can just set this field to
|
||||
zero.
|
||||
|
||||
Drivers support this function only when they set the
|
||||
``V4L2_CAP_TIMEPERFRAME`` flag in the ``capability`` field.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``extendedmode``
|
||||
|
||||
- Custom (driver specific) streaming parameters. When unused,
|
||||
applications and drivers must set this field to zero. Applications
|
||||
using this field should check the driver name and version, see
|
||||
:ref:`querycap`.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``writebuffers``
|
||||
|
||||
- Applications set this field to the desired number of buffers used
|
||||
internally by the driver in :ref:`write() <func-write>` mode. Drivers
|
||||
return the actual number of buffers. When an application requests
|
||||
zero buffers, drivers should just return the current setting
|
||||
rather than the minimum or an error code. For details see
|
||||
:ref:`rw`.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [4]
|
||||
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
Drivers support this function only when they set the
|
||||
``V4L2_CAP_TIMEPERFRAME`` flag in the ``capability`` field.
|
||||
* - __u32
|
||||
- ``extendedmode``
|
||||
- Custom (driver specific) streaming parameters. When unused,
|
||||
applications and drivers must set this field to zero. Applications
|
||||
using this field should check the driver name and version, see
|
||||
:ref:`querycap`.
|
||||
* - __u32
|
||||
- ``writebuffers``
|
||||
- Applications set this field to the desired number of buffers used
|
||||
internally by the driver in :ref:`write() <func-write>` mode. Drivers
|
||||
return the actual number of buffers. When an application requests
|
||||
zero buffers, drivers should just return the current setting
|
||||
rather than the minimum or an error code. For details see
|
||||
:ref:`rw`.
|
||||
* - __u32
|
||||
- ``reserved``\ [4]
|
||||
- Reserved for future extensions. Drivers and applications must set
|
||||
the array to zero.
|
||||
|
||||
|
||||
|
||||
|
@ -294,15 +206,10 @@ union holding separate parameters for input and output devices.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_CAP_TIMEPERFRAME``
|
||||
|
||||
- 0x1000
|
||||
|
||||
- The frame skipping/repeating controlled by the ``timeperframe``
|
||||
field is supported.
|
||||
* - ``V4L2_CAP_TIMEPERFRAME``
|
||||
- 0x1000
|
||||
- The frame skipping/repeating controlled by the ``timeperframe``
|
||||
field is supported.
|
||||
|
||||
|
||||
|
||||
|
@ -315,41 +222,36 @@ union holding separate parameters for input and output devices.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
* - ``V4L2_MODE_HIGHQUALITY``
|
||||
- 0x0001
|
||||
- High quality imaging mode. High quality mode is intended for still
|
||||
imaging applications. The idea is to get the best possible image
|
||||
quality that the hardware can deliver. It is not defined how the
|
||||
driver writer may achieve that; it will depend on the hardware and
|
||||
the ingenuity of the driver writer. High quality mode is a
|
||||
different mode from the regular motion video capture modes. In
|
||||
high quality mode:
|
||||
|
||||
- .. row 1
|
||||
- The driver may be able to capture higher resolutions than for
|
||||
motion capture.
|
||||
|
||||
- ``V4L2_MODE_HIGHQUALITY``
|
||||
- The driver may support fewer pixel formats than motion capture
|
||||
(eg; true color).
|
||||
|
||||
- 0x0001
|
||||
- The driver may capture and arithmetically combine multiple
|
||||
successive fields or frames to remove color edge artifacts and
|
||||
reduce the noise in the video data.
|
||||
|
||||
- High quality imaging mode. High quality mode is intended for still
|
||||
imaging applications. The idea is to get the best possible image
|
||||
quality that the hardware can deliver. It is not defined how the
|
||||
driver writer may achieve that; it will depend on the hardware and
|
||||
the ingenuity of the driver writer. High quality mode is a
|
||||
different mode from the regular motion video capture modes. In
|
||||
high quality mode:
|
||||
- The driver may capture images in slices like a scanner in order
|
||||
to handle larger format images than would otherwise be
|
||||
possible.
|
||||
|
||||
- The driver may be able to capture higher resolutions than for
|
||||
motion capture.
|
||||
- An image capture operation may be significantly slower than
|
||||
motion capture.
|
||||
|
||||
- The driver may support fewer pixel formats than motion capture
|
||||
(eg; true color).
|
||||
- Moving objects in the image might have excessive motion blur.
|
||||
|
||||
- The driver may capture and arithmetically combine multiple
|
||||
successive fields or frames to remove color edge artifacts and
|
||||
reduce the noise in the video data.
|
||||
|
||||
- The driver may capture images in slices like a scanner in order
|
||||
to handle larger format images than would otherwise be
|
||||
possible.
|
||||
|
||||
- An image capture operation may be significantly slower than
|
||||
motion capture.
|
||||
|
||||
- Moving objects in the image might have excessive motion blur.
|
||||
|
||||
- Capture might only work through the :ref:`read() <func-read>` call.
|
||||
- Capture might only work through the :ref:`read() <func-read>` call.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -53,55 +53,30 @@ with a pointer to this variable.
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_PRIORITY_UNSET``
|
||||
|
||||
- 0
|
||||
|
||||
-
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_PRIORITY_BACKGROUND``
|
||||
|
||||
- 1
|
||||
|
||||
- Lowest priority, usually applications running in background, for
|
||||
example monitoring VBI transmissions. A proxy application running
|
||||
in user space will be necessary if multiple applications want to
|
||||
read from a device at this priority.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_PRIORITY_INTERACTIVE``
|
||||
|
||||
- 2
|
||||
|
||||
-
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_PRIORITY_DEFAULT``
|
||||
|
||||
- 2
|
||||
|
||||
- Medium priority, usually applications started and interactively
|
||||
controlled by the user. For example TV viewers, Teletext browsers,
|
||||
or just "panel" applications to change the channel or video
|
||||
controls. This is the default priority unless an application
|
||||
requests another.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_PRIORITY_RECORD``
|
||||
|
||||
- 3
|
||||
|
||||
- Highest priority. Only one file descriptor can have this priority,
|
||||
it blocks any other fd from changing device properties. Usually
|
||||
applications which must not be interrupted, like video recording.
|
||||
* - ``V4L2_PRIORITY_UNSET``
|
||||
- 0
|
||||
-
|
||||
* - ``V4L2_PRIORITY_BACKGROUND``
|
||||
- 1
|
||||
- Lowest priority, usually applications running in background, for
|
||||
example monitoring VBI transmissions. A proxy application running
|
||||
in user space will be necessary if multiple applications want to
|
||||
read from a device at this priority.
|
||||
* - ``V4L2_PRIORITY_INTERACTIVE``
|
||||
- 2
|
||||
-
|
||||
* - ``V4L2_PRIORITY_DEFAULT``
|
||||
- 2
|
||||
- Medium priority, usually applications started and interactively
|
||||
controlled by the user. For example TV viewers, Teletext browsers,
|
||||
or just "panel" applications to change the channel or video
|
||||
controls. This is the default priority unless an application
|
||||
requests another.
|
||||
* - ``V4L2_PRIORITY_RECORD``
|
||||
- 3
|
||||
- Highest priority. Only one file descriptor can have this priority,
|
||||
it blocks any other fd from changing device properties. Usually
|
||||
applications which must not be interrupted, like video recording.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -149,50 +149,25 @@ Selection targets and flags are documented in
|
|||
:stub-columns: 0
|
||||
:widths: 1 1 2
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- Type of the buffer (from enum
|
||||
:c:type:`v4l2_buf_type`).
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u32
|
||||
|
||||
- ``target``
|
||||
|
||||
- Used to select between
|
||||
:ref:`cropping and composing rectangles <v4l2-selections-common>`.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``flags``
|
||||
|
||||
- Flags controlling the selection rectangle adjustments, refer to
|
||||
:ref:`selection flags <v4l2-selection-flags>`.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- struct :c:type:`v4l2_rect`
|
||||
|
||||
- ``r``
|
||||
|
||||
- The selection rectangle.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved[9]``
|
||||
|
||||
- Reserved fields for future use. Drivers and applications must zero
|
||||
this array.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- Type of the buffer (from enum
|
||||
:c:type:`v4l2_buf_type`).
|
||||
* - __u32
|
||||
- ``target``
|
||||
- Used to select between
|
||||
:ref:`cropping and composing rectangles <v4l2-selections-common>`.
|
||||
* - __u32
|
||||
- ``flags``
|
||||
- Flags controlling the selection rectangle adjustments, refer to
|
||||
:ref:`selection flags <v4l2-selection-flags>`.
|
||||
* - struct :c:type:`v4l2_rect`
|
||||
- ``r``
|
||||
- The selection rectangle.
|
||||
* - __u32
|
||||
- ``reserved[9]``
|
||||
- Reserved fields for future use. Drivers and applications must zero
|
||||
this array.
|
||||
|
||||
|
||||
Return Value
|
||||
|
|
|
@ -53,124 +53,67 @@ the sliced VBI API is unsupported or ``type`` is invalid.
|
|||
:stub-columns: 0
|
||||
:widths: 3 3 2 2 2
|
||||
|
||||
* - __u16
|
||||
- ``service_set``
|
||||
- :cspan:`2` A set of all data services supported by the driver.
|
||||
|
||||
- .. row 1
|
||||
Equal to the union of all elements of the ``service_lines`` array.
|
||||
* - __u16
|
||||
- ``service_lines``\ [2][24]
|
||||
- :cspan:`2` Each element of this array contains a set of data
|
||||
services the hardware can look for or insert into a particular
|
||||
scan line. Data services are defined in :ref:`vbi-services`.
|
||||
Array indices map to ITU-R line numbers\ [#f1]_ as follows:
|
||||
* -
|
||||
-
|
||||
- Element
|
||||
- 525 line systems
|
||||
- 625 line systems
|
||||
* -
|
||||
-
|
||||
- ``service_lines``\ [0][1]
|
||||
- 1
|
||||
- 1
|
||||
* -
|
||||
-
|
||||
- ``service_lines``\ [0][23]
|
||||
- 23
|
||||
- 23
|
||||
* -
|
||||
-
|
||||
- ``service_lines``\ [1][1]
|
||||
- 264
|
||||
- 314
|
||||
* -
|
||||
-
|
||||
- ``service_lines``\ [1][23]
|
||||
- 286
|
||||
- 336
|
||||
* -
|
||||
* -
|
||||
-
|
||||
- :cspan:`2` The number of VBI lines the hardware can capture or
|
||||
output per frame, or the number of services it can identify on a
|
||||
given line may be limited. For example on PAL line 16 the hardware
|
||||
may be able to look for a VPS or Teletext signal, but not both at
|
||||
the same time. Applications can learn about these limits using the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl as described in
|
||||
:ref:`sliced`.
|
||||
* -
|
||||
* -
|
||||
-
|
||||
- :cspan:`2` Drivers must set ``service_lines`` [0][0] and
|
||||
``service_lines``\ [1][0] to zero.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- Type of the data stream, see :c:type:`v4l2_buf_type`. Should be
|
||||
``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or
|
||||
``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``.
|
||||
* - __u32
|
||||
- ``reserved``\ [3]
|
||||
- :cspan:`2` This array is reserved for future extensions.
|
||||
|
||||
- __u16
|
||||
|
||||
- ``service_set``
|
||||
|
||||
- :cspan:`2` A set of all data services supported by the driver.
|
||||
|
||||
Equal to the union of all elements of the ``service_lines`` array.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u16
|
||||
|
||||
- ``service_lines``\ [2][24]
|
||||
|
||||
- :cspan:`2` Each element of this array contains a set of data
|
||||
services the hardware can look for or insert into a particular
|
||||
scan line. Data services are defined in :ref:`vbi-services`.
|
||||
Array indices map to ITU-R line numbers\ [#f1]_ as follows:
|
||||
|
||||
- .. row 3
|
||||
|
||||
-
|
||||
-
|
||||
- Element
|
||||
|
||||
- 525 line systems
|
||||
|
||||
- 625 line systems
|
||||
|
||||
- .. row 4
|
||||
|
||||
-
|
||||
-
|
||||
- ``service_lines``\ [0][1]
|
||||
|
||||
- 1
|
||||
|
||||
- 1
|
||||
|
||||
- .. row 5
|
||||
|
||||
-
|
||||
-
|
||||
- ``service_lines``\ [0][23]
|
||||
|
||||
- 23
|
||||
|
||||
- 23
|
||||
|
||||
- .. row 6
|
||||
|
||||
-
|
||||
-
|
||||
- ``service_lines``\ [1][1]
|
||||
|
||||
- 264
|
||||
|
||||
- 314
|
||||
|
||||
- .. row 7
|
||||
|
||||
-
|
||||
-
|
||||
- ``service_lines``\ [1][23]
|
||||
|
||||
- 286
|
||||
|
||||
- 336
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
|
||||
- .. row 9
|
||||
|
||||
-
|
||||
-
|
||||
- :cspan:`2` The number of VBI lines the hardware can capture or
|
||||
output per frame, or the number of services it can identify on a
|
||||
given line may be limited. For example on PAL line 16 the hardware
|
||||
may be able to look for a VPS or Teletext signal, but not both at
|
||||
the same time. Applications can learn about these limits using the
|
||||
:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl as described in
|
||||
:ref:`sliced`.
|
||||
|
||||
- .. row 10
|
||||
|
||||
-
|
||||
|
||||
- .. row 11
|
||||
|
||||
-
|
||||
-
|
||||
- :cspan:`2` Drivers must set ``service_lines`` [0][0] and
|
||||
``service_lines``\ [1][0] to zero.
|
||||
|
||||
- .. row 12
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- Type of the data stream, see :c:type:`v4l2_buf_type`. Should be
|
||||
``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or
|
||||
``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``.
|
||||
|
||||
- .. row 13
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [3]
|
||||
|
||||
- :cspan:`2` This array is reserved for future extensions.
|
||||
|
||||
Applications and drivers must set it to zero.
|
||||
Applications and drivers must set it to zero.
|
||||
|
||||
.. [#f1]
|
||||
|
||||
|
@ -190,95 +133,50 @@ the sliced VBI API is unsupported or ``type`` is invalid.
|
|||
:stub-columns: 0
|
||||
:widths: 2 1 1 2 2
|
||||
|
||||
* - Symbol
|
||||
- Value
|
||||
- Reference
|
||||
- Lines, usually
|
||||
- Payload
|
||||
* - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)
|
||||
- 0x0001
|
||||
- :ref:`ets300706`,
|
||||
|
||||
- .. row 1
|
||||
:ref:`itu653`
|
||||
- PAL/SECAM line 7-22, 320-335 (second field 7-22)
|
||||
- Last 42 of the 45 byte Teletext packet, that is without clock
|
||||
run-in and framing code, lsb first transmitted.
|
||||
* - ``V4L2_SLICED_VPS``
|
||||
- 0x0400
|
||||
- :ref:`ets300231`
|
||||
- PAL line 16
|
||||
- Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb
|
||||
first transmitted.
|
||||
* - ``V4L2_SLICED_CAPTION_525``
|
||||
- 0x1000
|
||||
- :ref:`cea608`
|
||||
- NTSC line 21, 284 (second field 21)
|
||||
- Two bytes in transmission order, including parity bit, lsb first
|
||||
transmitted.
|
||||
* - ``V4L2_SLICED_WSS_625``
|
||||
- 0x4000
|
||||
- :ref:`en300294`,
|
||||
|
||||
- Symbol
|
||||
:ref:`itu1119`
|
||||
- PAL/SECAM line 23
|
||||
-
|
||||
|
||||
- Value
|
||||
::
|
||||
|
||||
- Reference
|
||||
|
||||
- Lines, usually
|
||||
|
||||
- Payload
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)
|
||||
|
||||
- 0x0001
|
||||
|
||||
- :ref:`ets300706`,
|
||||
|
||||
:ref:`itu653`
|
||||
|
||||
- PAL/SECAM line 7-22, 320-335 (second field 7-22)
|
||||
|
||||
- Last 42 of the 45 byte Teletext packet, that is without clock
|
||||
run-in and framing code, lsb first transmitted.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_SLICED_VPS``
|
||||
|
||||
- 0x0400
|
||||
|
||||
- :ref:`ets300231`
|
||||
|
||||
- PAL line 16
|
||||
|
||||
- Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb
|
||||
first transmitted.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_SLICED_CAPTION_525``
|
||||
|
||||
- 0x1000
|
||||
|
||||
- :ref:`cea608`
|
||||
|
||||
- NTSC line 21, 284 (second field 21)
|
||||
|
||||
- Two bytes in transmission order, including parity bit, lsb first
|
||||
transmitted.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_SLICED_WSS_625``
|
||||
|
||||
- 0x4000
|
||||
|
||||
- :ref:`en300294`,
|
||||
|
||||
:ref:`itu1119`
|
||||
|
||||
- PAL/SECAM line 23
|
||||
|
||||
-
|
||||
|
||||
::
|
||||
|
||||
Byte 0 1
|
||||
msb lsb msb lsb
|
||||
Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_SLICED_VBI_525``
|
||||
|
||||
- 0x1000
|
||||
|
||||
- :cspan:`2` Set of services applicable to 525 line systems.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_SLICED_VBI_625``
|
||||
|
||||
- 0x4401
|
||||
|
||||
- :cspan:`2` Set of services applicable to 625 line systems.
|
||||
Byte 0 1
|
||||
msb lsb msb lsb
|
||||
Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9
|
||||
* - ``V4L2_SLICED_VBI_525``
|
||||
- 0x1000
|
||||
- :cspan:`2` Set of services applicable to 525 line systems.
|
||||
* - ``V4L2_SLICED_VBI_625``
|
||||
- 0x4401
|
||||
- :cspan:`2` Set of services applicable to 625 line systems.
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
|
|
@ -69,195 +69,117 @@ To change the radio frequency the
|
|||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- __u32
|
||||
|
||||
- ``index``
|
||||
|
||||
- :cspan:`1` Identifies the tuner, set by the application.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- __u8
|
||||
|
||||
- ``name``\ [32]
|
||||
|
||||
- :cspan:`1`
|
||||
|
||||
Name of the tuner, a NUL-terminated ASCII string.
|
||||
|
||||
This information is intended for the user.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- __u32
|
||||
|
||||
- ``type``
|
||||
|
||||
- :cspan:`1` Type of the tuner, see :c:type:`v4l2_tuner_type`.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- __u32
|
||||
|
||||
- ``capability``
|
||||
|
||||
- :cspan:`1`
|
||||
|
||||
Tuner capability flags, see :ref:`tuner-capability`. Audio flags
|
||||
indicate the ability to decode audio subprograms. They will *not*
|
||||
change, for example with the current video standard.
|
||||
|
||||
When the structure refers to a radio tuner the
|
||||
``V4L2_TUNER_CAP_LANG1``, ``V4L2_TUNER_CAP_LANG2`` and
|
||||
``V4L2_TUNER_CAP_NORM`` flags can't be used.
|
||||
|
||||
If multiple frequency bands are supported, then ``capability`` is
|
||||
the union of all ``capability`` fields of each struct
|
||||
:c:type:`v4l2_frequency_band`.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- __u32
|
||||
|
||||
- ``rangelow``
|
||||
|
||||
- :cspan:`1` The lowest tunable frequency in units of 62.5 kHz, or
|
||||
if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units
|
||||
of 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ``
|
||||
is set, in units of 1 Hz. If multiple frequency bands are
|
||||
supported, then ``rangelow`` is the lowest frequency of all the
|
||||
frequency bands.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- __u32
|
||||
|
||||
- ``rangehigh``
|
||||
|
||||
- :cspan:`1` The highest tunable frequency in units of 62.5 kHz,
|
||||
or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in
|
||||
units of 62.5 Hz, or if the ``capability`` flag
|
||||
``V4L2_TUNER_CAP_1HZ`` is set, in units of 1 Hz. If multiple
|
||||
frequency bands are supported, then ``rangehigh`` is the highest
|
||||
frequency of all the frequency bands.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- __u32
|
||||
|
||||
- ``rxsubchans``
|
||||
|
||||
- :cspan:`1`
|
||||
|
||||
Some tuners or audio decoders can determine the received audio
|
||||
subprograms by analyzing audio carriers, pilot tones or other
|
||||
indicators. To pass this information drivers set flags defined in
|
||||
:ref:`tuner-rxsubchans` in this field. For example:
|
||||
|
||||
- .. row 8
|
||||
|
||||
-
|
||||
-
|
||||
- ``V4L2_TUNER_SUB_MONO``
|
||||
|
||||
- receiving mono audio
|
||||
|
||||
- .. row 9
|
||||
|
||||
-
|
||||
-
|
||||
- ``STEREO | SAP``
|
||||
|
||||
- receiving stereo audio and a secondary audio program
|
||||
|
||||
- .. row 10
|
||||
|
||||
-
|
||||
-
|
||||
- ``MONO | STEREO``
|
||||
|
||||
- receiving mono or stereo audio, the hardware cannot distinguish
|
||||
|
||||
- .. row 11
|
||||
|
||||
-
|
||||
-
|
||||
- ``LANG1 | LANG2``
|
||||
|
||||
- receiving bilingual audio
|
||||
|
||||
- .. row 12
|
||||
|
||||
-
|
||||
-
|
||||
- ``MONO | STEREO | LANG1 | LANG2``
|
||||
|
||||
- receiving mono, stereo or bilingual audio
|
||||
|
||||
- .. row 13
|
||||
|
||||
-
|
||||
-
|
||||
- :cspan:`1`
|
||||
|
||||
When the ``V4L2_TUNER_CAP_STEREO``, ``_LANG1``, ``_LANG2`` or
|
||||
``_SAP`` flag is cleared in the ``capability`` field, the
|
||||
corresponding ``V4L2_TUNER_SUB_`` flag must not be set here.
|
||||
|
||||
This field is valid only if this is the tuner of the current video
|
||||
input, or when the structure refers to a radio tuner.
|
||||
|
||||
- .. row 14
|
||||
|
||||
- __u32
|
||||
|
||||
- ``audmode``
|
||||
|
||||
- :cspan:`1`
|
||||
|
||||
The selected audio mode, see :ref:`tuner-audmode` for valid
|
||||
values. The audio mode does not affect audio subprogram detection,
|
||||
and like a :ref:`control` it does not automatically
|
||||
change unless the requested mode is invalid or unsupported. See
|
||||
:ref:`tuner-matrix` for possible results when the selected and
|
||||
received audio programs do not match.
|
||||
|
||||
Currently this is the only field of struct
|
||||
struct :c:type:`v4l2_tuner` applications can change.
|
||||
|
||||
- .. row 15
|
||||
|
||||
- __u32
|
||||
|
||||
- ``signal``
|
||||
|
||||
- :cspan:`1` The signal strength if known.
|
||||
|
||||
Ranging from 0 to 65535. Higher values indicate a better signal.
|
||||
|
||||
- .. row 16
|
||||
|
||||
- __s32
|
||||
|
||||
- ``afc``
|
||||
|
||||
- :cspan:`1` Automatic frequency control.
|
||||
|
||||
When the ``afc`` value is negative, the frequency is too
|
||||
low, when positive too high.
|
||||
|
||||
- .. row 17
|
||||
|
||||
- __u32
|
||||
|
||||
- ``reserved``\ [4]
|
||||
|
||||
- :cspan:`1` Reserved for future extensions.
|
||||
|
||||
Drivers and applications must set the array to zero.
|
||||
* - __u32
|
||||
- ``index``
|
||||
- :cspan:`1` Identifies the tuner, set by the application.
|
||||
* - __u8
|
||||
- ``name``\ [32]
|
||||
- :cspan:`1`
|
||||
|
||||
Name of the tuner, a NUL-terminated ASCII string.
|
||||
|
||||
This information is intended for the user.
|
||||
* - __u32
|
||||
- ``type``
|
||||
- :cspan:`1` Type of the tuner, see :c:type:`v4l2_tuner_type`.
|
||||
* - __u32
|
||||
- ``capability``
|
||||
- :cspan:`1`
|
||||
|
||||
Tuner capability flags, see :ref:`tuner-capability`. Audio flags
|
||||
indicate the ability to decode audio subprograms. They will *not*
|
||||
change, for example with the current video standard.
|
||||
|
||||
When the structure refers to a radio tuner the
|
||||
``V4L2_TUNER_CAP_LANG1``, ``V4L2_TUNER_CAP_LANG2`` and
|
||||
``V4L2_TUNER_CAP_NORM`` flags can't be used.
|
||||
|
||||
If multiple frequency bands are supported, then ``capability`` is
|
||||
the union of all ``capability`` fields of each struct
|
||||
:c:type:`v4l2_frequency_band`.
|
||||
* - __u32
|
||||
- ``rangelow``
|
||||
- :cspan:`1` The lowest tunable frequency in units of 62.5 kHz, or
|
||||
if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units
|
||||
of 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ``
|
||||
is set, in units of 1 Hz. If multiple frequency bands are
|
||||
supported, then ``rangelow`` is the lowest frequency of all the
|
||||
frequency bands.
|
||||
* - __u32
|
||||
- ``rangehigh``
|
||||
- :cspan:`1` The highest tunable frequency in units of 62.5 kHz,
|
||||
or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in
|
||||
units of 62.5 Hz, or if the ``capability`` flag
|
||||
``V4L2_TUNER_CAP_1HZ`` is set, in units of 1 Hz. If multiple
|
||||
frequency bands are supported, then ``rangehigh`` is the highest
|
||||
frequency of all the frequency bands.
|
||||
* - __u32
|
||||
- ``rxsubchans``
|
||||
- :cspan:`1`
|
||||
|
||||
Some tuners or audio decoders can determine the received audio
|
||||
subprograms by analyzing audio carriers, pilot tones or other
|
||||
indicators. To pass this information drivers set flags defined in
|
||||
:ref:`tuner-rxsubchans` in this field. For example:
|
||||
* -
|
||||
-
|
||||
- ``V4L2_TUNER_SUB_MONO``
|
||||
- receiving mono audio
|
||||
* -
|
||||
-
|
||||
- ``STEREO | SAP``
|
||||
- receiving stereo audio and a secondary audio program
|
||||
* -
|
||||
-
|
||||
- ``MONO | STEREO``
|
||||
- receiving mono or stereo audio, the hardware cannot distinguish
|
||||
* -
|
||||
-
|
||||
- ``LANG1 | LANG2``
|
||||
- receiving bilingual audio
|
||||
* -
|
||||
-
|
||||
- ``MONO | STEREO | LANG1 | LANG2``
|
||||
- receiving mono, stereo or bilingual audio
|
||||
* -
|
||||
-
|
||||
- :cspan:`1`
|
||||
|
||||
When the ``V4L2_TUNER_CAP_STEREO``, ``_LANG1``, ``_LANG2`` or
|
||||
``_SAP`` flag is cleared in the ``capability`` field, the
|
||||
corresponding ``V4L2_TUNER_SUB_`` flag must not be set here.
|
||||
|
||||
This field is valid only if this is the tuner of the current video
|
||||
input, or when the structure refers to a radio tuner.
|
||||
* - __u32
|
||||
- ``audmode``
|
||||
- :cspan:`1`
|
||||
|
||||
The selected audio mode, see :ref:`tuner-audmode` for valid
|
||||
values. The audio mode does not affect audio subprogram detection,
|
||||
and like a :ref:`control` it does not automatically
|
||||
change unless the requested mode is invalid or unsupported. See
|
||||
:ref:`tuner-matrix` for possible results when the selected and
|
||||
received audio programs do not match.
|
||||
|
||||
Currently this is the only field of struct
|
||||
struct :c:type:`v4l2_tuner` applications can change.
|
||||
* - __u32
|
||||
- ``signal``
|
||||
- :cspan:`1` The signal strength if known.
|
||||
|
||||
Ranging from 0 to 65535. Higher values indicate a better signal.
|
||||
* - __s32
|
||||
- ``afc``
|
||||
- :cspan:`1` Automatic frequency control.
|
||||
|
||||
When the ``afc`` value is negative, the frequency is too
|
||||
low, when positive too high.
|
||||
* - __u32
|
||||
- ``reserved``\ [4]
|
||||
- :cspan:`1` Reserved for future extensions.
|
||||
|
||||
Drivers and applications must set the array to zero.
|
||||
|
||||
|
||||
|
||||
|
@ -270,39 +192,19 @@ To change the radio frequency the
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 6
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
- ``V4L2_TUNER_RADIO``
|
||||
|
||||
- 1
|
||||
|
||||
- Tuner supports radio
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_TUNER_ANALOG_TV``
|
||||
|
||||
- 2
|
||||
|
||||
- Tuner supports analog TV
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_TUNER_SDR``
|
||||
|
||||
- 4
|
||||
|
||||
- Tuner controls the A/D and/or D/A block of a
|
||||
Sofware Digital Radio (SDR)
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_TUNER_RF``
|
||||
|
||||
- 5
|
||||
|
||||
- Tuner controls the RF part of a Sofware Digital Radio (SDR)
|
||||
* - ``V4L2_TUNER_RADIO``
|
||||
- 1
|
||||
- Tuner supports radio
|
||||
* - ``V4L2_TUNER_ANALOG_TV``
|
||||
- 2
|
||||
- Tuner supports analog TV
|
||||
* - ``V4L2_TUNER_SDR``
|
||||
- 4
|
||||
- Tuner controls the A/D and/or D/A block of a
|
||||
Sofware Digital Radio (SDR)
|
||||
* - ``V4L2_TUNER_RF``
|
||||
- 5
|
||||
- Tuner controls the RF part of a Sofware Digital Radio (SDR)
|
||||
|
||||
|
||||
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
|
||||
|
@ -316,154 +218,84 @@ To change the radio frequency the
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
* - ``V4L2_TUNER_CAP_LOW``
|
||||
- 0x0001
|
||||
- When set, tuning frequencies are expressed in units of 62.5 Hz
|
||||
instead of 62.5 kHz.
|
||||
* - ``V4L2_TUNER_CAP_NORM``
|
||||
- 0x0002
|
||||
- This is a multi-standard tuner; the video standard can or must be
|
||||
switched. (B/G PAL tuners for example are typically not considered
|
||||
multi-standard because the video standard is automatically
|
||||
determined from the frequency band.) The set of supported video
|
||||
standards is available from the struct
|
||||
:c:type:`v4l2_input` pointing to this tuner, see the
|
||||
description of ioctl :ref:`VIDIOC_ENUMINPUT`
|
||||
for details. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this
|
||||
capability.
|
||||
* - ``V4L2_TUNER_CAP_HWSEEK_BOUNDED``
|
||||
- 0x0004
|
||||
- If set, then this tuner supports the hardware seek functionality
|
||||
where the seek stops when it reaches the end of the frequency
|
||||
range.
|
||||
* - ``V4L2_TUNER_CAP_HWSEEK_WRAP``
|
||||
- 0x0008
|
||||
- If set, then this tuner supports the hardware seek functionality
|
||||
where the seek wraps around when it reaches the end of the
|
||||
frequency range.
|
||||
* - ``V4L2_TUNER_CAP_STEREO``
|
||||
- 0x0010
|
||||
- Stereo audio reception is supported.
|
||||
* - ``V4L2_TUNER_CAP_LANG1``
|
||||
- 0x0040
|
||||
- Reception of the primary language of a bilingual audio program is
|
||||
supported. Bilingual audio is a feature of two-channel systems,
|
||||
transmitting the primary language monaural on the main audio
|
||||
carrier and a secondary language monaural on a second carrier.
|
||||
Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this capability.
|
||||
* - ``V4L2_TUNER_CAP_LANG2``
|
||||
- 0x0020
|
||||
- Reception of the secondary language of a bilingual audio program
|
||||
is supported. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this
|
||||
capability.
|
||||
* - ``V4L2_TUNER_CAP_SAP``
|
||||
- 0x0020
|
||||
- Reception of a secondary audio program is supported. This is a
|
||||
feature of the BTSC system which accompanies the NTSC video
|
||||
standard. Two audio carriers are available for mono or stereo
|
||||
transmissions of a primary language, and an independent third
|
||||
carrier for a monaural secondary language. Only
|
||||
``V4L2_TUNER_ANALOG_TV`` tuners can have this capability.
|
||||
|
||||
- .. row 1
|
||||
.. note::
|
||||
|
||||
- ``V4L2_TUNER_CAP_LOW``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- When set, tuning frequencies are expressed in units of 62.5 Hz
|
||||
instead of 62.5 kHz.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_TUNER_CAP_NORM``
|
||||
|
||||
- 0x0002
|
||||
|
||||
- This is a multi-standard tuner; the video standard can or must be
|
||||
switched. (B/G PAL tuners for example are typically not considered
|
||||
multi-standard because the video standard is automatically
|
||||
determined from the frequency band.) The set of supported video
|
||||
standards is available from the struct
|
||||
:c:type:`v4l2_input` pointing to this tuner, see the
|
||||
description of ioctl :ref:`VIDIOC_ENUMINPUT`
|
||||
for details. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this
|
||||
capability.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_TUNER_CAP_HWSEEK_BOUNDED``
|
||||
|
||||
- 0x0004
|
||||
|
||||
- If set, then this tuner supports the hardware seek functionality
|
||||
where the seek stops when it reaches the end of the frequency
|
||||
range.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_TUNER_CAP_HWSEEK_WRAP``
|
||||
|
||||
- 0x0008
|
||||
|
||||
- If set, then this tuner supports the hardware seek functionality
|
||||
where the seek wraps around when it reaches the end of the
|
||||
frequency range.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_TUNER_CAP_STEREO``
|
||||
|
||||
- 0x0010
|
||||
|
||||
- Stereo audio reception is supported.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_TUNER_CAP_LANG1``
|
||||
|
||||
- 0x0040
|
||||
|
||||
- Reception of the primary language of a bilingual audio program is
|
||||
supported. Bilingual audio is a feature of two-channel systems,
|
||||
transmitting the primary language monaural on the main audio
|
||||
carrier and a secondary language monaural on a second carrier.
|
||||
Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this capability.
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``V4L2_TUNER_CAP_LANG2``
|
||||
|
||||
- 0x0020
|
||||
|
||||
- Reception of the secondary language of a bilingual audio program
|
||||
is supported. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this
|
||||
capability.
|
||||
|
||||
- .. row 8
|
||||
|
||||
- ``V4L2_TUNER_CAP_SAP``
|
||||
|
||||
- 0x0020
|
||||
|
||||
- Reception of a secondary audio program is supported. This is a
|
||||
feature of the BTSC system which accompanies the NTSC video
|
||||
standard. Two audio carriers are available for mono or stereo
|
||||
transmissions of a primary language, and an independent third
|
||||
carrier for a monaural secondary language. Only
|
||||
``V4L2_TUNER_ANALOG_TV`` tuners can have this capability.
|
||||
|
||||
.. note::
|
||||
|
||||
The ``V4L2_TUNER_CAP_LANG2`` and ``V4L2_TUNER_CAP_SAP``
|
||||
flags are synonyms. ``V4L2_TUNER_CAP_SAP`` applies when the tuner
|
||||
supports the ``V4L2_STD_NTSC_M`` video standard.
|
||||
|
||||
- .. row 9
|
||||
|
||||
- ``V4L2_TUNER_CAP_RDS``
|
||||
|
||||
- 0x0080
|
||||
|
||||
- RDS capture is supported. This capability is only valid for radio
|
||||
tuners.
|
||||
|
||||
- .. row 10
|
||||
|
||||
- ``V4L2_TUNER_CAP_RDS_BLOCK_IO``
|
||||
|
||||
- 0x0100
|
||||
|
||||
- The RDS data is passed as unparsed RDS blocks.
|
||||
|
||||
- .. row 11
|
||||
|
||||
- ``V4L2_TUNER_CAP_RDS_CONTROLS``
|
||||
|
||||
- 0x0200
|
||||
|
||||
- The RDS data is parsed by the hardware and set via controls.
|
||||
|
||||
- .. row 12
|
||||
|
||||
- ``V4L2_TUNER_CAP_FREQ_BANDS``
|
||||
|
||||
- 0x0400
|
||||
|
||||
- The :ref:`VIDIOC_ENUM_FREQ_BANDS`
|
||||
ioctl can be used to enumerate the available frequency bands.
|
||||
|
||||
- .. row 13
|
||||
|
||||
- ``V4L2_TUNER_CAP_HWSEEK_PROG_LIM``
|
||||
|
||||
- 0x0800
|
||||
|
||||
- The range to search when using the hardware seek functionality is
|
||||
programmable, see
|
||||
:ref:`VIDIOC_S_HW_FREQ_SEEK` for
|
||||
details.
|
||||
|
||||
- .. row 14
|
||||
|
||||
- ``V4L2_TUNER_CAP_1HZ``
|
||||
|
||||
- 0x1000
|
||||
|
||||
- When set, tuning frequencies are expressed in units of 1 Hz
|
||||
instead of 62.5 kHz.
|
||||
The ``V4L2_TUNER_CAP_LANG2`` and ``V4L2_TUNER_CAP_SAP``
|
||||
flags are synonyms. ``V4L2_TUNER_CAP_SAP`` applies when the tuner
|
||||
supports the ``V4L2_STD_NTSC_M`` video standard.
|
||||
* - ``V4L2_TUNER_CAP_RDS``
|
||||
- 0x0080
|
||||
- RDS capture is supported. This capability is only valid for radio
|
||||
tuners.
|
||||
* - ``V4L2_TUNER_CAP_RDS_BLOCK_IO``
|
||||
- 0x0100
|
||||
- The RDS data is passed as unparsed RDS blocks.
|
||||
* - ``V4L2_TUNER_CAP_RDS_CONTROLS``
|
||||
- 0x0200
|
||||
- The RDS data is parsed by the hardware and set via controls.
|
||||
* - ``V4L2_TUNER_CAP_FREQ_BANDS``
|
||||
- 0x0400
|
||||
- The :ref:`VIDIOC_ENUM_FREQ_BANDS`
|
||||
ioctl can be used to enumerate the available frequency bands.
|
||||
* - ``V4L2_TUNER_CAP_HWSEEK_PROG_LIM``
|
||||
- 0x0800
|
||||
- The range to search when using the hardware seek functionality is
|
||||
programmable, see
|
||||
:ref:`VIDIOC_S_HW_FREQ_SEEK` for
|
||||
details.
|
||||
* - ``V4L2_TUNER_CAP_1HZ``
|
||||
- 0x1000
|
||||
- When set, tuning frequencies are expressed in units of 1 Hz
|
||||
instead of 62.5 kHz.
|
||||
|
||||
|
||||
|
||||
|
@ -476,63 +308,33 @@ To change the radio frequency the
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
* - ``V4L2_TUNER_SUB_MONO``
|
||||
- 0x0001
|
||||
- The tuner receives a mono audio signal.
|
||||
* - ``V4L2_TUNER_SUB_STEREO``
|
||||
- 0x0002
|
||||
- The tuner receives a stereo audio signal.
|
||||
* - ``V4L2_TUNER_SUB_LANG1``
|
||||
- 0x0008
|
||||
- The tuner receives the primary language of a bilingual audio
|
||||
signal. Drivers must clear this flag when the current video
|
||||
standard is ``V4L2_STD_NTSC_M``.
|
||||
* - ``V4L2_TUNER_SUB_LANG2``
|
||||
- 0x0004
|
||||
- The tuner receives the secondary language of a bilingual audio
|
||||
signal (or a second audio program).
|
||||
* - ``V4L2_TUNER_SUB_SAP``
|
||||
- 0x0004
|
||||
- The tuner receives a Second Audio Program.
|
||||
|
||||
- .. row 1
|
||||
.. note::
|
||||
|
||||
- ``V4L2_TUNER_SUB_MONO``
|
||||
|
||||
- 0x0001
|
||||
|
||||
- The tuner receives a mono audio signal.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_TUNER_SUB_STEREO``
|
||||
|
||||
- 0x0002
|
||||
|
||||
- The tuner receives a stereo audio signal.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_TUNER_SUB_LANG1``
|
||||
|
||||
- 0x0008
|
||||
|
||||
- The tuner receives the primary language of a bilingual audio
|
||||
signal. Drivers must clear this flag when the current video
|
||||
standard is ``V4L2_STD_NTSC_M``.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_TUNER_SUB_LANG2``
|
||||
|
||||
- 0x0004
|
||||
|
||||
- The tuner receives the secondary language of a bilingual audio
|
||||
signal (or a second audio program).
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_TUNER_SUB_SAP``
|
||||
|
||||
- 0x0004
|
||||
|
||||
- The tuner receives a Second Audio Program.
|
||||
|
||||
.. note::
|
||||
|
||||
The ``V4L2_TUNER_SUB_LANG2`` and ``V4L2_TUNER_SUB_SAP``
|
||||
flags are synonyms. The ``V4L2_TUNER_SUB_SAP`` flag applies
|
||||
when the current video standard is ``V4L2_STD_NTSC_M``.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_TUNER_SUB_RDS``
|
||||
|
||||
- 0x0010
|
||||
|
||||
- The tuner receives an RDS channel.
|
||||
The ``V4L2_TUNER_SUB_LANG2`` and ``V4L2_TUNER_SUB_SAP``
|
||||
flags are synonyms. The ``V4L2_TUNER_SUB_SAP`` flag applies
|
||||
when the current video standard is ``V4L2_STD_NTSC_M``.
|
||||
* - ``V4L2_TUNER_SUB_RDS``
|
||||
- 0x0010
|
||||
- The tuner receives an RDS channel.
|
||||
|
||||
|
||||
|
||||
|
@ -545,78 +347,48 @@ To change the radio frequency the
|
|||
:stub-columns: 0
|
||||
:widths: 3 1 4
|
||||
|
||||
* - ``V4L2_TUNER_MODE_MONO``
|
||||
- 0
|
||||
- Play mono audio. When the tuner receives a stereo signal this a
|
||||
down-mix of the left and right channel. When the tuner receives a
|
||||
bilingual or SAP signal this mode selects the primary language.
|
||||
* - ``V4L2_TUNER_MODE_STEREO``
|
||||
- 1
|
||||
- Play stereo audio. When the tuner receives bilingual audio it may
|
||||
play different languages on the left and right channel or the
|
||||
primary language is played on both channels.
|
||||
|
||||
- .. row 1
|
||||
Playing different languages in this mode is deprecated. New
|
||||
drivers should do this only in ``MODE_LANG1_LANG2``.
|
||||
|
||||
- ``V4L2_TUNER_MODE_MONO``
|
||||
When the tuner receives no stereo signal or does not support
|
||||
stereo reception the driver shall fall back to ``MODE_MONO``.
|
||||
* - ``V4L2_TUNER_MODE_LANG1``
|
||||
- 3
|
||||
- Play the primary language, mono or stereo. Only
|
||||
``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
|
||||
* - ``V4L2_TUNER_MODE_LANG2``
|
||||
- 2
|
||||
- Play the secondary language, mono. When the tuner receives no
|
||||
bilingual audio or SAP, or their reception is not supported the
|
||||
driver shall fall back to mono or stereo mode. Only
|
||||
``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
|
||||
* - ``V4L2_TUNER_MODE_SAP``
|
||||
- 2
|
||||
- Play the Second Audio Program. When the tuner receives no
|
||||
bilingual audio or SAP, or their reception is not supported the
|
||||
driver shall fall back to mono or stereo mode. Only
|
||||
``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
|
||||
|
||||
- 0
|
||||
|
||||
- Play mono audio. When the tuner receives a stereo signal this a
|
||||
down-mix of the left and right channel. When the tuner receives a
|
||||
bilingual or SAP signal this mode selects the primary language.
|
||||
|
||||
- .. row 2
|
||||
|
||||
- ``V4L2_TUNER_MODE_STEREO``
|
||||
|
||||
- 1
|
||||
|
||||
- Play stereo audio. When the tuner receives bilingual audio it may
|
||||
play different languages on the left and right channel or the
|
||||
primary language is played on both channels.
|
||||
|
||||
Playing different languages in this mode is deprecated. New
|
||||
drivers should do this only in ``MODE_LANG1_LANG2``.
|
||||
|
||||
When the tuner receives no stereo signal or does not support
|
||||
stereo reception the driver shall fall back to ``MODE_MONO``.
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``V4L2_TUNER_MODE_LANG1``
|
||||
|
||||
- 3
|
||||
|
||||
- Play the primary language, mono or stereo. Only
|
||||
``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``V4L2_TUNER_MODE_LANG2``
|
||||
|
||||
- 2
|
||||
|
||||
- Play the secondary language, mono. When the tuner receives no
|
||||
bilingual audio or SAP, or their reception is not supported the
|
||||
driver shall fall back to mono or stereo mode. Only
|
||||
``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``V4L2_TUNER_MODE_SAP``
|
||||
|
||||
- 2
|
||||
|
||||
- Play the Second Audio Program. When the tuner receives no
|
||||
bilingual audio or SAP, or their reception is not supported the
|
||||
driver shall fall back to mono or stereo mode. Only
|
||||
``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
|
||||
|
||||
.. note:: The ``V4L2_TUNER_MODE_LANG2`` and ``V4L2_TUNER_MODE_SAP``
|
||||
are synonyms.
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``V4L2_TUNER_MODE_LANG1_LANG2``
|
||||
|
||||
- 4
|
||||
|
||||
- Play the primary language on the left channel, the secondary
|
||||
language on the right channel. When the tuner receives no
|
||||
bilingual audio or SAP, it shall fall back to ``MODE_LANG1`` or
|
||||
``MODE_MONO``. Only ``V4L2_TUNER_ANALOG_TV`` tuners support this
|
||||
mode.
|
||||
.. note:: The ``V4L2_TUNER_MODE_LANG2`` and ``V4L2_TUNER_MODE_SAP``
|
||||
are synonyms.
|
||||
* - ``V4L2_TUNER_MODE_LANG1_LANG2``
|
||||
- 4
|
||||
- Play the primary language on the left channel, the secondary
|
||||
language on the right channel. When the tuner receives no
|
||||
bilingual audio or SAP, it shall fall back to ``MODE_LANG1`` or
|
||||
``MODE_MONO``. Only ``V4L2_TUNER_ANALOG_TV`` tuners support this
|
||||
mode.
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
@ -628,95 +400,44 @@ To change the radio frequency the
|
|||
:header-rows: 2
|
||||
:stub-columns: 0
|
||||
|
||||
|
||||
- .. row 1
|
||||
|
||||
-
|
||||
- :cspan:`5` Selected ``V4L2_TUNER_MODE_``
|
||||
|
||||
- .. row 2
|
||||
|
||||
- Received ``V4L2_TUNER_SUB_``
|
||||
|
||||
- ``MONO``
|
||||
|
||||
- ``STEREO``
|
||||
|
||||
- ``LANG1``
|
||||
|
||||
- ``LANG2 = SAP``
|
||||
|
||||
- ``LANG1_LANG2``\ [#f1]_
|
||||
|
||||
- .. row 3
|
||||
|
||||
- ``MONO``
|
||||
|
||||
- Mono
|
||||
|
||||
- Mono/Mono
|
||||
|
||||
- Mono
|
||||
|
||||
- Mono
|
||||
|
||||
- Mono/Mono
|
||||
|
||||
- .. row 4
|
||||
|
||||
- ``MONO | SAP``
|
||||
|
||||
- Mono
|
||||
|
||||
- Mono/Mono
|
||||
|
||||
- Mono
|
||||
|
||||
- SAP
|
||||
|
||||
- Mono/SAP (preferred) or Mono/Mono
|
||||
|
||||
- .. row 5
|
||||
|
||||
- ``STEREO``
|
||||
|
||||
- L+R
|
||||
|
||||
- L/R
|
||||
|
||||
- Stereo L/R (preferred) or Mono L+R
|
||||
|
||||
- Stereo L/R (preferred) or Mono L+R
|
||||
|
||||
- L/R (preferred) or L+R/L+R
|
||||
|
||||
- .. row 6
|
||||
|
||||
- ``STEREO | SAP``
|
||||
|
||||
- L+R
|
||||
|
||||
- L/R
|
||||
|
||||
- Stereo L/R (preferred) or Mono L+R
|
||||
|
||||
- SAP
|
||||
|
||||
- L+R/SAP (preferred) or L/R or L+R/L+R
|
||||
|
||||
- .. row 7
|
||||
|
||||
- ``LANG1 | LANG2``
|
||||
|
||||
- Language 1
|
||||
|
||||
- Lang1/Lang2 (deprecated [#f2]_) or Lang1/Lang1
|
||||
|
||||
- Language 1
|
||||
|
||||
- Language 2
|
||||
|
||||
- Lang1/Lang2 (preferred) or Lang1/Lang1
|
||||
* -
|
||||
- :cspan:`5` Selected ``V4L2_TUNER_MODE_``
|
||||
* - Received ``V4L2_TUNER_SUB_``
|
||||
- ``MONO``
|
||||
- ``STEREO``
|
||||
- ``LANG1``
|
||||
- ``LANG2 = SAP``
|
||||
- ``LANG1_LANG2``\ [#f1]_
|
||||
* - ``MONO``
|
||||
- Mono
|
||||
- Mono/Mono
|
||||
- Mono
|
||||
- Mono
|
||||
- Mono/Mono
|
||||
* - ``MONO | SAP``
|
||||
- Mono
|
||||
- Mono/Mono
|
||||
- Mono
|
||||
- SAP
|
||||
- Mono/SAP (preferred) or Mono/Mono
|
||||
* - ``STEREO``
|
||||
- L+R
|
||||
- L/R
|
||||
- Stereo L/R (preferred) or Mono L+R
|
||||
- Stereo L/R (preferred) or Mono L+R
|
||||
- L/R (preferred) or L+R/L+R
|
||||
* - ``STEREO | SAP``
|
||||
- L+R
|
||||
- L/R
|
||||
- Stereo L/R (preferred) or Mono L+R
|
||||
- SAP
|
||||
- L+R/SAP (preferred) or L/R or L+R/L+R
|
||||
* - ``LANG1 | LANG2``
|
||||
- Language 1
|
||||
- Lang1/Lang2 (deprecated [#f2]_) or Lang1/Lang1
|
||||
- Language 1
|
||||
- Language 2
|
||||
- Lang1/Lang2 (preferred) or Lang1/Lang1
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue