^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ******************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Compressed Formats
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ******************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) .. _compressed-formats:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) .. flat-table:: Compressed Image Formats
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) :widths: 3 1 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) * - Identifier
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) - Code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) - Details
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) * .. _V4L2-PIX-FMT-JPEG:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) - ``V4L2_PIX_FMT_JPEG``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) - 'JPEG'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) - TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) :ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) * .. _V4L2-PIX-FMT-MPEG:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - ``V4L2_PIX_FMT_MPEG``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) - 'MPEG'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) - MPEG multiplexed stream. The actual format is determined by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) :ref:`mpeg-control-id`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) * .. _V4L2-PIX-FMT-H264:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) - ``V4L2_PIX_FMT_H264``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) - 'H264'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) - H264 Access Unit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) The decoder expects one Access Unit per buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) The encoder generates one Access Unit per buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) If :ref:`VIDIOC_ENUM_FMT` reports ``V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) then the decoder has no requirements since it can parse all the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) information from the raw bytestream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) * .. _V4L2-PIX-FMT-H264-NO-SC:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) - ``V4L2_PIX_FMT_H264_NO_SC``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) - 'AVC1'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) - H264 video elementary stream without start codes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) * .. _V4L2-PIX-FMT-H264-MVC:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) - ``V4L2_PIX_FMT_H264_MVC``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) - 'M264'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) - H264 MVC video elementary stream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) * .. _V4L2-PIX-FMT-H264-SLICE:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) - ``V4L2_PIX_FMT_H264_SLICE``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) - 'S264'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) - H264 parsed slice data, including slice headers, either with or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) without the start code, as extracted from the H264 bitstream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) This format is adapted for stateless video decoders that implement an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) H264 pipeline (using the :ref:`mem2mem` and :ref:`media-request-api`).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) This pixelformat has two modifiers that must be set at least once
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) through the ``V4L2_CID_MPEG_VIDEO_H264_DECODE_MODE``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) and ``V4L2_CID_MPEG_VIDEO_H264_START_CODE`` controls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) In addition, metadata associated with the frame to decode are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) required to be passed through the ``V4L2_CID_MPEG_VIDEO_H264_SPS``,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) ``V4L2_CID_MPEG_VIDEO_H264_PPS``,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) ``V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX``,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) ``V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS`` and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) ``V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAMS`` controls. See the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) :ref:`associated Codec Control IDs <v4l2-mpeg-h264>`. Exactly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) one output and one capture buffer must be provided for use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) with this pixel format. The output buffer must contain the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) appropriate number of macroblocks to decode a full
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) corresponding frame to the matching capture buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) The syntax for this format is documented in :ref:`h264`, section
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 7.3.2.8 "Slice layer without partitioning RBSP syntax" and the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) sections.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) This format is not yet part of the public kernel API and it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) is expected to change.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) * .. _V4L2-PIX-FMT-H263:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) - ``V4L2_PIX_FMT_H263``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) - 'H263'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) - H263 video elementary stream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) * .. _V4L2-PIX-FMT-MPEG1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) - ``V4L2_PIX_FMT_MPEG1``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) - 'MPG1'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) - MPEG1 Picture. Each buffer starts with a Picture header, followed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) by other headers as needed and ending with the Picture data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) If :ref:`VIDIOC_ENUM_FMT` reports ``V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) then the decoder has no requirements since it can parse all the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) information from the raw bytestream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) * .. _V4L2-PIX-FMT-MPEG2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) - ``V4L2_PIX_FMT_MPEG2``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) - 'MPG2'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) - MPEG2 Picture. Each buffer starts with a Picture header, followed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) by other headers as needed and ending with the Picture data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) If :ref:`VIDIOC_ENUM_FMT` reports ``V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) then the decoder has no requirements since it can parse all the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) information from the raw bytestream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) * .. _V4L2-PIX-FMT-MPEG2-SLICE:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) - ``V4L2_PIX_FMT_MPEG2_SLICE``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) - 'MG2S'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) - MPEG-2 parsed slice data, as extracted from the MPEG-2 bitstream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) This format is adapted for stateless video decoders that implement a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) MPEG-2 pipeline (using the :ref:`mem2mem` and :ref:`media-request-api`).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) Metadata associated with the frame to decode is required to be passed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) through the ``V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS`` control and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) quantization matrices can optionally be specified through the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) ``V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION`` control.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) See the :ref:`associated Codec Control IDs <v4l2-mpeg-mpeg2>`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) Exactly one output and one capture buffer must be provided for use with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) this pixel format. The output buffer must contain the appropriate number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) of macroblocks to decode a full corresponding frame to the matching
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) capture buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) * .. _V4L2-PIX-FMT-MPEG4:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) - ``V4L2_PIX_FMT_MPEG4``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) - 'MPG4'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) - MPEG4 video elementary stream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) * .. _V4L2-PIX-FMT-XVID:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) - ``V4L2_PIX_FMT_XVID``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) - 'XVID'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) - Xvid video elementary stream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) * .. _V4L2-PIX-FMT-VC1-ANNEX-G:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) - ``V4L2_PIX_FMT_VC1_ANNEX_G``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) - 'VC1G'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) - VC1, SMPTE 421M Annex G compliant stream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) * .. _V4L2-PIX-FMT-VC1-ANNEX-L:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) - ``V4L2_PIX_FMT_VC1_ANNEX_L``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) - 'VC1L'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) - VC1, SMPTE 421M Annex L compliant stream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) * .. _V4L2-PIX-FMT-VP8:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) - ``V4L2_PIX_FMT_VP8``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) - 'VP80'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) - VP8 compressed video frame. The encoder generates one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) compressed frame per buffer, and the decoder requires one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) compressed frame per buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) * .. _V4L2-PIX-FMT-VP8-FRAME:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) - ``V4L2_PIX_FMT_VP8_FRAME``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) - 'VP8F'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) - VP8 parsed frame, as extracted from the container.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) This format is adapted for stateless video decoders that implement a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) VP8 pipeline (using the :ref:`mem2mem` and :ref:`media-request-api`).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) Metadata associated with the frame to decode is required to be passed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) through the ``V4L2_CID_MPEG_VIDEO_VP8_FRAME_HEADER`` control.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) See the :ref:`associated Codec Control IDs <v4l2-mpeg-vp8>`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) Exactly one output and one capture buffer must be provided for use with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) this pixel format. The output buffer must contain the appropriate number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) of macroblocks to decode a full corresponding frame to the matching
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) capture buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) This format is not yet part of the public kernel API and it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) is expected to change.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) * .. _V4L2-PIX-FMT-VP9:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) - ``V4L2_PIX_FMT_VP9``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) - 'VP90'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) - VP9 compressed video frame. The encoder generates one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) compressed frame per buffer, and the decoder requires one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) compressed frame per buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) * .. _V4L2-PIX-FMT-HEVC:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) - ``V4L2_PIX_FMT_HEVC``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) - 'HEVC'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) - HEVC/H.265 Access Unit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) The decoder expects one Access Unit per buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) The encoder generates one Access Unit per buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) If :ref:`VIDIOC_ENUM_FMT` reports ``V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) then the decoder has no requirements since it can parse all the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) information from the raw bytestream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) * .. _V4L2-PIX-FMT-HEVC-SLICE:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) - ``V4L2_PIX_FMT_HEVC_SLICE``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) - 'S265'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) - HEVC parsed slice data, as extracted from the HEVC bitstream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) This format is adapted for stateless video decoders that implement a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) HEVC pipeline (using the :ref:`mem2mem` and :ref:`media-request-api`).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) This pixelformat has two modifiers that must be set at least once
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) through the ``V4L2_CID_MPEG_VIDEO_HEVC_DECODE_MODE``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) and ``V4L2_CID_MPEG_VIDEO_HEVC_START_CODE`` controls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) Metadata associated with the frame to decode is required to be passed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) through the following controls :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) * ``V4L2_CID_MPEG_VIDEO_HEVC_SPS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) * ``V4L2_CID_MPEG_VIDEO_HEVC_PPS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) * ``V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) See the :ref:`associated Codec Control IDs <v4l2-mpeg-hevc>`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) Buffers associated with this pixel format must contain the appropriate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) number of macroblocks to decode a full corresponding frame.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) This format is not yet part of the public kernel API and it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) is expected to change.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) * .. _V4L2-PIX-FMT-FWHT:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) - ``V4L2_PIX_FMT_FWHT``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) - 'FWHT'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) - Video elementary stream using a codec based on the Fast Walsh Hadamard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) Transform. This codec is implemented by the vicodec ('Virtual Codec')
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) driver. See the codec-fwht.h header for more details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) :ref:`VIDIOC_ENUM_FMT` reports ``V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) since the decoder can parse all the information from the raw bytestream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) * .. _V4L2-PIX-FMT-FWHT-STATELESS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) - ``V4L2_PIX_FMT_FWHT_STATELESS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) - 'SFWH'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) - Same format as V4L2_PIX_FMT_FWHT but requires stateless codec implementation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) See the :ref:`associated Codec Control IDs <v4l2-mpeg-fwht>`.