^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) .. c:namespace:: DTV.video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) .. _VIDEO_COMMAND:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) =============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) VIDEO_COMMAND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) =============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) ----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) VIDEO_COMMAND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) .. attention:: This ioctl is deprecated.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) Synopsis
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) .. c:macro:: VIDEO_COMMAND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) ``int ioctl(int fd, VIDEO_COMMAND, struct video_command *cmd)``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) Arguments
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) ---------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) .. flat-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) :header-rows: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) - .. row 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) - int fd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) - File descriptor returned by a previous call to open().
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) - .. row 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) - int request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) - Equals VIDEO_COMMAND for this command.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) - .. row 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) - struct video_command \*cmd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) - Commands the decoder.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) this ioctl has been replaced by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) :ref:`VIDIOC_DECODER_CMD` ioctl.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) This ioctl commands the decoder. The ``video_command`` struct is a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) subset of the ``v4l2_decoder_cmd`` struct, so refer to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) :ref:`VIDIOC_DECODER_CMD` documentation for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) .. c:type:: video_command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) .. code-block:: c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) /* The structure must be zeroed before use by the application
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) This ensures it can be extended safely in the future. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) struct video_command {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) __u32 cmd;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) __u32 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) union {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) __u64 pts;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) } stop;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) /* 0 or 1000 specifies normal speed,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 1 specifies forward single stepping,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) -1 specifies backward single stepping,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) >1: playback at speed/1000 of the normal speed,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) <-1: reverse playback at (-speed/1000) of the normal speed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) __s32 speed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) __u32 format;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) } play;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) __u32 data[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) } raw;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) Return Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) On success 0 is returned, on error -1 and the ``errno`` variable is set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) appropriately. The generic error codes are described at the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) :ref:`Generic Error Codes <gen-errors>` chapter.