Commit d98c34be authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

media: ext-ctrls-codec.rst: move FWHT docs to ext-ctrls-codec-stateless.rst

Move the documentation for the stateless FWHT codec to
ext-ctrls-codec-stateless.rst since that is the proper place
for the stable stateless API documentation.
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 206bc0f6
......@@ -671,3 +671,123 @@ Stateless Codec Control ID
- Selecting this value specifies that H264 slices are expected
to be prefixed by Annex B start codes. According to :ref:`h264`
valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001.
.. _codec-stateless-fwht:
``V4L2_CID_STATELESS_FWHT_PARAMS (struct)``
Specifies the FWHT (Fast Walsh Hadamard Transform) parameters (as extracted
from the bitstream) for the associated FWHT data. This includes the necessary
parameters for configuring a stateless hardware decoding pipeline for FWHT.
This codec is specific to the vicodec test driver.
.. c:type:: v4l2_ctrl_fwht_params
.. cssclass:: longtable
.. tabularcolumns:: |p{1.4cm}|p{4.3cm}|p{11.8cm}|
.. flat-table:: struct v4l2_ctrl_fwht_params
:header-rows: 0
:stub-columns: 0
:widths: 1 1 2
* - __u64
- ``backward_ref_ts``
- Timestamp of the V4L2 capture buffer to use as backward reference, used
with P-coded frames. The timestamp refers to the
``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the
:c:func:`v4l2_timeval_to_ns()` function to convert the struct
:c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64.
* - __u32
- ``version``
- The version of the codec. Set to ``V4L2_FWHT_VERSION``.
* - __u32
- ``width``
- The width of the frame.
* - __u32
- ``height``
- The height of the frame.
* - __u32
- ``flags``
- The flags of the frame, see :ref:`fwht-flags`.
* - __u32
- ``colorspace``
- The colorspace of the frame, from enum :c:type:`v4l2_colorspace`.
* - __u32
- ``xfer_func``
- The transfer function, from enum :c:type:`v4l2_xfer_func`.
* - __u32
- ``ycbcr_enc``
- The Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`.
* - __u32
- ``quantization``
- The quantization range, from enum :c:type:`v4l2_quantization`.
.. _fwht-flags:
FWHT Flags
==========
.. cssclass:: longtable
.. tabularcolumns:: |p{6.8cm}|p{2.4cm}|p{8.3cm}|
.. flat-table::
:header-rows: 0
:stub-columns: 0
:widths: 3 1 4
* - ``V4L2_FWHT_FL_IS_INTERLACED``
- 0x00000001
- Set if this is an interlaced format.
* - ``V4L2_FWHT_FL_IS_BOTTOM_FIRST``
- 0x00000002
- Set if this is a bottom-first (NTSC) interlaced format.
* - ``V4L2_FWHT_FL_IS_ALTERNATE``
- 0x00000004
- Set if each 'frame' contains just one field.
* - ``V4L2_FWHT_FL_IS_BOTTOM_FIELD``
- 0x00000008
- If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this 'frame' is the
bottom field, else it is the top field.
* - ``V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED``
- 0x00000010
- Set if the Y' (luma) plane is uncompressed.
* - ``V4L2_FWHT_FL_CB_IS_UNCOMPRESSED``
- 0x00000020
- Set if the Cb plane is uncompressed.
* - ``V4L2_FWHT_FL_CR_IS_UNCOMPRESSED``
- 0x00000040
- Set if the Cr plane is uncompressed.
* - ``V4L2_FWHT_FL_CHROMA_FULL_HEIGHT``
- 0x00000080
- Set if the chroma plane has the same height as the luma plane,
else the chroma plane is half the height of the luma plane.
* - ``V4L2_FWHT_FL_CHROMA_FULL_WIDTH``
- 0x00000100
- Set if the chroma plane has the same width as the luma plane,
else the chroma plane is half the width of the luma plane.
* - ``V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED``
- 0x00000200
- Set if the alpha plane is uncompressed.
* - ``V4L2_FWHT_FL_I_FRAME``
- 0x00000400
- Set if this is an I-frame.
* - ``V4L2_FWHT_FL_COMPONENTS_NUM_MSK``
- 0x00070000
- The number of color components - 1.
* - ``V4L2_FWHT_FL_PIXENC_MSK``
- 0x00180000
- The mask for the pixel encoding.
* - ``V4L2_FWHT_FL_PIXENC_YUV``
- 0x00080000
- Set if the pixel encoding is YUV.
* - ``V4L2_FWHT_FL_PIXENC_RGB``
- 0x00100000
- Set if the pixel encoding is RGB.
* - ``V4L2_FWHT_FL_PIXENC_HSV``
- 0x00180000
- Set if the pixel encoding is HSV.
......@@ -2213,127 +2213,6 @@ enum v4l2_mpeg_mfc51_video_force_frame_type -
- Force a non-coded frame.
.. _v4l2-mpeg-fwht:
``V4L2_CID_MPEG_VIDEO_FWHT_PARAMS (struct)``
Specifies the fwht parameters (as extracted from the bitstream) for the
associated FWHT data. This includes the necessary parameters for
configuring a stateless hardware decoding pipeline for FWHT.
.. note::
This compound control is not yet part of the public kernel API and
it is expected to change.
.. c:type:: v4l2_ctrl_fwht_params
.. cssclass:: longtable
.. tabularcolumns:: |p{1.4cm}|p{4.3cm}|p{11.8cm}|
.. flat-table:: struct v4l2_ctrl_fwht_params
:header-rows: 0
:stub-columns: 0
:widths: 1 1 2
* - __u64
- ``backward_ref_ts``
- Timestamp of the V4L2 capture buffer to use as backward reference, used
with P-coded frames. The timestamp refers to the
``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the
:c:func:`v4l2_timeval_to_ns()` function to convert the struct
:c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64.
* - __u32
- ``version``
- The version of the codec
* - __u32
- ``width``
- The width of the frame
* - __u32
- ``height``
- The height of the frame
* - __u32
- ``flags``
- The flags of the frame, see :ref:`fwht-flags`.
* - __u32
- ``colorspace``
- The colorspace of the frame, from enum :c:type:`v4l2_colorspace`.
* - __u32
- ``xfer_func``
- The transfer function, from enum :c:type:`v4l2_xfer_func`.
* - __u32
- ``ycbcr_enc``
- The Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`.
* - __u32
- ``quantization``
- The quantization range, from enum :c:type:`v4l2_quantization`.
.. _fwht-flags:
FWHT Flags
============
.. cssclass:: longtable
.. tabularcolumns:: |p{6.8cm}|p{2.4cm}|p{8.3cm}|
.. flat-table::
:header-rows: 0
:stub-columns: 0
:widths: 3 1 4
* - ``V4L2_FWHT_FL_IS_INTERLACED``
- 0x00000001
- Set if this is an interlaced format
* - ``V4L2_FWHT_FL_IS_BOTTOM_FIRST``
- 0x00000002
- Set if this is a bottom-first (NTSC) interlaced format
* - ``V4L2_FWHT_FL_IS_ALTERNATE``
- 0x00000004
- Set if each 'frame' contains just one field
* - ``V4L2_FWHT_FL_IS_BOTTOM_FIELD``
- 0x00000008
- If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this 'frame' is the
bottom field, else it is the top field.
* - ``V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED``
- 0x00000010
- Set if the luma plane is uncompressed
* - ``V4L2_FWHT_FL_CB_IS_UNCOMPRESSED``
- 0x00000020
- Set if the cb plane is uncompressed
* - ``V4L2_FWHT_FL_CR_IS_UNCOMPRESSED``
- 0x00000040
- Set if the cr plane is uncompressed
* - ``V4L2_FWHT_FL_CHROMA_FULL_HEIGHT``
- 0x00000080
- Set if the chroma plane has the same height as the luma plane,
else the chroma plane is half the height of the luma plane
* - ``V4L2_FWHT_FL_CHROMA_FULL_WIDTH``
- 0x00000100
- Set if the chroma plane has the same width as the luma plane,
else the chroma plane is half the width of the luma plane
* - ``V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED``
- 0x00000200
- Set if the alpha plane is uncompressed
* - ``V4L2_FWHT_FL_I_FRAME``
- 0x00000400
- Set if this is an I-frame
* - ``V4L2_FWHT_FL_COMPONENTS_NUM_MSK``
- 0x00070000
- A 4-values flag - the number of components - 1
* - ``V4L2_FWHT_FL_PIXENC_YUV``
- 0x00080000
- Set if the pixel encoding is YUV
* - ``V4L2_FWHT_FL_PIXENC_RGB``
- 0x00100000
- Set if the pixel encoding is RGB
* - ``V4L2_FWHT_FL_PIXENC_HSV``
- 0x00180000
- Set if the pixel encoding is HSV
CX2341x MPEG Controls
=====================
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment