History

media: uapi: videodev2: Add support for AV1 stateful decoder

Introduce a new pixel format, V4L2_PIX_FMT_AV1, to the Video4Linux2(V4L2) API. This format is intended for AV1 bitstreams in stateful decoding/encoding workflows. The fourcc code 'AV10' is used to distinguish this format from the existing V4L2_PIX_FMT_AV1_FRAME, which is used for stateless AV1 decoder implementation.

Deepa Guthyappa Madivalara committed 11 months ago

Commit 406fc2e1 parent 17526c72 files · +9 −0Browse files

Unified · Split

2 files
  1. Documentation/userspace-api/media/v4l/pixfmt-compressed.rst +8 −0
  2. include/uapi/linux/videodev2.h +1 −0
Documentation/userspace-api/media/v4l/pixfmt-compressed.rst+8−0
@@ -275,6 +275,14 @@ Compressed Formats · 274 unmodified lines
275 of macroblocks to decode a full corresponding frame to the matching275 of macroblocks to decode a full corresponding frame to the matching
276 capture buffer.276 capture buffer.
277 277
278 * .. _V4L2-PIX-FMT-AV1:
279
280 - ``V4L2_PIX_FMT_AV1``
281 - 'AV01'
282 - AV1 compressed video frame. This format is adapted for implementing AV1
283 pipeline. The decoder implements stateful video decoder and expects one
284 temporal unit per buffer in OBU stream format.
285 The encoder generates one Temporal Unit per buffer.
278.. raw:: latex286.. raw:: latex
279 287
280 \normalsize288 \normalsize
include/uapi/linux/videodev2.h+1−0
@@ -775,6 +775,7 @@ struct v4l2_pix_format { · 774 unmodified lines
775#define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4') /* H264 parsed slices */775#define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4') /* H264 parsed slices */
776#define V4L2_PIX_FMT_HEVC_SLICE v4l2_fourcc('S', '2', '6', '5') /* HEVC parsed slices */776#define V4L2_PIX_FMT_HEVC_SLICE v4l2_fourcc('S', '2', '6', '5') /* HEVC parsed slices */
777#define V4L2_PIX_FMT_AV1_FRAME v4l2_fourcc('A', 'V', '1', 'F') /* AV1 parsed frame */777#define V4L2_PIX_FMT_AV1_FRAME v4l2_fourcc('A', 'V', '1', 'F') /* AV1 parsed frame */
778#define V4L2_PIX_FMT_AV1 v4l2_fourcc('A', 'V', '0', '1') /* AV1 */
778#define V4L2_PIX_FMT_SPK v4l2_fourcc('S', 'P', 'K', '0') /* Sorenson Spark */779#define V4L2_PIX_FMT_SPK v4l2_fourcc('S', 'P', 'K', '0') /* Sorenson Spark */
779#define V4L2_PIX_FMT_RV30 v4l2_fourcc('R', 'V', '3', '0') /* RealVideo 8 */780#define V4L2_PIX_FMT_RV30 v4l2_fourcc('R', 'V', '3', '0') /* RealVideo 8 */
780#define V4L2_PIX_FMT_RV40 v4l2_fourcc('R', 'V', '4', '0') /* RealVideo 9 & 10 */781#define V4L2_PIX_FMT_RV40 v4l2_fourcc('R', 'V', '4', '0') /* RealVideo 9 & 10 */