• Home
  • Raw
  • Download

Lines Matching +full:per +full:- +full:stream

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
10 H.264/HEVC stream, raw VP8/9 stream) and decodes them into raw video frames in
14 Performing software parsing, processing etc. of the stream in the driver in
25 2. The meaning of words "must", "may", "should", etc. is as per `RFC
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:
68 stream resolution in pixels aligned to codec and hardware requirements;
79 Good at sub-partitioning the picture into variable sized structures.
100 end of stream.
103 Instantaneous Decoder Refresh; a type of a keyframe in an H.264/HEVC-encoded
104 stream, which clears the list of earlier reference frames (DPBs).
112 block transforms (e.g. H.264, VP8, VP9); codec-specific, but for most of
133 of a new stream, or to resume decoding after a seek.
152 stream metadata
153 additional (non-visual) information contained inside encoded bytestream;
160 stream resolution of the visible picture, in pixels, to be used for
170 .. kernel-render:: DOT
183 node [shape = circle, label="End of Stream"] EoS;
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
268 coded resolution of the stream; required only if it cannot be parsed
269 from the stream for the given coded format; otherwise the decoder will
271 as soon as it can parse the actual coded resolution from the stream.
288 However, for coded formats that include stream resolution information,
289 after the decoder is done parsing the information from the stream, it will
356 in the stream.** Continue queuing/dequeuing bytestream buffers to/from the
371 * If the client has not set the coded resolution of the stream on its own,
374 queue will not return the real values for the stream until a
381 values applying to the just parsed stream, including queue formats,
386 A client capable of acquiring stream parameters from the bytestream on
388 to non-zero values matching the coded size of the stream, skip this step
390 rely on any driver queries regarding stream parameters, such as
392 from the stream yet. If the values configured by the client do not match
425 as per standard semantics; matching frame buffer format.
430 decoder for the current stream. The decoder should choose a
455 corresponds to the coded resolution of the stream.
460 will be equal to the visible resolution of the stream.
464 ``CAPTURE``; defaults to ``V4L2_SEL_TGT_CROP_DEFAULT``; read-only on
478 read-only on hardware without additional compose/scaling capabilities.
488 successfully parses the stream metadata. The client must not rely on the
492 the ``CAPTURE`` queue. Once the stream information is parsed and known, the
494 given stream and select one of them via :c:func:`VIDIOC_S_FMT`.
499 established coded format, as per the ``OUTPUT`` format and/or stream
513 discovering a resolution change within the same stream may switch
514 the stream into a lower resolution and :c:func:`VIDIOC_ENUM_FMT`
530 frame buffer resolution of the decoded stream; typically unchanged from
553 read-only on hardware without additional compose/scaling capabilities.
684 To allocate buffers for a format different than parsed from the stream
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
759 buffers are out-of-order compared to the ``OUTPUT`` buffers): ``CAPTURE``
765 by the stream may be read by the hardware even after they are dequeued.
790 * if a ``V4L2_EVENT_EOS`` event is pending, the `End of Stream` sequence needs
807 further operations on corresponding decoder file handle will return the -EIO
817 it may be affected as per normal decoder operation.
851 Some hardware is known to mishandle seeks to a non-resume point. Such an
878 the part of the stream decoded before the seek. The sequence must be handled
879 as per normal decoder operation.
935 * bit-depth of the bitstream has been changed.
939 1. After encountering a resolution change in the stream, the decoder sends a
946 values applying to the stream after the resolution change, including
964 with ``V4L2_BUF_FLAG_LAST`` will result in a -EPIPE error from
1047 marked with ``V4L2_BUF_FLAG_LAST`` will result in a -EPIPE error from
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.
1091 End of Stream
1094 If the decoder encounters an end of stream marking in the stream, the decoder
1123 return the -EBUSY error code for any such format change attempt.