• Home
  • Raw
  • Download

Lines Matching +full:per +full:- +full:queue

1 .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
6 Memory-to-Memory Stateful Video Encoder Interface
12 further post-processing by the client.
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,
42 queue containing data that resulted from processing buffer A.
47 Refer to :ref:`decoder-glossary`.
52 .. kernel-render:: DOT
65 qi -> Initialization [ label = "open()" ];
67 Initialization -> Encoding [ label = "Both queues streaming" ];
69 Encoding -> Drain [ label = "V4L2_ENC_CMD_STOP" ];
70 Encoding -> Reset [ label = "VIDIOC_STREAMOFF(CAPTURE)" ];
71 Encoding -> Stopped [ label = "VIDIOC_STREAMOFF(OUTPUT)" ];
72 Encoding -> Encoding;
74 Drain -> Stopped [ label = "All CAPTURE\nbuffers dequeued\nor\nVIDIOC_STREAMOFF(OUTPUT)" ];
75 Drain -> Reset [ label = "VIDIOC_STREAMOFF(CAPTURE)" ];
77 Reset -> Encoding [ label = "VIDIOC_STREAMON(CAPTURE)" ];
78 Reset -> Initialization [ label = "VIDIOC_REQBUFS(OUTPUT, 0)" ];
80 Stopped -> Encoding [ label = "V4L2_ENC_CMD_START\nor\nVIDIOC_STREAMON(OUTPUT)" ];
81 Stopped -> Reset [ label = "VIDIOC_STREAMOFF(CAPTURE)" ];
146 1. Set the coded format on the ``CAPTURE`` queue via :c:func:`VIDIOC_S_FMT`.
161 ignored (read-only).
173 ``OUTPUT`` format, selection rectangles, etc. (read-only).
196 the ``CAPTURE`` queue.
201 3. Set the raw source format on the ``OUTPUT`` queue via
232 4. Set the raw frame interval on the ``OUTPUT`` queue via
234 ``CAPTURE`` queue to the same value.
257 to 1/24 (or 24 frames per second) will produce a coded video stream
259 ``OUTPUT`` queue is just a hint, the application may provide raw
264 changed to a different value. This is useful for off-line encoding
271 formats this is the time per two fields, since a frame consists of
278 queue. Ideally these would be independent settings, but that would
281 5. **Optional** Set the coded frame interval on the ``CAPTURE`` queue via
284 the case for off-line encoding. Support for this feature is signalled
285 by the :ref:`V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL <fmtdesc-flags>` format flag.
308 ``CAPTURE`` queue, that depends on how fast the encoder is and how
309 fast raw frames are queued on the ``OUTPUT`` queue.
314 formats this is the time per two fields, since a frame consists of
320 the desired coded frame interval for the ``OUTPUT`` queue.
326 :c:func:`VIDIOC_S_SELECTION` on the ``OUTPUT`` queue if it is desired
434 If the client stops the ``CAPTURE`` queue during the encode process and then
455 format and may be affected by codec-specific extended controls, as stated
459 queues and memory-to-memory devices. In addition, the order of encoded frames
460 dequeued from the ``CAPTURE`` queue may differ from the order of queuing raw
461 frames to the ``OUTPUT`` queue, due to properties of the selected coded format,
478 * buffers may become available on the ``CAPTURE`` queue without additional
502 ``CAPTURE`` buffers are out-of-order compared to the ``OUTPUT`` buffers):
532 further operations on corresponding encoder file handle will return the -EIO
541 parameters at any time. The availability of parameters is encoder-specific
544 The ability to change each parameter during encoding is encoder-specific, as
545 per the standard semantics of the V4L2 control interface. The client may
547 -EBUSY error code, the ``CAPTURE`` queue needs to be stopped for the
551 The timing of parameter updates is encoder-specific, as per the standard
554 (:ref:`media-request-api`) should be considered, if supported by the encoder.
603 marked with ``V4L2_BUF_FLAG_LAST`` will result in a -EPIPE error from
623 * ``V4L2_ENC_CMD_START`` - the encoder will not be reset and will resume
627 ``CAPTURE`` queue - the encoder will be reset (see the `Reset` sequence)
631 ``OUTPUT`` queue - the encoder will resume operation normally, however any
632 source frames queued to the ``OUTPUT`` queue between ``V4L2_ENC_CMD_STOP``
642 will fail with -EBUSY error code if attempted.
646 * In case of no buffer in the ``OUTPUT`` queue at the time the
651 * In case of no buffer in the ``CAPTURE`` queue at the time the drain
656 * If :c:func:`VIDIOC_STREAMOFF` is called on the ``CAPTURE`` queue in the
660 * If :c:func:`VIDIOC_STREAMOFF` is called on the ``OUTPUT`` queue in the
683 1. Perform the `Drain` sequence to ensure all the in-flight encoding finishes
686 2. Stop streaming on the ``CAPTURE`` queue via :c:func:`VIDIOC_STREAMOFF`. This
690 3. Start streaming on the ``CAPTURE`` queue via :c:func:`VIDIOC_STREAMON` and
706 1. Setting the format on the ``CAPTURE`` queue may change the set of formats
707 supported/advertised on the ``OUTPUT`` queue. In particular, it also means
711 2. Enumerating formats on the ``OUTPUT`` queue always returns only formats
714 3. Setting the format on the ``OUTPUT`` queue does not change the list of
715 formats available on the ``CAPTURE`` queue. An attempt to set the ``OUTPUT``
720 4. Enumerating formats on the ``CAPTURE`` queue always returns the full set of
724 the client must not change the format on the ``CAPTURE`` queue. Drivers will
725 return the -EBUSY error code for any such format change attempt.
728 ``CAPTURE`` queue and the ``CAPTURE`` queue is the master that governs the
729 set of supported formats for the ``OUTPUT`` queue.