Lines Matching +full:frame +full:- +full:number
1 .. SPDX-License-Identifier: GPL-2.0
6 Memory-to-memory Stateless Video Decoder Interface
10 between processed frames. This means that each frame is decoded independently
18 This section describes how user-space ("the client") is expected to communicate
24 Stateless decoders make use of the :ref:`media-request-api`. A stateless
30 frame may be the result of several decode requests (for instance, H.264 streams
31 with multiple slices per frame). Decoders that support such formats must also
45 codec-specific capability controls (such as H.264 profiles) to the set
55 formats may depend on the value of some codec-dependent controls.
110 frame buffer resolution for the decoded frames.
116 number of planes for pixelformat.
119 as per standard semantics; matching frame buffer format.
162 frame buffer resolution of the decoded stream; typically unchanged from
167 to obtain up-to-date information about the buffers size and layout.
175 requested number of buffers to allocate; greater than zero.
186 actual number of buffers allocated.
189 minimum of required number of ``OUTPUT`` buffers for the given format and
191 to get the actual number of buffers allocated.
199 requested number of buffers to allocate; greater than zero. The client
200 is responsible for deducing the minimum number of buffers required
202 into account) and pass an equal or bigger number.
214 adjusted to allocated number of buffers, in case the codec requires
217 * The driver must adjust count to the minimum of required number of
220 returns to get the number of buffers allocated.
231 For each frame, the client is responsible for submitting at least one request to
236 corresponds to one frame worth of encoded data, but some formats may allow (or
243 format and might be affected by codec-specific extended controls, as stated in
246 If there is a possibility that the decoded frame will require one or more
253 A typical frame would thus be decoded using the following sequence:
267 number of bytes taken by the encoded data frame in the buffer.
272 to produce a fully decoded frame, then
279 must be set to a unique value per frame. This value will be propagated
280 into the decoded frame's buffer and can also be used to use this frame
282 frame, then the timestamps of all the ``OUTPUT`` buffers for a given
283 frame must be identical. If the timestamp changes, then the currently
287 2. Set the codec-specific controls for the decoding request, using
300 array must contain all the codec-specific controls required to decode
301 a frame.
319 :c:func:`MEDIA_REQUEST_IOC_QUEUE` will return ``-ENOENT``. If more than one
320 ``OUTPUT`` buffer is queued, then it will return ``-EINVAL``.
321 :c:func:`MEDIA_REQUEST_IOC_QUEUE` returning non-zero means that no
329 carrying the ``V4L2_BUF_FLAG_ERROR`` flag. If a decoded reference frame has an
341 A dequeued capture buffer can also be used as the reference frame of another
344 A frame is specified as reference by converting its timestamp into nanoseconds,
345 and storing it into the relevant member of a codec-dependent control structure.
347 conversion. The timestamp of a frame can be used to reference it as soon as all
350 A decoded buffer containing a reference frame must not be reused as a decoding
355 order, then user-space can take advantage of this guarantee and queue a
358 1. All the requests for frames affected by the reference frame have been
361 2. A sufficient number of ``CAPTURE`` buffers to cover all the decoded
366 can e.g. close the DMABUF file descriptors of reference frame buffers if it
379 from the pre-seek position.
396 last frame is not available on the ``CAPTURE`` queue. In this case, a
419 last frame is not available on the ``CAPTURE`` queue. In this case, a