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