Lines Matching +full:frame +full:- +full:master
1 .. SPDX-License-Identifier: GPL-2.0
6 Memory-to-Memory Stateful Video Decoder Interface
9 A stateful video decoder takes complete chunks of the bytestream (e.g. Annex-B
34 5. Single-planar API (see :ref:`planar-apis`) and applicable structures may be
35 used interchangeably with multi-planar API, unless specified otherwise,
44 .. _decoder-glossary:
79 Good at sub-partitioning the picture into variable sized structures.
83 coded format includes a feature of frame reordering; for decoders,
97 raw frame available for reference in further decoding steps.
103 Instantaneous Decoder Refresh; a type of a keyframe in an H.264/HEVC-encoded
107 an encoded frame that does not reference frames decoded earlier, i.e.
112 block transforms (e.g. H.264, VP8, VP9); codec-specific, but for most of
153 additional (non-visual) information contained inside encoded bytestream;
170 .. kernel-render:: DOT
186 qi -> Initialization [ label = "open()" ];
188 Initialization -> CaptureSetup [ label = "CAPTURE\nformat\nestablished" ];
190 CaptureSetup -> Stopped [ label = "CAPTURE\nbuffers\nready" ];
192 Decoding -> ResChange [ label = "Stream\nresolution\nchange" ];
193 Decoding -> Drain [ label = "V4L2_DEC_CMD_STOP" ];
194 Decoding -> EoS [ label = "EoS mark\nin the stream" ];
195 Decoding -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ];
196 Decoding -> Stopped [ label = "VIDIOC_STREAMOFF(CAPTURE)" ];
197 Decoding -> Decoding;
199 ResChange -> CaptureSetup [ label = "CAPTURE\nformat\nestablished" ];
200 ResChange -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ];
202 EoS -> Drain [ label = "Implicit\ndrain" ];
204 Drain -> Stopped [ label = "All CAPTURE\nbuffers dequeued\nor\nVIDIOC_STREAMOFF(CAPTURE)" ];
205 Drain -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ];
207 Seek -> Decoding [ label = "VIDIOC_STREAMON(OUTPUT)" ];
208 Seek -> Initialization [ label = "VIDIOC_REQBUFS(OUTPUT, 0)" ];
210 Stopped -> Decoding [ label = "V4L2_DEC_CMD_START\nor\nVIDIOC_STREAMON(CAPTURE)" ];
211 Stopped -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ];
224 In particular whether or not the decoder has a full-fledged bytestream
246 will include all possible frame buffer resolutions supported by the
285 * The ``CAPTURE`` format will be updated with an appropriate frame buffer
368 first frame, it will not be returned to the client, until the
369 initialization sequence completes and the frame is decoded.
388 to non-zero values matching the coded size of the stream, skip this step
416 frame buffer resolution for the decoded frames.
425 as per standard semantics; matching frame buffer format.
449 the visible rectangle; it must fit within the frame buffer resolution
464 ``CAPTURE``; defaults to ``V4L2_SEL_TGT_CROP_DEFAULT``; read-only on
469 frame can be composed into; equal to ``V4L2_SEL_TGT_CROP`` if the
477 frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``;
478 read-only on hardware without additional compose/scaling capabilities.
530 frame buffer resolution of the decoded stream; typically unchanged from
552 frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``;
553 read-only on hardware without additional compose/scaling capabilities.
558 the visible rectangle; it must fit within the frame buffer resolution
709 format and may be affected by codec-specific extended controls, as stated in
713 buffer queues and memory-to-memory devices. In addition, the order of decoded
716 format, e.g. frame reordering.
727 on ``CAPTURE`` (if the encoded data contained more than one frame, or if
728 returning a decoded frame allowed the decoder to return a frame that
759 buffers are out-of-order compared to the ``OUTPUT`` buffers): ``CAPTURE``
774 identify frames. Thus, if the backing memory of a reference frame is
776 decode a new frame into it while it is still in use, resulting in corruption
807 further operations on corresponding decoder file handle will return the -EIO
851 Some hardware is known to mishandle seeks to a non-resume point. Such an
860 over a change of SPS/PPS. Even though the target frame could be a
903 To determine the CAPTURE buffer containing the first decoded frame after the
925 The sequence starts when the decoder detects a coded frame with one or more of
935 * bit-depth of the bitstream has been changed.
959 contain a decoded frame.
964 with ``V4L2_BUF_FLAG_LAST`` will result in a -EPIPE error from
1042 as it does not contain a decoded frame.
1047 marked with ``V4L2_BUF_FLAG_LAST`` will result in a -EPIPE error from
1058 event when the last frame has been decoded and all frames are ready to be
1067 * ``V4L2_DEC_CMD_START`` - the decoder will not be reset and will resume
1071 ``CAPTURE`` queue - the decoder will resume the operation normally,
1076 ``OUTPUT`` queue - any pending source buffers will be returned to the
1086 will fail with -EBUSY error code if attempted.
1123 return the -EBUSY error code for any such format change attempt.
1126 ``OUTPUT`` queue and the ``OUTPUT`` queue is the master that governs the