Lines Matching +full:capture +full:- +full:only
1 .. SPDX-License-Identifier: GPL-2.0
6 Memory-to-memory Stateless Video Decoder Interface
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
42 irrespective of the format currently set on the ``CAPTURE`` queue.
45 codec-specific capability controls (such as H.264 profiles) to the set
49 :c:func:`VIDIOC_ENUM_FMT` on the ``CAPTURE`` queue.
51 * The driver must return only the formats supported for the format currently
55 formats may depend on the value of some codec-dependent controls.
57 before querying the ``CAPTURE`` queue. Failure to do so will result in the
90 Changing the ``OUTPUT`` format may change the currently set ``CAPTURE``
91 format. The driver will derive a new ``CAPTURE`` format from the
93 parameters, etc. If the client needs a specific ``CAPTURE`` format,
97 etc.) required by the ``OUTPUT`` format to enumerate the ``CAPTURE`` formats.
99 3. Call :c:func:`VIDIOC_G_FMT` for ``CAPTURE`` queue to get the format for the
105 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
115 ``num_planes`` (for _MPLANE ``type`` only)
129 4. *[optional]* Enumerate ``CAPTURE`` formats via :c:func:`VIDIOC_ENUM_FMT` on
130 the ``CAPTURE`` queue. The client may use this ioctl to discover which
136 The driver will return only formats supported for the currently selected
141 resolutions 1920x1088 and lower, but only YUV for higher resolutions (due
148 5. *[optional]* Choose a different ``CAPTURE`` format than suggested via
149 :c:func:`VIDIOC_S_FMT` on ``CAPTURE`` queue. It is possible for the client to
156 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
167 to obtain up-to-date information about the buffers size and layout.
194 ``CAPTURE`` queue.
205 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
209 for ``CAPTURE`` buffers.
218 ``CAPTURE`` buffers for the current format, stream configuration and
225 9. Start streaming on both ``OUTPUT`` and ``CAPTURE`` queues via
243 format and might be affected by codec-specific extended controls, as stated in
249 buffer. This will result in the (potentially partially) decoded ``CAPTURE``
284 held ``CAPTURE`` buffer will be made available for dequeuing and the
285 current request will work on a new ``CAPTURE`` buffer.
287 2. Set the codec-specific controls for the decoding request, using
300 array must contain all the codec-specific controls required to decode
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
322 ``CAPTURE`` buffer will be produced for this request.
324 ``CAPTURE`` buffers must not be part of the request, and are queued
328 Runtime decoding errors are signaled by the dequeued ``CAPTURE`` buffers
337 buffer management: it only guarantees that dequeued ``CAPTURE`` buffers can be
341 A dequeued capture buffer can also be used as the reference frame of another
345 and storing it into the relevant member of a codec-dependent control structure.
354 guarantee that buffers queued to the ``CAPTURE`` queue are processed in queued
355 order, then user-space can take advantage of this guarantee and queue a
361 2. A sufficient number of ``CAPTURE`` buffers to cover all the decoded
378 The client is then free to ignore any returned ``CAPTURE`` buffer that comes
379 from the pre-seek position.
394 1. If the last submitted request resulted in a ``CAPTURE`` buffer being
396 last frame is not available on the ``CAPTURE`` queue. In this case, a
398 dequeue the held ``CAPTURE`` buffer.
403 3. Call :c:func:`VIDIOC_STREAMOFF` on both the ``OUTPUT`` and ``CAPTURE``
406 4. Free all ``CAPTURE`` buffers by calling :c:func:`VIDIOC_REQBUFS` on the
407 ``CAPTURE`` queue with a buffer count of zero.
412 picked on the ``CAPTURE`` queue.
417 If the last submitted request resulted in a ``CAPTURE`` buffer being
419 last frame is not available on the ``CAPTURE`` queue. In this case, a
421 dequeue the held ``CAPTURE`` buffer.