Lines Matching full:capture

41 7. Given an ``OUTPUT`` buffer A, then A' represents a buffer on the ``CAPTURE``
49 CAPTURE
54 into ``CAPTURE`` buffers.
85 encoders ``CAPTURE`` buffers must be returned by the encoder in decode order.
88 data resulting from the decode process; see ``CAPTURE``.
93 ``CAPTURE`` buffers must be returned by the decoder in display order.
178 node [shape = circle, label="Capture\nsetup"] CaptureSetup;
188 Initialization -> CaptureSetup [ label = "CAPTURE\nformat\nestablished" ];
190 CaptureSetup -> Stopped [ label = "CAPTURE\nbuffers\nready" ];
196 Decoding -> Stopped [ label = "VIDIOC_STREAMOFF(CAPTURE)" ];
199 ResChange -> CaptureSetup [ label = "CAPTURE\nformat\nestablished" ];
204 Drain -> Stopped [ label = "All CAPTURE\nbuffers dequeued\nor\nVIDIOC_STREAMOFF(CAPTURE)" ];
210 Stopped -> Decoding [ label = "V4L2_DEC_CMD_START\nor\nVIDIOC_STREAMON(CAPTURE)" ];
221 format set on ``CAPTURE``.
228 :c:func:`VIDIOC_ENUM_FMT` on ``CAPTURE``.
235 enumerate formats on ``CAPTURE``.
285 * The ``CAPTURE`` format will be updated with an appropriate frame buffer
290 update the ``CAPTURE`` format with new values and signal a source change
296 Changing the ``OUTPUT`` format may change the currently set ``CAPTURE``
297 format. How the new ``CAPTURE`` format is determined is up to the decoder
359 required metadata to configure the ``CAPTURE`` queue are found. This is
373 :c:func:`VIDIOC_TRY_FMT` or :c:func:`VIDIOC_REQBUFS` on the ``CAPTURE``
389 and continue with the `Capture Setup` sequence. However, it must not
400 5. Continue with the `Capture Setup` sequence.
402 Capture Setup
405 1. Call :c:func:`VIDIOC_G_FMT` on the ``CAPTURE`` queue to get format for the
411 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
441 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
450 returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``.
452 * The following selection targets are supported on ``CAPTURE``:
458 the rectangle covering the part of the ``CAPTURE`` buffer that
464 ``CAPTURE``; defaults to ``V4L2_SEL_TGT_CROP_DEFAULT``; read-only on
468 the maximum rectangle within a ``CAPTURE`` buffer, which the cropped
476 the rectangle inside a ``CAPTURE`` buffer into which the cropped
481 the rectangle inside a ``CAPTURE`` buffer which is overwritten by the
491 3. **Optional.** Enumerate ``CAPTURE`` formats via :c:func:`VIDIOC_ENUM_FMT` on
492 the ``CAPTURE`` queue. Once the stream information is parsed and known, the
517 4. **Optional.** Set the ``CAPTURE`` format via :c:func:`VIDIOC_S_FMT` on the
518 ``CAPTURE`` queue. The client may choose a different format than
524 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
534 * Setting the ``CAPTURE`` format will reset the compose selection rectangles
539 the ``CAPTURE`` queue if it is desired and if the decoder has compose and/or
545 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
551 the rectangle inside a ``CAPTURE`` buffer into which the cropped
559 returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``.
581 * if the ``CAPTURE`` queue is streaming, call :c:func:`VIDIOC_DECODER_CMD`
584 * if the ``CAPTURE`` queue is not streaming, call :c:func:`VIDIOC_STREAMON`
585 on the ``CAPTURE`` queue.
591 7. **If the** ``CAPTURE`` **queue is streaming,** keep queuing and dequeuing
592 buffers on the ``CAPTURE`` queue until a buffer marked with the
595 8. **If the** ``CAPTURE`` **queue is streaming,** call :c:func:`VIDIOC_STREAMOFF`
596 on the ``CAPTURE`` queue to stop streaming.
604 9. **If the** ``CAPTURE`` **queue has buffers allocated,** free the ``CAPTURE``
613 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
618 10. Allocate ``CAPTURE`` buffers via :c:func:`VIDIOC_REQBUFS` on the
619 ``CAPTURE`` queue.
627 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
651 Alternatively, :c:func:`VIDIOC_CREATE_BUFS` on the ``CAPTURE`` queue can be
653 allocating buffers larger than the current ``CAPTURE`` format, future
662 a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.
689 let the decoder configure the ``CAPTURE`` format appropriately,
691 * query the ``CAPTURE`` format using :c:func:`VIDIOC_G_FMT` and save it
697 11. Call :c:func:`VIDIOC_STREAMON` on the ``CAPTURE`` queue to start decoding
703 This state is reached after the `Capture Setup` sequence finishes successfully.
714 frames dequeued from the ``CAPTURE`` queue may differ from the order of queuing
718 The client must not assume any direct relationship between ``CAPTURE``
723 on ``CAPTURE`` (e.g. if it does not contain encoded data, or if only
727 on ``CAPTURE`` (if the encoded data contained more than one frame, or if
732 ``CAPTURE`` later into decode process, and/or after processing further
736 * buffers may become available on the ``CAPTURE`` queue without additional
743 To allow matching decoded ``CAPTURE`` buffers with ``OUTPUT`` buffers they
746 ``CAPTURE`` buffer(s), which resulted from decoding that ``OUTPUT`` buffer
750 one ``CAPTURE`` buffer, the following cases are defined:
752 * one ``OUTPUT`` buffer generates multiple ``CAPTURE`` buffers: the same
753 ``OUTPUT`` timestamp will be copied to multiple ``CAPTURE`` buffers.
755 * multiple ``OUTPUT`` buffers generate one ``CAPTURE`` buffer: timestamp of
758 * the decoding order differs from the display order (i.e. the ``CAPTURE``
759 buffers are out-of-order compared to the ``OUTPUT`` buffers): ``CAPTURE``
764 The backing memory of ``CAPTURE`` buffers that are used as reference frames
767 ``CAPTURE`` queue is streaming. Failure to observe this may result in
771 client should make sure that each ``CAPTURE`` buffer is always queued with
772 the same backing memory for as long as the ``CAPTURE`` queue is streaming.
781 ``CAPTURE`` buffers that originated from all the ``OUTPUT`` buffers processed
799 * the CAPTURE buffer that contains the results of the failed decode operation
816 The seek does not require any specific operation on the ``CAPTURE`` queue, but
849 should not produce any decoded frames into ``CAPTURE`` buffers.
853 being made available on the ``CAPTURE`` queue. Drivers must ensure that
871 4. After a resume point is found, the decoder will start returning ``CAPTURE``
883 It is not specified when the ``CAPTURE`` queue starts producing buffers
887 The decoder may return a number of remaining ``CAPTURE`` buffers containing
893 queued before the seek sequence may have matching ``CAPTURE`` buffers
899 any of the following results on the ``CAPTURE`` queue is allowed:
903 To determine the CAPTURE buffer containing the first decoded frame after the
904 seek, the client may observe the timestamps to match the CAPTURE and OUTPUT
911 ``CAPTURE`` queue too to discard decoded, but not yet dequeued buffers.
963 Any attempt to dequeue more ``CAPTURE`` buffers beyond the buffer marked
978 ``CAPTURE`` queue, or a call to :c:func:`VIDIOC_DECODER_CMD` with the
981 2. Continue with the `Capture Setup` sequence.
989 In principle, the ``OUTPUT`` queue operates separately from the ``CAPTURE``
1000 ``CAPTURE`` buffers are given to the client, the client must follow the drain
1020 The sequence can be only initiated if both ``OUTPUT`` and ``CAPTURE``
1035 * queuing and dequeuing ``CAPTURE`` buffers, until a buffer marked with the
1046 Any attempt to dequeue more ``CAPTURE`` buffers beyond the buffer
1063 are dequeued and the last ``CAPTURE`` buffer is dequeued, the decoder is
1071 ``CAPTURE`` queue - the decoder will resume the operation normally,
1072 however any ``CAPTURE`` buffers still in the queue will be returned to the
1083 issuing :c:func:`VIDIOC_STREAMOFF` on any of the ``OUTPUT`` or ``CAPTURE``
1105 supported/advertised on the ``CAPTURE`` queue. In particular, it also means
1106 that the ``CAPTURE`` format may be reset and the client must not rely on the
1109 2. Enumerating formats on the ``CAPTURE`` queue always returns only formats
1112 3. Setting the format on the ``CAPTURE`` queue does not change the list of
1113 formats available on the ``OUTPUT`` queue. An attempt to set a ``CAPTURE``
1115 will result in the decoder adjusting the requested ``CAPTURE`` format to a
1119 supported coded formats, irrespectively of the current ``CAPTURE`` format.
1121 5. While buffers are allocated on any of the ``OUTPUT`` or ``CAPTURE`` queues,
1127 set of supported formats for the ``CAPTURE`` queue.