Lines Matching +full:video +full:- +full:decoder
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
13 VIDIOC_DECODER_CMD - VIDIOC_TRY_DECODER_CMD - Execute an decoder command
38 These ioctls control an audio/video (usually MPEG-) decoder.
39 ``VIDIOC_DECODER_CMD`` sends a command to the decoder,
50 call sends an implicit START command to the decoder if it has not been
55 command to the decoder, and all buffered data is discarded. Applies to both
60 (as further documented in :ref:`decoder`).
68 .. flat-table:: struct v4l2_decoder_cmd
69 :header-rows: 0
70 :stub-columns: 0
73 * - __u32
74 - ``cmd``
75 -
76 - The decoder command, see :ref:`decoder-cmds`.
77 * - __u32
78 - ``flags``
79 -
80 - Flags to go with the command. If no flags are defined for this
82 * - union {
83 - (anonymous)
84 * - struct
85 - ``start``
86 -
87 - Structure containing additional data for the
89 * -
90 - __s32
91 - ``speed``
92 - Playback speed and direction. The playback speed is defined as
94 Negative numbers denote reverse playback, so -1000 does reverse
95 playback at normal speed. Speeds -1, 0 and 1 have special
97 of 1 steps just one frame forward, a speed of -1 steps just one
99 * -
100 - __u32
101 - ``format``
102 - Format restrictions. This field is set by the driver, not the
105 the decoder operates on full GOPs (*Group Of Pictures*). This is
106 usually the case for reverse playback: the decoder needs full
108 reverse playback the application must feed the decoder the last
109 GOP in the video file, then the GOP before that, etc. etc.
110 * - struct
111 - ``stop``
112 -
113 - Structure containing additional data for the ``V4L2_DEC_CMD_STOP``
115 * -
116 - __u64
117 - ``pts``
118 - Stop playback at this ``pts`` or immediately if the playback is
121 * - struct
122 - ``raw``
123 * -
124 - __u32
125 - ``data``\ [16]
126 - Reserved for future extensions. Drivers and applications must set
128 * - }
129 -
136 .. _decoder-cmds:
138 .. flat-table:: Decoder Commands
139 :header-rows: 0
140 :stub-columns: 0
143 * - ``V4L2_DEC_CMD_START``
144 - 0
145 - Start the decoder. When the decoder is already running or paused,
147 calling ``V4L2_DEC_CMD_START`` when the decoder was paused will
148 *not* resume the decoder. You have to explicitly call
151 muted when playing back at a non-standard speed.
153 For a device implementing the :ref:`decoder`, once the drain sequence
158 decoder in case of an implicit stop initiated by the decoder itself,
160 :ref:`decoder` for more details.
161 * - ``V4L2_DEC_CMD_STOP``
162 - 1
163 - Stop the decoder. When the decoder is already stopped, this
165 ``V4L2_DEC_CMD_STOP_TO_BLACK`` is set, then the decoder will set
168 ``V4L2_DEC_CMD_STOP_IMMEDIATELY`` is set, then the decoder stops
173 For a device implementing the :ref:`decoder`, the command will initiate
174 the drain sequence as documented in :ref:`decoder`. No flags or other
178 * - ``V4L2_DEC_CMD_PAUSE``
179 - 2
180 - Pause the decoder. When the decoder has not been started yet, the
181 driver will return an ``EPERM`` error code. When the decoder is
184 decoder output to black when paused.
185 * - ``V4L2_DEC_CMD_RESUME``
186 - 3
187 - Resume decoding after a PAUSE command. When the decoder has not
189 the decoder is already running, this command does nothing. No
191 * - ``V4L2_DEC_CMD_FLUSH``
192 - 4
193 - Flush any held capture buffers. Only valid for stateless decoders.
204 On success 0 is returned, on error -1 and the ``errno`` variable is set
206 :ref:`Generic Error Codes <gen-errors>` chapter.
209 A drain sequence of a device implementing the :ref:`decoder` is still in
210 progress. It is not allowed to issue another decoder command until it
217 The application sent a PAUSE or RESUME command when the decoder was