mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
Merge tag 'media/v6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - Lots of improvement at atomisp driver, which is starting to look in good shape - Mediatek vcodec driver has gained support for av1 and hevc stateless codecs - New sensor driver: ov01a10 - verisilicon driver has gained AV1 entropy helpers - tegra-video has gained support for Tegra20 parallel input - dvb core has gained an extra property to better support DVB-S2X - as usual, lots of cleanups, fixes and improvements on media drivers * tag 'media/v6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (253 commits) media: wl128x: fix a clang warning media: dvb: mb86a20s: get rid of a clang-15 warning media: cec: i2c: ch7322: also select REGMAP media: add HAS_IOPORT dependencies media: tc358746: select CONFIG_GENERIC_PHY media: mediatek: vcodec: Add dbgfs help function media: mediatek: vcodec: Add encode to support dbgfs media: mediatek: vcodec: Change dbgfs interface to support encode media: mediatek: vcodec: Get each instance format type media: mediatek: vcodec: Get each context resolution information media: mediatek: vcodec: Add a debugfs file to get different useful information media: mediatek: vcodec: Add debug params to control different log level media: mediatek: vcodec: Add debugfs interface to get debug information media: mediatek: vcodec: support stateless AV1 decoder media: verisilicon: Conditionally ignore native formats media: verisilicon: Enable AV1 decoder on rk3588 media: verisilicon: Add film grain feature to AV1 driver media: verisilicon: Add Rockchip AV1 decoder media: verisilicon: Add AV1 entropy helpers media: verisilicon: Compute motion vectors size for AV1 frames ...
This commit is contained in:
@@ -142,6 +142,10 @@ ignore symbol FEC_26_45
|
||||
ignore symbol FEC_28_45
|
||||
ignore symbol FEC_32_45
|
||||
ignore symbol FEC_77_90
|
||||
ignore symbol FEC_11_45
|
||||
ignore symbol FEC_4_15
|
||||
ignore symbol FEC_14_45
|
||||
ignore symbol FEC_7_15
|
||||
|
||||
ignore symbol TRANSMISSION_MODE_AUTO
|
||||
ignore symbol TRANSMISSION_MODE_1K
|
||||
|
@@ -427,3 +427,12 @@ VP9
|
||||
:title: VP9 Bitstream & Decoding Process Specification
|
||||
|
||||
:author: Adrian Grange (Google), Peter de Rivaz (Argon Design), Jonathan Hunt (Argon Design)
|
||||
|
||||
.. _av1:
|
||||
|
||||
AV1
|
||||
===
|
||||
|
||||
:title: AV1 Bitstream & Decoding Process Specification
|
||||
|
||||
:author: Peter de Rivaz, Argon Design Ltd, Jack Haughton, Argon Design Ltd
|
||||
|
@@ -506,6 +506,8 @@ enum v4l2_scene_mode -
|
||||
value down. A value of zero stops the motion if one is in progress
|
||||
and has no effect otherwise.
|
||||
|
||||
.. _v4l2-camera-sensor-orientation:
|
||||
|
||||
``V4L2_CID_CAMERA_ORIENTATION (menu)``
|
||||
This read-only control describes the camera orientation by reporting its
|
||||
mounting position on the device where the camera is installed. The control
|
||||
@@ -536,6 +538,7 @@ enum v4l2_scene_mode -
|
||||
- The camera is not directly attached to the device and is freely movable.
|
||||
|
||||
|
||||
.. _v4l2-camera-sensor-rotation:
|
||||
|
||||
``V4L2_CID_CAMERA_SENSOR_ROTATION (integer)``
|
||||
This read-only control describes the rotation correction in degrees in the
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -12,10 +12,10 @@ These formats are used for the :ref:`metadata` interface only.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
pixfmt-meta-d4xx
|
||||
pixfmt-meta-intel-ipu3
|
||||
pixfmt-meta-rkisp1
|
||||
pixfmt-meta-uvc
|
||||
pixfmt-meta-vsp1-hgo
|
||||
pixfmt-meta-vsp1-hgt
|
||||
pixfmt-meta-vivid
|
||||
metafmt-d4xx
|
||||
metafmt-intel-ipu3
|
||||
metafmt-rkisp1
|
||||
metafmt-uvc
|
||||
metafmt-vsp1-hgo
|
||||
metafmt-vsp1-hgt
|
||||
metafmt-vivid
|
||||
|
@@ -12,7 +12,7 @@ Intel D4xx UVC Cameras Metadata
|
||||
Description
|
||||
===========
|
||||
|
||||
Intel D4xx (D435 and other) cameras include per-frame metadata in their UVC
|
||||
Intel D4xx (D435, D455 and others) cameras include per-frame metadata in their UVC
|
||||
payload headers, following the Microsoft(R) UVC extension proposal [1_]. That
|
||||
means, that the private D4XX metadata, following the standard UVC header, is
|
||||
organised in blocks. D4XX cameras implement several standard block types,
|
||||
@@ -26,6 +26,8 @@ V4L2_META_FMT_UVC with the only difference, that it also includes proprietary
|
||||
payload header data. D4xx cameras use bulk transfers and only send one payload
|
||||
per frame, therefore their headers cannot be larger than 255 bytes.
|
||||
|
||||
This document implements Intel Configuration version 3 [9_].
|
||||
|
||||
Below are proprietary Microsoft style metadata types, used by D4xx cameras,
|
||||
where all fields are in little endian order:
|
||||
|
||||
@@ -43,10 +45,10 @@ where all fields are in little endian order:
|
||||
* - __u32 ID
|
||||
- 0x80000000
|
||||
* - __u32 Size
|
||||
- Size in bytes (currently 56)
|
||||
- Size in bytes, include ID (all protocol versions: 60)
|
||||
* - __u32 Version
|
||||
- Version of this structure. The documentation herein corresponds to
|
||||
version xxx. The version number will be incremented when new fields are
|
||||
- Version of this structure. The documentation herein covers versions 1,
|
||||
2 and 3. The version number will be incremented when new fields are
|
||||
added.
|
||||
* - __u32 Flags
|
||||
- A bitmask of flags: see [2_] below
|
||||
@@ -72,13 +74,17 @@ where all fields are in little endian order:
|
||||
- Bottom border of the AE Region of Interest
|
||||
* - __u32 Preset
|
||||
- Preset selector value, default: 0, unless changed by the user
|
||||
* - __u32 Laser mode
|
||||
- 0: off, 1: on
|
||||
* - __u8 Emitter mode (v3 only) (__u32 Laser mode for v1) [8_]
|
||||
- 0: off, 1: on, same as __u32 Laser mode for v1
|
||||
* - __u8 RFU byte (v3 only)
|
||||
- Spare byte for future use
|
||||
* - __u16 LED Power (v3 only)
|
||||
- Led power value 0-360 (F416 SKU)
|
||||
* - :cspan:`1` *Capture Timing*
|
||||
* - __u32 ID
|
||||
- 0x80000001
|
||||
* - __u32 Size
|
||||
- Size in bytes (currently 40)
|
||||
- Size in bytes, include ID (all protocol versions: 40)
|
||||
* - __u32 Version
|
||||
- Version of this structure. The documentation herein corresponds to
|
||||
version xxx. The version number will be incremented when new fields are
|
||||
@@ -101,7 +107,7 @@ where all fields are in little endian order:
|
||||
* - __u32 ID
|
||||
- 0x80000002
|
||||
* - __u32 Size
|
||||
- Size in bytes (currently 40)
|
||||
- Size in bytes, include ID (v1:36, v3:40)
|
||||
* - __u32 Version
|
||||
- Version of this structure. The documentation herein corresponds to
|
||||
version xxx. The version number will be incremented when new fields are
|
||||
@@ -124,6 +130,14 @@ where all fields are in little endian order:
|
||||
- Requested frame rate per second
|
||||
* - __u16 Trigger
|
||||
- Byte 0: bit 0: depth and RGB are synchronised, bit 1: external trigger
|
||||
* - __u16 Calibration count (v3 only)
|
||||
- Calibration counter, see [4_] below
|
||||
* - __u8 GPIO input data (v3 only)
|
||||
- GPIO readout, see [4_] below (Supported from FW 5.12.7.0)
|
||||
* - __u32 Sub-preset info (v3 only)
|
||||
- Sub-preset choice information, see [4_] below
|
||||
* - __u8 reserved (v3 only)
|
||||
- RFU byte.
|
||||
|
||||
.. _1:
|
||||
|
||||
@@ -140,6 +154,8 @@ where all fields are in little endian order:
|
||||
0x00000010 Exposure priority
|
||||
0x00000020 AE ROI
|
||||
0x00000040 Preset
|
||||
0x00000080 Emitter mode
|
||||
0x00000100 LED Power
|
||||
|
||||
.. _3:
|
||||
|
||||
@@ -165,6 +181,8 @@ where all fields are in little endian order:
|
||||
0x00000040 Framerate
|
||||
0x00000080 Trigger
|
||||
0x00000100 Cal count
|
||||
0x00000200 GPIO Input Data
|
||||
0x00000400 Sub-preset Info
|
||||
|
||||
.. _5:
|
||||
|
||||
@@ -211,3 +229,24 @@ Left sensor: ::
|
||||
Fish Eye sensor: ::
|
||||
|
||||
1 RAW8
|
||||
|
||||
.. _8:
|
||||
|
||||
[8] The "Laser mode" has been replaced in version 3 by three different fields.
|
||||
"Laser" has been renamed to "Emitter" as there are multiple technologies for
|
||||
camera projectors. As we have another field for "Laser Power" we introduced
|
||||
"LED Power" for extra emitter.
|
||||
|
||||
The "Laser mode" __u32 fiels has been split into: ::
|
||||
1 __u8 Emitter mode
|
||||
2 __u8 RFU byte
|
||||
3 __u16 LED Power
|
||||
|
||||
This is a change between versions 1 and 3. All versions 1, 2 and 3 are backward
|
||||
compatible with the same data format and they are supported. See [2_] for which
|
||||
attributes are valid.
|
||||
|
||||
.. _9:
|
||||
|
||||
[9] LibRealSense SDK metadata source:
|
||||
https://github.com/IntelRealSense/librealsense/blob/master/src/metadata.h
|
@@ -258,6 +258,22 @@ Compressed Formats
|
||||
RV9 players - the format and decoder did not change, only
|
||||
the encoder did. As a result, it uses the same FourCC.
|
||||
|
||||
* .. _V4L2-PIX-FMT-AV1-FRAME:
|
||||
|
||||
- ``V4L2_PIX_FMT_AV1_FRAME``
|
||||
- 'AV1F'
|
||||
- AV1 parsed frame, including the frame header, as extracted from the container.
|
||||
This format is adapted for stateless video decoders that implement a AV1
|
||||
pipeline with the :ref:`stateless_decoder`. Metadata associated with the
|
||||
frame to decode is required to be passed through the
|
||||
``V4L2_CID_STATELESS_AV1_SEQUENCE``, ``V4L2_CID_STATELESS_AV1_FRAME``,
|
||||
and ``V4L2_CID_STATELESS_AV1_TILE_GROUP_ENTRY`` controls.
|
||||
See the :ref:`associated Codec Control IDs <v4l2-codec-stateless-av1>`.
|
||||
Exactly one output and one capture buffer must be provided for use with
|
||||
this pixel format. The output buffer must contain the appropriate number
|
||||
of macroblocks to decode a full corresponding frame to the matching
|
||||
capture buffer.
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\normalsize
|
||||
|
@@ -137,6 +137,13 @@ All components are stored with the same number of bits per component.
|
||||
- Cb, Cr
|
||||
- No
|
||||
- Linear
|
||||
* - V4L2_PIX_FMT_NV15_4L4
|
||||
- 'VT15'
|
||||
- 15
|
||||
- 4:2:0
|
||||
- Cb, Cr
|
||||
- Yes
|
||||
- 4x4 tiles
|
||||
* - V4L2_PIX_FMT_NV16
|
||||
- 'NV16'
|
||||
- 8
|
||||
@@ -378,6 +385,15 @@ two non-contiguous planes.
|
||||
|
||||
Example V4L2_PIX_FMT_NV12MT memory layout of tiles
|
||||
|
||||
.. _V4L2-PIX-FMT-NV15-4L4:
|
||||
|
||||
Tiled NV15
|
||||
----------
|
||||
|
||||
Semi-planar 10-bit YUV 4:2:0 formats, using 4x4 tiling.
|
||||
All components are packed without any padding between each other.
|
||||
As a side-effect, each group of 4 components are stored over 5 bytes
|
||||
(YYYY or UVUV = 4 * 10 bits = 40 bits = 5 bytes).
|
||||
|
||||
.. _V4L2-PIX-FMT-NV16:
|
||||
.. _V4L2-PIX-FMT-NV61:
|
||||
|
@@ -185,12 +185,12 @@ still cause this situation.
|
||||
- ``p_u32``
|
||||
- A pointer to a matrix control of unsigned 32-bit values. Valid if
|
||||
this control is of type ``V4L2_CTRL_TYPE_U32``.
|
||||
* - __u32 *
|
||||
* - __s32 *
|
||||
- ``p_s32``
|
||||
- A pointer to a matrix control of signed 32-bit values. Valid if
|
||||
this control is of type ``V4L2_CTRL_TYPE_INTEGER`` and
|
||||
``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is set.
|
||||
* - __u32 *
|
||||
* - __s64 *
|
||||
- ``p_s64``
|
||||
- A pointer to a matrix control of signed 64-bit values. Valid if
|
||||
this control is of type ``V4L2_CTRL_TYPE_INTEGER64`` and
|
||||
@@ -279,6 +279,22 @@ still cause this situation.
|
||||
- ``p_hevc_decode_params``
|
||||
- A pointer to a struct :c:type:`v4l2_ctrl_hevc_decode_params`. Valid if this
|
||||
control is of type ``V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS``.
|
||||
* - struct :c:type:`v4l2_ctrl_av1_sequence` *
|
||||
- ``p_av1_sequence``
|
||||
- A pointer to a struct :c:type:`v4l2_ctrl_av1_sequence`. Valid if this control is
|
||||
of type ``V4L2_CTRL_TYPE_AV1_SEQUENCE``.
|
||||
* - struct :c:type:`v4l2_ctrl_av1_tile_group_entry` *
|
||||
- ``p_av1_tile_group_entry``
|
||||
- A pointer to a struct :c:type:`v4l2_ctrl_av1_tile_group_entry`. Valid if this control is
|
||||
of type ``V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY``.
|
||||
* - struct :c:type:`v4l2_ctrl_av1_frame` *
|
||||
- ``p_av1_frame``
|
||||
- A pointer to a struct :c:type:`v4l2_ctrl_av1_frame`. Valid if this control is
|
||||
of type ``V4L2_CTRL_TYPE_AV1_FRAME``.
|
||||
* - struct :c:type:`v4l2_ctrl_av1_film_grain` *
|
||||
- ``p_av1_film_grain``
|
||||
- A pointer to a struct :c:type:`v4l2_ctrl_av1_film_grain`. Valid if this control is
|
||||
of type ``V4L2_CTRL_TYPE_AV1_FILM_GRAIN``.
|
||||
* - void *
|
||||
- ``ptr``
|
||||
- A pointer to a compound type which can be an N-dimensional array
|
||||
|
@@ -525,6 +525,30 @@ See also the examples in :ref:`control`.
|
||||
- n/a
|
||||
- A struct :c:type:`v4l2_ctrl_vp9_frame`, containing VP9
|
||||
frame decode parameters for stateless video decoders.
|
||||
* - ``V4L2_CTRL_TYPE_AV1_SEQUENCE``
|
||||
- n/a
|
||||
- n/a
|
||||
- n/a
|
||||
- A struct :c:type:`v4l2_ctrl_av1_sequence`, containing AV1 Sequence OBU
|
||||
decoding parameters for stateless video decoders.
|
||||
* - ``V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY``
|
||||
- n/a
|
||||
- n/a
|
||||
- n/a
|
||||
- A struct :c:type:`v4l2_ctrl_av1_tile_group_entry`, containing AV1 Tile Group
|
||||
OBU decoding parameters for stateless video decoders.
|
||||
* - ``V4L2_CTRL_TYPE_AV1_FRAME``
|
||||
- n/a
|
||||
- n/a
|
||||
- n/a
|
||||
- A struct :c:type:`v4l2_ctrl_av1_frame`, containing AV1 Frame/Frame
|
||||
Header OBU decoding parameters for stateless video decoders.
|
||||
* - ``V4L2_CTRL_TYPE_AV1_FILM_GRAIN``
|
||||
- n/a
|
||||
- n/a
|
||||
- n/a
|
||||
- A struct :c:type:`v4l2_ctrl_av1_film_grain`, containing AV1 Film Grain
|
||||
parameters for stateless video decoders.
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
@@ -122,7 +122,7 @@ for all the route entries and call ``VIDIOC_SUBDEV_G_ROUTING`` again.
|
||||
:widths: 3 1 4
|
||||
|
||||
* - V4L2_SUBDEV_ROUTE_FL_ACTIVE
|
||||
- 0
|
||||
- 0x0001
|
||||
- The route is enabled. Set by applications.
|
||||
|
||||
Return Value
|
||||
|
@@ -161,6 +161,10 @@ replace symbol V4L2_CTRL_TYPE_HEVC_PPS :c:type:`v4l2_ctrl_type`
|
||||
replace symbol V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS :c:type:`v4l2_ctrl_type`
|
||||
replace symbol V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX :c:type:`v4l2_ctrl_type`
|
||||
replace symbol V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS :c:type:`v4l2_ctrl_type`
|
||||
replace symbol V4L2_CTRL_TYPE_AV1_SEQUENCE :c:type:`v4l2_ctrl_type`
|
||||
replace symbol V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY :c:type:`v4l2_ctrl_type`
|
||||
replace symbol V4L2_CTRL_TYPE_AV1_FRAME :c:type:`v4l2_ctrl_type`
|
||||
replace symbol V4L2_CTRL_TYPE_AV1_FILM_GRAIN :c:type:`v4l2_ctrl_type`
|
||||
|
||||
# V4L2 capability defines
|
||||
replace define V4L2_CAP_VIDEO_CAPTURE device-capabilities
|
||||
|
Reference in New Issue
Block a user