Merge branch 'master' into next
[sfrench/cifs-2.6.git] / Documentation / DocBook / dvb / video.xml
1 <title>DVB Video Device</title>
2 <para>The DVB video device controls the MPEG2 video decoder of the DVB hardware. It
3 can be accessed through <emphasis role="tt">/dev/dvb/adapter0/video0</emphasis>. Data types and and
4 ioctl definitions can be accessed by including <emphasis role="tt">linux/dvb/video.h</emphasis> in your
5 application.
6 </para>
7 <para>Note that the DVB video device only controls decoding of the MPEG video stream, not
8 its presentation on the TV or computer screen. On PCs this is typically handled by an
9 associated video4linux device, e.g. <emphasis role="tt">/dev/video</emphasis>, which allows scaling and defining output
10 windows.
11 </para>
12 <para>Some DVB cards don&#8217;t have their own MPEG decoder, which results in the omission of
13 the audio and video device as well as the video4linux device.
14 </para>
15 <para>The ioctls that deal with SPUs (sub picture units) and navigation packets are only
16 supported on some MPEG decoders made for DVD playback.
17 </para>
18 <section id="video_types">
19 <title>Video Data Types</title>
20
21 <section id="video_format_t">
22 <title>video_format_t</title>
23 <para>The <emphasis role="tt">video_format_t</emphasis> data type defined by
24 </para>
25 <programlisting>
26  typedef enum {
27          VIDEO_FORMAT_4_3,
28          VIDEO_FORMAT_16_9
29  } video_format_t;
30 </programlisting>
31 <para>is used in the VIDEO_SET_FORMAT function (??) to tell the driver which aspect ratio
32 the output hardware (e.g. TV) has. It is also used in the data structures video_status
33 (??) returned by VIDEO_GET_STATUS (??) and video_event (??) returned by
34 VIDEO_GET_EVENT (??) which report about the display format of the current video
35 stream.
36 </para>
37 </section>
38
39 <section id="video_display_format_t">
40 <title>video_display_format_t</title>
41 <para>In case the display format of the video stream and of the display hardware differ the
42 application has to specify how to handle the cropping of the picture. This can be done using
43 the VIDEO_SET_DISPLAY_FORMAT call (??) which accepts
44 </para>
45 <programlisting>
46  typedef enum {
47          VIDEO_PAN_SCAN,
48          VIDEO_LETTER_BOX,
49          VIDEO_CENTER_CUT_OUT
50  } video_display_format_t;
51 </programlisting>
52 <para>as argument.
53 </para>
54 </section>
55
56 <section id="video_stream_source">
57 <title>video stream source</title>
58 <para>The video stream source is set through the VIDEO_SELECT_SOURCE call and can take
59 the following values, depending on whether we are replaying from an internal (demuxer) or
60 external (user write) source.
61 </para>
62 <programlisting>
63  typedef enum {
64          VIDEO_SOURCE_DEMUX,
65          VIDEO_SOURCE_MEMORY
66  } video_stream_source_t;
67 </programlisting>
68 <para>VIDEO_SOURCE_DEMUX selects the demultiplexer (fed either by the frontend or the
69 DVR device) as the source of the video stream. If VIDEO_SOURCE_MEMORY
70 is selected the stream comes from the application through the <emphasis role="tt">write()</emphasis> system
71 call.
72 </para>
73 </section>
74
75 <section id="video_play_state">
76 <title>video play state</title>
77 <para>The following values can be returned by the VIDEO_GET_STATUS call representing the
78 state of video playback.
79 </para>
80 <programlisting>
81  typedef enum {
82          VIDEO_STOPPED,
83          VIDEO_PLAYING,
84          VIDEO_FREEZED
85  } video_play_state_t;
86 </programlisting>
87 </section>
88
89 <section id="video_event">
90 <title>struct video_event</title>
91 <para>The following is the structure of a video event as it is returned by the VIDEO_GET_EVENT
92 call.
93 </para>
94 <programlisting>
95  struct video_event {
96          int32_t type;
97          time_t timestamp;
98          union {
99                  video_format_t video_format;
100          } u;
101  };
102 </programlisting>
103 </section>
104
105 <section id="video_status">
106 <title>struct video_status</title>
107 <para>The VIDEO_GET_STATUS call returns the following structure informing about various
108 states of the playback operation.
109 </para>
110 <programlisting>
111  struct video_status {
112          boolean video_blank;
113          video_play_state_t play_state;
114          video_stream_source_t stream_source;
115          video_format_t video_format;
116          video_displayformat_t display_format;
117  };
118 </programlisting>
119 <para>If video_blank is set video will be blanked out if the channel is changed or if playback is
120 stopped. Otherwise, the last picture will be displayed. play_state indicates if the video is
121 currently frozen, stopped, or being played back. The stream_source corresponds to the seleted
122 source for the video stream. It can come either from the demultiplexer or from memory.
123 The video_format indicates the aspect ratio (one of 4:3 or 16:9) of the currently
124 played video stream. Finally, display_format corresponds to the selected cropping
125 mode in case the source video format is not the same as the format of the output
126 device.
127 </para>
128 </section>
129
130 <section id="video_still_picture">
131 <title>struct video_still_picture</title>
132 <para>An I-frame displayed via the VIDEO_STILLPICTURE call is passed on within the
133 following structure.
134 </para>
135 <programlisting>
136  /&#x22C6; pointer to and size of a single iframe in memory &#x22C6;/
137  struct video_still_picture {
138          char &#x22C6;iFrame;
139          int32_t size;
140  };
141 </programlisting>
142 </section>
143
144 <section id="video_caps">
145 <title>video capabilities</title>
146 <para>A call to VIDEO_GET_CAPABILITIES returns an unsigned integer with the following
147 bits set according to the hardwares capabilities.
148 </para>
149 <programlisting>
150  /&#x22C6; bit definitions for capabilities: &#x22C6;/
151  /&#x22C6; can the hardware decode MPEG1 and/or MPEG2? &#x22C6;/
152  #define VIDEO_CAP_MPEG1   1
153  #define VIDEO_CAP_MPEG2   2
154  /&#x22C6; can you send a system and/or program stream to video device?
155     (you still have to open the video and the audio device but only
156      send the stream to the video device) &#x22C6;/
157  #define VIDEO_CAP_SYS     4
158  #define VIDEO_CAP_PROG    8
159  /&#x22C6; can the driver also handle SPU, NAVI and CSS encoded data?
160     (CSS API is not present yet) &#x22C6;/
161  #define VIDEO_CAP_SPU    16
162  #define VIDEO_CAP_NAVI   32
163  #define VIDEO_CAP_CSS    64
164 </programlisting>
165 </section>
166
167 <section id="video_system">
168 <title>video system</title>
169 <para>A call to VIDEO_SET_SYSTEM sets the desired video system for TV output. The
170 following system types can be set:
171 </para>
172 <programlisting>
173  typedef enum {
174           VIDEO_SYSTEM_PAL,
175           VIDEO_SYSTEM_NTSC,
176           VIDEO_SYSTEM_PALN,
177           VIDEO_SYSTEM_PALNc,
178           VIDEO_SYSTEM_PALM,
179           VIDEO_SYSTEM_NTSC60,
180           VIDEO_SYSTEM_PAL60,
181           VIDEO_SYSTEM_PALM60
182  } video_system_t;
183 </programlisting>
184 </section>
185
186 <section id="video_highlight">
187 <title>struct video_highlight</title>
188 <para>Calling the ioctl VIDEO_SET_HIGHLIGHTS posts the SPU highlight information. The
189 call expects the following format for that information:
190 </para>
191 <programlisting>
192  typedef
193  struct video_highlight {
194          boolean active;      /&#x22C6;    1=show highlight, 0=hide highlight &#x22C6;/
195          uint8_t contrast1;   /&#x22C6;    7- 4  Pattern pixel contrast &#x22C6;/
196                               /&#x22C6;    3- 0  Background pixel contrast &#x22C6;/
197          uint8_t contrast2;   /&#x22C6;    7- 4  Emphasis pixel-2 contrast &#x22C6;/
198                               /&#x22C6;    3- 0  Emphasis pixel-1 contrast &#x22C6;/
199          uint8_t color1;      /&#x22C6;    7- 4  Pattern pixel color &#x22C6;/
200                               /&#x22C6;    3- 0  Background pixel color &#x22C6;/
201          uint8_t color2;      /&#x22C6;    7- 4  Emphasis pixel-2 color &#x22C6;/
202                               /&#x22C6;    3- 0  Emphasis pixel-1 color &#x22C6;/
203          uint32_t ypos;       /&#x22C6;   23-22  auto action mode &#x22C6;/
204                               /&#x22C6;   21-12  start y &#x22C6;/
205                               /&#x22C6;    9- 0  end y &#x22C6;/
206          uint32_t xpos;       /&#x22C6;   23-22  button color number &#x22C6;/
207                               /&#x22C6;   21-12  start x &#x22C6;/
208                               /&#x22C6;    9- 0  end x &#x22C6;/
209  } video_highlight_t;
210 </programlisting>
211
212 </section>
213 <section id="video_spu">
214 <title>video SPU</title>
215 <para>Calling VIDEO_SET_SPU deactivates or activates SPU decoding, according to the
216 following format:
217 </para>
218 <programlisting>
219  typedef
220  struct video_spu {
221          boolean active;
222          int stream_id;
223  } video_spu_t;
224 </programlisting>
225
226 </section>
227 <section id="video_spu_palette">
228 <title>video SPU palette</title>
229 <para>The following structure is used to set the SPU palette by calling VIDEO_SPU_PALETTE:
230 </para>
231 <programlisting>
232  typedef
233  struct video_spu_palette{
234          int length;
235          uint8_t &#x22C6;palette;
236  } video_spu_palette_t;
237 </programlisting>
238
239 </section>
240 <section id="video_navi_pack">
241 <title>video NAVI pack</title>
242 <para>In order to get the navigational data the following structure has to be passed to the ioctl
243 VIDEO_GET_NAVI:
244 </para>
245 <programlisting>
246  typedef
247  struct video_navi_pack{
248          int length;         /&#x22C6; 0 ... 1024 &#x22C6;/
249          uint8_t data[1024];
250  } video_navi_pack_t;
251 </programlisting>
252 </section>
253
254
255 <section id="video_attributes">
256 <title>video attributes</title>
257 <para>The following attributes can be set by a call to VIDEO_SET_ATTRIBUTES:
258 </para>
259 <programlisting>
260  typedef uint16_t video_attributes_t;
261  /&#x22C6;   bits: descr. &#x22C6;/
262  /&#x22C6;   15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) &#x22C6;/
263  /&#x22C6;   13-12 TV system (0=525/60, 1=625/50) &#x22C6;/
264  /&#x22C6;   11-10 Aspect ratio (0=4:3, 3=16:9) &#x22C6;/
265  /&#x22C6;    9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca &#x22C6;/
266  /&#x22C6;    7    line 21-1 data present in GOP (1=yes, 0=no) &#x22C6;/
267  /&#x22C6;    6    line 21-2 data present in GOP (1=yes, 0=no) &#x22C6;/
268  /&#x22C6;    5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 &#x22C6;/
269  /&#x22C6;    2    source letterboxed (1=yes, 0=no) &#x22C6;/
270  /&#x22C6;    0    film/camera mode (0=camera, 1=film (625/50 only)) &#x22C6;/
271 </programlisting>
272 </section></section>
273
274
275 <section id="video_function_calls">
276 <title>Video Function Calls</title>
277
278
279 <section id="video_fopen">
280 <title>open()</title>
281 <para>DESCRIPTION
282 </para>
283 <informaltable><tgroup cols="1"><tbody><row><entry
284  align="char">
285 <para>This system call opens a named video device (e.g. /dev/dvb/adapter0/video0)
286  for subsequent use.</para>
287 <para>When an open() call has succeeded, the device will be ready for use.
288  The significance of blocking or non-blocking mode is described in the
289  documentation for functions where there is a difference. It does not affect the
290  semantics of the open() call itself. A device opened in blocking mode can later
291  be put into non-blocking mode (and vice versa) using the F_SETFL command
292  of the fcntl system call. This is a standard system call, documented in the Linux
293  manual page for fcntl. Only one user can open the Video Device in O_RDWR
294  mode. All other attempts to open the device in this mode will fail, and an
295  error-code will be returned. If the Video Device is opened in O_RDONLY
296  mode, the only ioctl call that can be used is VIDEO_GET_STATUS. All other
297  call will return an error code.</para>
298 </entry>
299  </row></tbody></tgroup></informaltable>
300
301 <para>SYNOPSIS
302 </para>
303 <informaltable><tgroup cols="1"><tbody><row><entry
304  align="char">
305 <para>int open(const char &#x22C6;deviceName, int flags);</para>
306 </entry>
307  </row></tbody></tgroup></informaltable>
308 <para>PARAMETERS
309 </para>
310 <informaltable><tgroup cols="2"><tbody><row><entry
311  align="char">
312 <para>const char
313  *deviceName</para>
314 </entry><entry
315  align="char">
316 <para>Name of specific video device.</para>
317 </entry>
318  </row><row><entry
319  align="char">
320 <para>int flags</para>
321 </entry><entry
322  align="char">
323 <para>A bit-wise OR of the following flags:</para>
324 </entry>
325  </row><row><entry
326  align="char">
327 </entry><entry
328  align="char">
329 <para>O_RDONLY read-only access</para>
330 </entry>
331  </row><row><entry
332  align="char">
333 </entry><entry
334  align="char">
335 <para>O_RDWR read/write access</para>
336 </entry>
337  </row><row><entry
338  align="char">
339 </entry><entry
340  align="char">
341 <para>O_NONBLOCK open in non-blocking mode</para>
342 </entry>
343  </row><row><entry
344  align="char">
345 </entry><entry
346  align="char">
347 <para>(blocking mode is the default)</para>
348 </entry>
349  </row></tbody></tgroup></informaltable>
350 <para>ERRORS
351 </para>
352 <informaltable><tgroup cols="2"><tbody><row><entry
353  align="char">
354 <para>ENODEV</para>
355 </entry><entry
356  align="char">
357 <para>Device driver not loaded/available.</para>
358 </entry>
359  </row><row><entry
360  align="char">
361 <para>EINTERNAL</para>
362 </entry><entry
363  align="char">
364 <para>Internal error.</para>
365 </entry>
366  </row><row><entry
367  align="char">
368 <para>EBUSY</para>
369 </entry><entry
370  align="char">
371 <para>Device or resource busy.</para>
372 </entry>
373  </row><row><entry
374  align="char">
375 <para>EINVAL</para>
376 </entry><entry
377  align="char">
378 <para>Invalid argument.</para>
379 </entry>
380  </row></tbody></tgroup></informaltable>
381
382 </section>
383 <section id="video_fclose">
384 <title>close()</title>
385 <para>DESCRIPTION
386 </para>
387 <informaltable><tgroup cols="1"><tbody><row><entry
388  align="char">
389 <para>This system call closes a previously opened video device.</para>
390 </entry>
391  </row></tbody></tgroup></informaltable>
392 <para>SYNOPSIS
393 </para>
394 <informaltable><tgroup cols="1"><tbody><row><entry
395  align="char">
396 <para>int close(int fd);</para>
397 </entry>
398  </row></tbody></tgroup></informaltable>
399 <para>PARAMETERS
400 </para>
401 <informaltable><tgroup cols="2"><tbody><row><entry
402  align="char">
403 <para>int fd</para>
404 </entry><entry
405  align="char">
406 <para>File descriptor returned by a previous call to open().</para>
407 </entry>
408  </row></tbody></tgroup></informaltable>
409 <para>ERRORS
410 </para>
411 <informaltable><tgroup cols="2"><tbody><row><entry
412  align="char">
413 <para>EBADF</para>
414 </entry><entry
415  align="char">
416 <para>fd is not a valid open file descriptor.</para>
417 </entry>
418  </row></tbody></tgroup></informaltable>
419
420 </section>
421 <section id="video_fwrite">
422 <title>write()</title>
423 <para>DESCRIPTION
424 </para>
425 <informaltable><tgroup cols="1"><tbody><row><entry
426  align="char">
427 <para>This system call can only be used if VIDEO_SOURCE_MEMORY is selected
428  in the ioctl call VIDEO_SELECT_SOURCE. The data provided shall be in
429  PES format, unless the capability allows other formats. If O_NONBLOCK is
430  not specified the function will block until buffer space is available. The amount
431  of data to be transferred is implied by count.</para>
432 </entry>
433  </row></tbody></tgroup></informaltable>
434 <para>SYNOPSIS
435 </para>
436 <informaltable><tgroup cols="1"><tbody><row><entry
437  align="char">
438 <para>size_t write(int fd, const void &#x22C6;buf, size_t count);</para>
439 </entry>
440  </row></tbody></tgroup></informaltable>
441 <para>PARAMETERS
442 </para>
443 <informaltable><tgroup cols="2"><tbody><row><entry
444  align="char">
445 <para>int fd</para>
446 </entry><entry
447  align="char">
448 <para>File descriptor returned by a previous call to open().</para>
449 </entry>
450  </row><row><entry
451  align="char">
452 <para>void *buf</para>
453 </entry><entry
454  align="char">
455 <para>Pointer to the buffer containing the PES data.</para>
456 </entry>
457  </row><row><entry
458  align="char">
459 <para>size_t count</para>
460 </entry><entry
461  align="char">
462 <para>Size of buf.</para>
463 </entry>
464  </row></tbody></tgroup></informaltable>
465 <para>ERRORS
466 </para>
467 <informaltable><tgroup cols="2"><tbody><row><entry
468  align="char">
469 <para>EPERM</para>
470 </entry><entry
471  align="char">
472 <para>Mode VIDEO_SOURCE_MEMORY not selected.</para>
473 </entry>
474  </row><row><entry
475  align="char">
476 <para>ENOMEM</para>
477 </entry><entry
478  align="char">
479 <para>Attempted to write more data than the internal buffer can
480  hold.</para>
481 </entry>
482  </row><row><entry
483  align="char">
484 <para>EBADF</para>
485 </entry><entry
486  align="char">
487 <para>fd is not a valid open file descriptor.</para>
488 </entry>
489  </row></tbody></tgroup></informaltable>
490
491 </section><section
492 role="subsection"><title>VIDEO_STOP</title>
493 <para>DESCRIPTION
494 </para>
495 <informaltable><tgroup cols="1"><tbody><row><entry
496  align="char">
497 <para>This ioctl call asks the Video Device to stop playing the current stream.
498  Depending on the input parameter, the screen can be blanked out or displaying
499  the last decoded frame.</para>
500 </entry>
501  </row></tbody></tgroup></informaltable>
502 <para>SYNOPSIS
503 </para>
504 <informaltable><tgroup cols="1"><tbody><row><entry
505  align="char">
506 <para>int ioctl(fd, int request = VIDEO_STOP, boolean
507  mode);</para>
508 </entry>
509  </row></tbody></tgroup></informaltable>
510 <para>PARAMETERS
511 </para>
512 <informaltable><tgroup cols="2"><tbody><row><entry
513  align="char">
514 <para>int fd</para>
515 </entry><entry
516  align="char">
517 <para>File descriptor returned by a previous call to open().</para>
518 </entry>
519  </row><row><entry
520  align="char">
521 <para>int request</para>
522 </entry><entry
523  align="char">
524 <para>Equals VIDEO_STOP for this command.</para>
525 </entry>
526  </row><row><entry
527  align="char">
528 <para>Boolean mode</para>
529 </entry><entry
530  align="char">
531 <para>Indicates how the screen shall be handled.</para>
532 </entry>
533  </row><row><entry
534  align="char">
535 </entry><entry
536  align="char">
537 <para>TRUE: Blank screen when stop.</para>
538 </entry>
539  </row><row><entry
540  align="char">
541 </entry><entry
542  align="char">
543 <para>FALSE: Show last decoded frame.</para>
544 </entry>
545  </row></tbody></tgroup></informaltable>
546 <para>ERRORS
547 </para>
548 <informaltable><tgroup cols="2"><tbody><row><entry
549  align="char">
550 <para>EBADF</para>
551 </entry><entry
552  align="char">
553 <para>fd is not a valid open file descriptor</para>
554 </entry>
555  </row><row><entry
556  align="char">
557 <para>EINTERNAL</para>
558 </entry><entry
559  align="char">
560 <para>Internal error, possibly in the communication with the
561  DVB subsystem.</para>
562 </entry>
563  </row></tbody></tgroup></informaltable>
564
565 </section><section
566 role="subsection"><title>VIDEO_PLAY</title>
567 <para>DESCRIPTION
568 </para>
569 <informaltable><tgroup cols="1"><tbody><row><entry
570  align="char">
571 <para>This ioctl call asks the Video Device to start playing a video stream from the
572  selected source.</para>
573 </entry>
574  </row></tbody></tgroup></informaltable>
575 <para>SYNOPSIS
576 </para>
577 <informaltable><tgroup cols="1"><tbody><row><entry
578  align="char">
579 <para>int ioctl(fd, int request = VIDEO_PLAY);</para>
580 </entry>
581  </row></tbody></tgroup></informaltable>
582 <para>PARAMETERS
583 </para>
584 <informaltable><tgroup cols="2"><tbody><row><entry
585  align="char">
586 <para>int fd</para>
587 </entry><entry
588  align="char">
589 <para>File descriptor returned by a previous call to open().</para>
590 </entry>
591  </row><row><entry
592  align="char">
593 <para>int request</para>
594 </entry><entry
595  align="char">
596 <para>Equals VIDEO_PLAY for this command.</para>
597 </entry>
598  </row></tbody></tgroup></informaltable>
599 <para>ERRORS
600 </para>
601 <informaltable><tgroup cols="2"><tbody><row><entry
602  align="char">
603 <para>EBADF</para>
604 </entry><entry
605  align="char">
606 <para>fd is not a valid open file descriptor</para>
607 </entry>
608  </row><row><entry
609  align="char">
610 <para>EINTERNAL</para>
611 </entry><entry
612  align="char">
613 <para>Internal error, possibly in the communication with the
614  DVB subsystem.</para>
615 </entry>
616  </row></tbody></tgroup></informaltable>
617
618 </section><section
619 role="subsection"><title>VIDEO_FREEZE</title>
620 <para>DESCRIPTION
621 </para>
622 <informaltable><tgroup cols="1"><tbody><row><entry
623  align="char">
624 <para>This ioctl call suspends the live video stream being played. Decoding
625  and playing are frozen. It is then possible to restart the decoding
626  and playing process of the video stream using the VIDEO_CONTINUE
627  command. If VIDEO_SOURCE_MEMORY is selected in the ioctl call
628  VIDEO_SELECT_SOURCE, the DVB subsystem will not decode any more
629  data until the ioctl call VIDEO_CONTINUE or VIDEO_PLAY is performed.</para>
630 </entry>
631  </row></tbody></tgroup></informaltable>
632 <para>SYNOPSIS
633 </para>
634 <informaltable><tgroup cols="1"><tbody><row><entry
635  align="char">
636 <para>int ioctl(fd, int request = VIDEO_FREEZE);</para>
637 </entry>
638  </row></tbody></tgroup></informaltable>
639 <para>PARAMETERS
640 </para>
641 <informaltable><tgroup cols="2"><tbody><row><entry
642  align="char">
643 <para>int fd</para>
644 </entry><entry
645  align="char">
646 <para>File descriptor returned by a previous call to open().</para>
647 </entry>
648  </row><row><entry
649  align="char">
650 <para>int request</para>
651 </entry><entry
652  align="char">
653 <para>Equals VIDEO_FREEZE for this command.</para>
654 </entry>
655  </row></tbody></tgroup></informaltable>
656 <para>ERRORS
657 </para>
658 <informaltable><tgroup cols="2"><tbody><row><entry
659  align="char">
660 <para>EBADF</para>
661 </entry><entry
662  align="char">
663 <para>fd is not a valid open file descriptor</para>
664 </entry>
665  </row><row><entry
666  align="char">
667 <para>EINTERNAL</para>
668 </entry><entry
669  align="char">
670 <para>Internal error, possibly in the communication with the
671  DVB subsystem.</para>
672 </entry>
673  </row></tbody></tgroup></informaltable>
674
675 </section><section
676 role="subsection"><title>VIDEO_CONTINUE</title>
677 <para>DESCRIPTION
678 </para>
679 <informaltable><tgroup cols="1"><tbody><row><entry
680  align="char">
681 <para>This ioctl call restarts decoding and playing processes of the video stream
682  which was played before a call to VIDEO_FREEZE was made.</para>
683 </entry>
684  </row></tbody></tgroup></informaltable>
685 <para>SYNOPSIS
686 </para>
687 <informaltable><tgroup cols="1"><tbody><row><entry
688  align="char">
689 <para>int ioctl(fd, int request = VIDEO_CONTINUE);</para>
690 </entry>
691  </row></tbody></tgroup></informaltable>
692 <para>PARAMETERS
693 </para>
694 <informaltable><tgroup cols="2"><tbody><row><entry
695  align="char">
696 <para>int fd</para>
697 </entry><entry
698  align="char">
699 <para>File descriptor returned by a previous call to open().</para>
700 </entry>
701  </row><row><entry
702  align="char">
703 <para>int request</para>
704 </entry><entry
705  align="char">
706 <para>Equals VIDEO_CONTINUE for this command.</para>
707 </entry>
708  </row></tbody></tgroup></informaltable>
709 <para>ERRORS
710 </para>
711 <informaltable><tgroup cols="2"><tbody><row><entry
712  align="char">
713 <para>EBADF</para>
714 </entry><entry
715  align="char">
716 <para>fd is not a valid open file descriptor</para>
717 </entry>
718  </row><row><entry
719  align="char">
720 <para>EINTERNAL</para>
721 </entry><entry
722  align="char">
723 <para>Internal error, possibly in the communication with the
724  DVB subsystem.</para>
725 </entry>
726  </row></tbody></tgroup></informaltable>
727
728 </section><section
729 role="subsection"><title>VIDEO_SELECT_SOURCE</title>
730 <para>DESCRIPTION
731 </para>
732 <informaltable><tgroup cols="1"><tbody><row><entry
733  align="char">
734 <para>This ioctl call informs the video device which source shall be used for the input
735  data. The possible sources are demux or memory. If memory is selected, the
736  data is fed to the video device through the write command.</para>
737 </entry>
738  </row></tbody></tgroup></informaltable>
739 <para>SYNOPSIS
740 </para>
741 <informaltable><tgroup cols="1"><tbody><row><entry
742  align="char">
743 <para>int ioctl(fd, int request = VIDEO_SELECT_SOURCE,
744  video_stream_source_t source);</para>
745 </entry>
746  </row></tbody></tgroup></informaltable>
747 <para>PARAMETERS
748 </para>
749 <informaltable><tgroup cols="2"><tbody><row><entry
750  align="char">
751 <para>int fd</para>
752 </entry><entry
753  align="char">
754 <para>File descriptor returned by a previous call to open().</para>
755 </entry>
756  </row><row><entry
757  align="char">
758 <para>int request</para>
759 </entry><entry
760  align="char">
761 <para>Equals VIDEO_SELECT_SOURCE for this command.</para>
762 </entry>
763  </row><row><entry
764  align="char">
765 <para>video_stream_source_t
766  source</para>
767 </entry><entry
768  align="char">
769 <para>Indicates which source shall be used for the Video stream.</para>
770 </entry>
771  </row></tbody></tgroup></informaltable>
772 <para>ERRORS
773 </para>
774 <informaltable><tgroup cols="2"><tbody><row><entry
775  align="char">
776 <para>EBADF</para>
777 </entry><entry
778  align="char">
779 <para>fd is not a valid open file descriptor</para>
780 </entry>
781  </row><row><entry
782  align="char">
783 <para>EINTERNAL</para>
784 </entry><entry
785  align="char">
786 <para>Internal error, possibly in the communication with the
787  DVB subsystem.</para>
788 </entry>
789  </row></tbody></tgroup></informaltable>
790
791 </section><section
792 role="subsection"><title>VIDEO_SET_BLANK</title>
793 <para>DESCRIPTION
794 </para>
795 <informaltable><tgroup cols="1"><tbody><row><entry
796  align="char">
797 <para>This ioctl call asks the Video Device to blank out the picture.</para>
798 </entry>
799  </row></tbody></tgroup></informaltable>
800 <para>SYNOPSIS
801 </para>
802 <informaltable><tgroup cols="1"><tbody><row><entry
803  align="char">
804 <para>int ioctl(fd, int request = VIDEO_SET_BLANK, boolean
805  mode);</para>
806 </entry>
807  </row></tbody></tgroup></informaltable>
808 <para>PARAMETERS
809 </para>
810 <informaltable><tgroup cols="2"><tbody><row><entry
811  align="char">
812 <para>int fd</para>
813 </entry><entry
814  align="char">
815 <para>File descriptor returned by a previous call to open().</para>
816 </entry>
817  </row><row><entry
818  align="char">
819 <para>int request</para>
820 </entry><entry
821  align="char">
822 <para>Equals VIDEO_SET_BLANK for this command.</para>
823 </entry>
824  </row><row><entry
825  align="char">
826 <para>boolean mode</para>
827 </entry><entry
828  align="char">
829 <para>TRUE: Blank screen when stop.</para>
830 </entry>
831  </row><row><entry
832  align="char">
833 </entry><entry
834  align="char">
835 <para>FALSE: Show last decoded frame.</para>
836 </entry>
837  </row></tbody></tgroup></informaltable>
838 <para>ERRORS
839 </para>
840 <informaltable><tgroup cols="2"><tbody><row><entry
841  align="char">
842 <para>EBADF</para>
843 </entry><entry
844  align="char">
845 <para>fd is not a valid open file descriptor</para>
846 </entry>
847  </row><row><entry
848  align="char">
849 <para>EINTERNAL</para>
850 </entry><entry
851  align="char">
852 <para>Internal error, possibly in the communication with the
853  DVB subsystem.</para>
854 </entry>
855  </row><row><entry
856  align="char">
857 <para>EINVAL</para>
858 </entry><entry
859  align="char">
860 <para>Illegal input parameter</para>
861 </entry>
862  </row></tbody></tgroup></informaltable>
863
864 </section><section
865 role="subsection"><title>VIDEO_GET_STATUS</title>
866 <para>DESCRIPTION
867 </para>
868 <informaltable><tgroup cols="1"><tbody><row><entry
869  align="char">
870 <para>This ioctl call asks the Video Device to return the current status of the device.</para>
871 </entry>
872  </row></tbody></tgroup></informaltable>
873 <para>SYNOPSIS
874 </para>
875 <informaltable><tgroup cols="1"><tbody><row><entry
876  align="char">
877 <para> int ioctl(fd, int request = VIDEO_GET_STATUS, struct
878  video_status &#x22C6;status);</para>
879 </entry>
880  </row></tbody></tgroup></informaltable>
881 <para>PARAMETERS
882 </para>
883 <informaltable><tgroup cols="2"><tbody><row><entry
884  align="char">
885 <para>int fd</para>
886 </entry><entry
887  align="char">
888 <para>File descriptor returned by a previous call to open().</para>
889 </entry>
890  </row><row><entry
891  align="char">
892 <para>int request</para>
893 </entry><entry
894  align="char">
895 <para>Equals VIDEO_GET_STATUS for this command.</para>
896 </entry>
897  </row><row><entry
898  align="char">
899 <para>struct video_status
900  *status</para>
901 </entry><entry
902  align="char">
903 <para>Returns the current status of the Video Device.</para>
904 </entry>
905  </row></tbody></tgroup></informaltable>
906 <para>ERRORS
907 </para>
908 <informaltable><tgroup cols="2"><tbody><row><entry
909  align="char">
910 <para>EBADF</para>
911 </entry><entry
912  align="char">
913 <para>fd is not a valid open file descriptor</para>
914 </entry>
915  </row><row><entry
916  align="char">
917 <para>EINTERNAL</para>
918 </entry><entry
919  align="char">
920 <para>Internal error, possibly in the communication with the
921  DVB subsystem.</para>
922 </entry>
923  </row><row><entry
924  align="char">
925 <para>EFAULT</para>
926 </entry><entry
927  align="char">
928 <para>status points to invalid address</para>
929 </entry>
930  </row></tbody></tgroup></informaltable>
931
932 </section><section
933 role="subsection"><title>VIDEO_GET_EVENT</title>
934 <para>DESCRIPTION
935 </para>
936 <informaltable><tgroup cols="1"><tbody><row><entry
937  align="char">
938 <para>This ioctl call returns an event of type video_event if available. If an event is
939  not available, the behavior depends on whether the device is in blocking or
940  non-blocking mode. In the latter case, the call fails immediately with errno
941  set to EWOULDBLOCK. In the former case, the call blocks until an event
942  becomes available. The standard Linux poll() and/or select() system calls can
943  be used with the device file descriptor to watch for new events. For select(),
944  the file descriptor should be included in the exceptfds argument, and for
945  poll(), POLLPRI should be specified as the wake-up condition. Read-only
946  permissions are sufficient for this ioctl call.</para>
947 </entry>
948  </row></tbody></tgroup></informaltable>
949 <para>SYNOPSIS
950 </para>
951 <informaltable><tgroup cols="1"><tbody><row><entry
952  align="char">
953 <para> int ioctl(fd, int request = VIDEO_GET_EVENT, struct
954  video_event &#x22C6;ev);</para>
955 </entry>
956  </row></tbody></tgroup></informaltable>
957 <para>PARAMETERS
958 </para>
959 <informaltable><tgroup cols="2"><tbody><row><entry
960  align="char">
961 <para>int fd</para>
962 </entry><entry
963  align="char">
964 <para>File descriptor returned by a previous call to open().</para>
965 </entry>
966  </row><row><entry
967  align="char">
968 <para>int request</para>
969 </entry><entry
970  align="char">
971 <para>Equals VIDEO_GET_EVENT for this command.</para>
972 </entry>
973  </row><row><entry
974  align="char">
975 <para>struct video_event
976  *ev</para>
977 </entry><entry
978  align="char">
979 <para>Points to the location where the event, if any, is to be
980  stored.</para>
981 </entry>
982  </row></tbody></tgroup></informaltable>
983 <para>ERRORS
984 </para>
985 <informaltable><tgroup cols="2"><tbody><row><entry
986  align="char">
987 <para>EBADF</para>
988 </entry><entry
989  align="char">
990 <para>fd is not a valid open file descriptor</para>
991 </entry>
992  </row><row><entry
993  align="char">
994 <para>EFAULT</para>
995 </entry><entry
996  align="char">
997 <para>ev points to invalid address</para>
998 </entry>
999  </row><row><entry
1000  align="char">
1001 <para>EWOULDBLOCK</para>
1002 </entry><entry
1003  align="char">
1004 <para>There is no event pending, and the device is in
1005  non-blocking mode.</para>
1006 </entry>
1007  </row><row><entry
1008  align="char">
1009 <para>EOVERFLOW</para>
1010 </entry><entry
1011  align="char">
1012 </entry>
1013  </row><row><entry
1014  align="char">
1015 </entry><entry
1016  align="char">
1017 <para>Overflow in event queue - one or more events were lost.</para>
1018 </entry>
1019  </row></tbody></tgroup></informaltable>
1020
1021 </section><section
1022 role="subsection"><title>VIDEO_SET_DISPLAY_FORMAT</title>
1023 <para>DESCRIPTION
1024 </para>
1025 <informaltable><tgroup cols="1"><tbody><row><entry
1026  align="char">
1027 <para>This ioctl call asks the Video Device to select the video format to be applied
1028  by the MPEG chip on the video.</para>
1029 </entry>
1030  </row></tbody></tgroup></informaltable>
1031 <para>SYNOPSIS
1032 </para>
1033 <informaltable><tgroup cols="1"><tbody><row><entry
1034  align="char">
1035 <para> int ioctl(fd, int request =
1036  VIDEO_SET_DISPLAY_FORMAT, video_display_format_t
1037  format);</para>
1038 </entry>
1039  </row></tbody></tgroup></informaltable>
1040 <para>PARAMETERS
1041 </para>
1042 <informaltable><tgroup cols="2"><tbody><row><entry
1043  align="char">
1044 <para>int fd</para>
1045 </entry><entry
1046  align="char">
1047 <para>File descriptor returned by a previous call to open().</para>
1048 </entry>
1049  </row><row><entry
1050  align="char">
1051 <para>int request</para>
1052 </entry><entry
1053  align="char">
1054 <para>Equals VIDEO_SET_DISPLAY_FORMAT for this
1055  command.</para>
1056 </entry>
1057  </row><row><entry
1058  align="char">
1059 <para>video_display_format_t
1060  format</para>
1061 </entry><entry
1062  align="char">
1063 <para>Selects the video format to be used.</para>
1064 </entry>
1065  </row></tbody></tgroup></informaltable>
1066 <para>ERRORS
1067 </para>
1068 <informaltable><tgroup cols="2"><tbody><row><entry
1069  align="char">
1070 <para>EBADF</para>
1071 </entry><entry
1072  align="char">
1073 <para>fd is not a valid open file descriptor</para>
1074 </entry>
1075  </row><row><entry
1076  align="char">
1077 <para>EINTERNAL</para>
1078 </entry><entry
1079  align="char">
1080 <para>Internal error.</para>
1081 </entry>
1082  </row><row><entry
1083  align="char">
1084 <para>EINVAL</para>
1085 </entry><entry
1086  align="char">
1087 <para>Illegal parameter format.</para>
1088 </entry>
1089  </row></tbody></tgroup></informaltable>
1090
1091 </section><section
1092 role="subsection"><title>VIDEO_STILLPICTURE</title>
1093 <para>DESCRIPTION
1094 </para>
1095 <informaltable><tgroup cols="1"><tbody><row><entry
1096  align="char">
1097 <para>This ioctl call asks the Video Device to display a still picture (I-frame). The
1098  input data shall contain an I-frame. If the pointer is NULL, then the current
1099  displayed still picture is blanked.</para>
1100 </entry>
1101  </row></tbody></tgroup></informaltable>
1102 <para>SYNOPSIS
1103 </para>
1104 <informaltable><tgroup cols="1"><tbody><row><entry
1105  align="char">
1106 <para>int ioctl(fd, int request = VIDEO_STILLPICTURE,
1107  struct video_still_picture &#x22C6;sp);</para>
1108 </entry>
1109  </row></tbody></tgroup></informaltable>
1110 <para>PARAMETERS
1111 </para>
1112 <informaltable><tgroup cols="2"><tbody><row><entry
1113  align="char">
1114 <para>int fd</para>
1115 </entry><entry
1116  align="char">
1117 <para>File descriptor returned by a previous call to open().</para>
1118 </entry>
1119  </row><row><entry
1120  align="char">
1121 <para>int request</para>
1122 </entry><entry
1123  align="char">
1124 <para>Equals VIDEO_STILLPICTURE for this command.</para>
1125 </entry>
1126  </row><row><entry
1127  align="char">
1128 <para>struct
1129  video_still_picture
1130  *sp</para>
1131 </entry><entry
1132  align="char">
1133 <para>Pointer to a location where an I-frame and size is stored.</para>
1134 </entry>
1135  </row></tbody></tgroup></informaltable>
1136 <para>ERRORS
1137 </para>
1138 <informaltable><tgroup cols="2"><tbody><row><entry
1139  align="char">
1140 <para>EBADF</para>
1141 </entry><entry
1142  align="char">
1143 <para>fd is not a valid open file descriptor</para>
1144 </entry>
1145  </row><row><entry
1146  align="char">
1147 <para>EINTERNAL</para>
1148 </entry><entry
1149  align="char">
1150 <para>Internal error.</para>
1151 </entry>
1152  </row><row><entry
1153  align="char">
1154 <para>EFAULT</para>
1155 </entry><entry
1156  align="char">
1157 <para>sp points to an invalid iframe.</para>
1158 </entry>
1159  </row></tbody></tgroup></informaltable>
1160
1161 </section><section
1162 role="subsection"><title>VIDEO_FAST_FORWARD</title>
1163 <para>DESCRIPTION
1164 </para>
1165 <informaltable><tgroup cols="1"><tbody><row><entry
1166  align="char">
1167 <para>This ioctl call asks the Video Device to skip decoding of N number of I-frames.
1168  This call can only be used if VIDEO_SOURCE_MEMORY is selected.</para>
1169 </entry>
1170  </row></tbody></tgroup></informaltable>
1171 <para>SYNOPSIS
1172 </para>
1173 <informaltable><tgroup cols="1"><tbody><row><entry
1174  align="char">
1175 <para>int ioctl(fd, int request = VIDEO_FAST_FORWARD, int
1176  nFrames);</para>
1177 </entry>
1178  </row></tbody></tgroup></informaltable>
1179 <para>PARAMETERS
1180 </para>
1181 <informaltable><tgroup cols="2"><tbody><row><entry
1182  align="char">
1183 <para>int fd</para>
1184 </entry><entry
1185  align="char">
1186 <para>File descriptor returned by a previous call to open().</para>
1187 </entry>
1188  </row><row><entry
1189  align="char">
1190 <para>int request</para>
1191 </entry><entry
1192  align="char">
1193 <para>Equals VIDEO_FAST_FORWARD for this command.</para>
1194 </entry>
1195  </row><row><entry
1196  align="char">
1197 <para>int nFrames</para>
1198 </entry><entry
1199  align="char">
1200 <para>The number of frames to skip.</para>
1201 </entry>
1202  </row></tbody></tgroup></informaltable>
1203 <para>ERRORS
1204 </para>
1205 <informaltable><tgroup cols="2"><tbody><row><entry
1206  align="char">
1207 <para>EBADF</para>
1208 </entry><entry
1209  align="char">
1210 <para>fd is not a valid open file descriptor</para>
1211 </entry>
1212  </row><row><entry
1213  align="char">
1214 <para>EINTERNAL</para>
1215 </entry><entry
1216  align="char">
1217 <para>Internal error.</para>
1218 </entry>
1219  </row><row><entry
1220  align="char">
1221 <para>EPERM</para>
1222 </entry><entry
1223  align="char">
1224 <para>Mode VIDEO_SOURCE_MEMORY not selected.</para>
1225 </entry>
1226  </row><row><entry
1227  align="char">
1228 <para>EINVAL</para>
1229 </entry><entry
1230  align="char">
1231 <para>Illegal parameter format.</para>
1232 </entry>
1233  </row></tbody></tgroup></informaltable>
1234
1235 </section><section
1236 role="subsection"><title>VIDEO_SLOWMOTION</title>
1237 <para>DESCRIPTION
1238 </para>
1239 <informaltable><tgroup cols="1"><tbody><row><entry
1240  align="char">
1241 <para>This ioctl call asks the video device to repeat decoding frames N number of
1242  times. This call can only be used if VIDEO_SOURCE_MEMORY is selected.</para>
1243 </entry>
1244  </row></tbody></tgroup></informaltable>
1245 <para>SYNOPSIS
1246 </para>
1247 <informaltable><tgroup cols="1"><tbody><row><entry
1248  align="char">
1249 <para>int ioctl(fd, int request = VIDEO_SLOWMOTION, int
1250  nFrames);</para>
1251 </entry>
1252  </row></tbody></tgroup></informaltable>
1253 <para>PARAMETERS
1254 </para>
1255 <informaltable><tgroup cols="2"><tbody><row><entry
1256  align="char">
1257 <para>int fd</para>
1258 </entry><entry
1259  align="char">
1260 <para>File descriptor returned by a previous call to open().</para>
1261 </entry>
1262  </row><row><entry
1263  align="char">
1264 <para>int request</para>
1265 </entry><entry
1266  align="char">
1267 <para>Equals VIDEO_SLOWMOTION for this command.</para>
1268 </entry>
1269  </row><row><entry
1270  align="char">
1271 <para>int nFrames</para>
1272 </entry><entry
1273  align="char">
1274 <para>The number of times to repeat each frame.</para>
1275 </entry>
1276  </row></tbody></tgroup></informaltable>
1277 <para>ERRORS
1278 </para>
1279 <informaltable><tgroup cols="2"><tbody><row><entry
1280  align="char">
1281 <para>EBADF</para>
1282 </entry><entry
1283  align="char">
1284 <para>fd is not a valid open file descriptor</para>
1285 </entry>
1286  </row><row><entry
1287  align="char">
1288 <para>EINTERNAL</para>
1289 </entry><entry
1290  align="char">
1291 <para>Internal error.</para>
1292 </entry>
1293  </row><row><entry
1294  align="char">
1295 <para>EPERM</para>
1296 </entry><entry
1297  align="char">
1298 <para>Mode VIDEO_SOURCE_MEMORY not selected.</para>
1299 </entry>
1300  </row><row><entry
1301  align="char">
1302 <para>EINVAL</para>
1303 </entry><entry
1304  align="char">
1305 <para>Illegal parameter format.</para>
1306 </entry>
1307  </row></tbody></tgroup></informaltable>
1308
1309 </section><section
1310 role="subsection"><title>VIDEO_GET_CAPABILITIES</title>
1311 <para>DESCRIPTION
1312 </para>
1313 <informaltable><tgroup cols="1"><tbody><row><entry
1314  align="char">
1315 <para>This ioctl call asks the video device about its decoding capabilities. On success
1316  it returns and integer which has bits set according to the defines in section ??.</para>
1317 </entry>
1318  </row></tbody></tgroup></informaltable>
1319 <para>SYNOPSIS
1320 </para>
1321 <informaltable><tgroup cols="1"><tbody><row><entry
1322  align="char">
1323 <para>int ioctl(fd, int request = VIDEO_GET_CAPABILITIES,
1324  unsigned int &#x22C6;cap);</para>
1325 </entry>
1326  </row></tbody></tgroup></informaltable>
1327 <para>PARAMETERS
1328 </para>
1329 <informaltable><tgroup cols="2"><tbody><row><entry
1330  align="char">
1331 <para>int fd</para>
1332 </entry><entry
1333  align="char">
1334 <para>File descriptor returned by a previous call to open().</para>
1335 </entry>
1336  </row><row><entry
1337  align="char">
1338 <para>int request</para>
1339 </entry><entry
1340  align="char">
1341 <para>Equals VIDEO_GET_CAPABILITIES for this
1342  command.</para>
1343 </entry>
1344  </row><row><entry
1345  align="char">
1346 <para>unsigned int *cap</para>
1347 </entry><entry
1348  align="char">
1349 <para>Pointer to a location where to store the capability
1350  information.</para>
1351 </entry>
1352  </row></tbody></tgroup></informaltable>
1353 <para>ERRORS
1354 </para>
1355 <informaltable><tgroup cols="2"><tbody><row><entry
1356  align="char">
1357 <para>EBADF</para>
1358 </entry><entry
1359  align="char">
1360 <para>fd is not a valid open file descriptor</para>
1361 </entry>
1362  </row><row><entry
1363  align="char">
1364 <para>EFAULT</para>
1365 </entry><entry
1366  align="char">
1367 <para>cap points to an invalid iframe.</para>
1368 </entry>
1369  </row></tbody></tgroup></informaltable>
1370
1371 </section><section
1372 role="subsection"><title>VIDEO_SET_ID</title>
1373 <para>DESCRIPTION
1374 </para>
1375 <informaltable><tgroup cols="1"><tbody><row><entry
1376  align="char">
1377 <para>This ioctl selects which sub-stream is to be decoded if a program or system
1378  stream is sent to the video device.</para>
1379 </entry>
1380  </row></tbody></tgroup></informaltable>
1381 <para>SYNOPSIS
1382 </para>
1383 <informaltable><tgroup cols="1"><tbody><row><entry
1384  align="char">
1385 <para>int ioctl(int fd, int request = VIDEO_SET_ID, int
1386  id);</para>
1387 </entry>
1388  </row></tbody></tgroup></informaltable>
1389 <para>PARAMETERS
1390 </para>
1391 <informaltable><tgroup cols="2"><tbody><row><entry
1392  align="char">
1393 <para>int fd</para>
1394 </entry><entry
1395  align="char">
1396 <para>File descriptor returned by a previous call to open().</para>
1397 </entry>
1398  </row><row><entry
1399  align="char">
1400 <para>int request</para>
1401 </entry><entry
1402  align="char">
1403 <para>Equals VIDEO_SET_ID for this command.</para>
1404 </entry>
1405  </row><row><entry
1406  align="char">
1407 <para>int id</para>
1408 </entry><entry
1409  align="char">
1410 <para>video sub-stream id</para>
1411 </entry>
1412  </row></tbody></tgroup></informaltable>
1413 <para>ERRORS
1414 </para>
1415 <informaltable><tgroup cols="2"><tbody><row><entry
1416  align="char">
1417 <para>EBADF</para>
1418 </entry><entry
1419  align="char">
1420 <para>fd is not a valid open file descriptor.</para>
1421 </entry>
1422  </row><row><entry
1423  align="char">
1424 <para>EINTERNAL</para>
1425 </entry><entry
1426  align="char">
1427 <para>Internal error.</para>
1428 </entry>
1429  </row><row><entry
1430  align="char">
1431 <para>EINVAL</para>
1432 </entry><entry
1433  align="char">
1434 <para>Invalid sub-stream id.</para>
1435 </entry>
1436  </row></tbody></tgroup></informaltable>
1437
1438 </section><section
1439 role="subsection"><title>VIDEO_CLEAR_BUFFER</title>
1440 <para>DESCRIPTION
1441 </para>
1442 <informaltable><tgroup cols="1"><tbody><row><entry
1443  align="char">
1444 <para>This ioctl call clears all video buffers in the driver and in the decoder hardware.</para>
1445 </entry>
1446  </row></tbody></tgroup></informaltable>
1447 <para>SYNOPSIS
1448 </para>
1449 <informaltable><tgroup cols="1"><tbody><row><entry
1450  align="char">
1451 <para>int ioctl(fd, int request = VIDEO_CLEAR_BUFFER);</para>
1452 </entry>
1453  </row></tbody></tgroup></informaltable>
1454 <para>PARAMETERS
1455 </para>
1456 <informaltable><tgroup cols="2"><tbody><row><entry
1457  align="char">
1458 <para>int fd</para>
1459 </entry><entry
1460  align="char">
1461 <para>File descriptor returned by a previous call to open().</para>
1462 </entry>
1463  </row><row><entry
1464  align="char">
1465 <para>int request</para>
1466 </entry><entry
1467  align="char">
1468 <para>Equals VIDEO_CLEAR_BUFFER for this command.</para>
1469 </entry>
1470  </row></tbody></tgroup></informaltable>
1471 <para>ERRORS
1472 </para>
1473 <informaltable><tgroup cols="2"><tbody><row><entry
1474  align="char">
1475 <para>EBADF</para>
1476 </entry><entry
1477  align="char">
1478 <para>fd is not a valid open file descriptor</para>
1479 </entry>
1480  </row></tbody></tgroup></informaltable>
1481
1482 </section><section
1483 role="subsection"><title>VIDEO_SET_STREAMTYPE</title>
1484 <para>DESCRIPTION
1485 </para>
1486 <informaltable><tgroup cols="1"><tbody><row><entry
1487  align="char">
1488 <para>This ioctl tells the driver which kind of stream to expect being written to it. If
1489  this call is not used the default of video PES is used. Some drivers might not
1490  support this call and always expect PES.</para>
1491 </entry>
1492  </row></tbody></tgroup></informaltable>
1493 <para>SYNOPSIS
1494 </para>
1495 <informaltable><tgroup cols="1"><tbody><row><entry
1496  align="char">
1497 <para>int ioctl(fd, int request = VIDEO_SET_STREAMTYPE,
1498  int type);</para>
1499 </entry>
1500  </row></tbody></tgroup></informaltable>
1501 <para>PARAMETERS
1502 </para>
1503 <informaltable><tgroup cols="2"><tbody><row><entry
1504  align="char">
1505 <para>int fd</para>
1506 </entry><entry
1507  align="char">
1508 <para>File descriptor returned by a previous call to open().</para>
1509 </entry>
1510  </row><row><entry
1511  align="char">
1512 <para>int request</para>
1513 </entry><entry
1514  align="char">
1515 <para>Equals VIDEO_SET_STREAMTYPE for this command.</para>
1516 </entry>
1517  </row><row><entry
1518  align="char">
1519 <para>int type</para>
1520 </entry><entry
1521  align="char">
1522 <para>stream type</para>
1523 </entry>
1524  </row></tbody></tgroup></informaltable>
1525 <para>ERRORS
1526 </para>
1527 <informaltable><tgroup cols="2"><tbody><row><entry
1528  align="char">
1529 <para>EBADF</para>
1530 </entry><entry
1531  align="char">
1532 <para>fd is not a valid open file descriptor</para>
1533 </entry>
1534  </row><row><entry
1535  align="char">
1536 <para>EINVAL</para>
1537 </entry><entry
1538  align="char">
1539 <para>type is not a valid or supported stream type.</para>
1540 </entry>
1541  </row></tbody></tgroup></informaltable>
1542
1543 </section><section
1544 role="subsection"><title>VIDEO_SET_FORMAT</title>
1545 <para>DESCRIPTION
1546 </para>
1547 <informaltable><tgroup cols="1"><tbody><row><entry
1548  align="char">
1549 <para>This ioctl sets the screen format (aspect ratio) of the connected output device
1550  (TV) so that the output of the decoder can be adjusted accordingly.</para>
1551 </entry>
1552  </row></tbody></tgroup></informaltable>
1553 <para>SYNOPSIS
1554 </para>
1555 <informaltable><tgroup cols="1"><tbody><row><entry
1556  align="char">
1557 <para> int ioctl(fd, int request = VIDEO_SET_FORMAT,
1558  video_format_t format);</para>
1559 </entry>
1560  </row></tbody></tgroup></informaltable>
1561 <para>PARAMETERS
1562 </para>
1563 <informaltable><tgroup cols="2"><tbody><row><entry
1564  align="char">
1565 <para>int fd</para>
1566 </entry><entry
1567  align="char">
1568 <para>File descriptor returned by a previous call to open().</para>
1569 </entry>
1570  </row><row><entry
1571  align="char">
1572 <para>int request</para>
1573 </entry><entry
1574  align="char">
1575 <para>Equals VIDEO_SET_FORMAT for this command.</para>
1576 </entry>
1577  </row><row><entry
1578  align="char">
1579 <para>video_format_t
1580  format</para>
1581 </entry><entry
1582  align="char">
1583 <para>video format of TV as defined in section ??.</para>
1584 </entry>
1585  </row></tbody></tgroup></informaltable>
1586 <para>ERRORS
1587 </para>
1588 <informaltable><tgroup cols="2"><tbody><row><entry
1589  align="char">
1590 <para>EBADF</para>
1591 </entry><entry
1592  align="char">
1593 <para>fd is not a valid open file descriptor</para>
1594 </entry>
1595  </row><row><entry
1596  align="char">
1597 <para>EINVAL</para>
1598 </entry><entry
1599  align="char">
1600 <para>format is not a valid video format.</para>
1601 </entry>
1602  </row></tbody></tgroup></informaltable>
1603
1604 </section><section
1605 role="subsection"><title>VIDEO_SET_SYSTEM</title>
1606 <para>DESCRIPTION
1607 </para>
1608 <informaltable><tgroup cols="1"><tbody><row><entry
1609  align="char">
1610 <para>This ioctl sets the television output format. The format (see section ??) may
1611  vary from the color format of the displayed MPEG stream. If the hardware is
1612  not able to display the requested format the call will return an error.</para>
1613 </entry>
1614  </row></tbody></tgroup></informaltable>
1615 <para>SYNOPSIS
1616 </para>
1617 <informaltable><tgroup cols="1"><tbody><row><entry
1618  align="char">
1619 <para> int ioctl(fd, int request = VIDEO_SET_SYSTEM ,
1620  video_system_t system);</para>
1621 </entry>
1622  </row></tbody></tgroup></informaltable>
1623 <para>PARAMETERS
1624 </para>
1625 <informaltable><tgroup cols="2"><tbody><row><entry
1626  align="char">
1627 <para>int fd</para>
1628 </entry><entry
1629  align="char">
1630 <para>File descriptor returned by a previous call to open().</para>
1631 </entry>
1632  </row><row><entry
1633  align="char">
1634 <para>int request</para>
1635 </entry><entry
1636  align="char">
1637 <para>Equals VIDEO_SET_FORMAT for this command.</para>
1638 </entry>
1639  </row><row><entry
1640  align="char">
1641 <para>video_system_t
1642  system</para>
1643 </entry><entry
1644  align="char">
1645 <para>video system of TV output.</para>
1646 </entry>
1647  </row></tbody></tgroup></informaltable>
1648 <para>ERRORS
1649 </para>
1650 <informaltable><tgroup cols="2"><tbody><row><entry
1651  align="char">
1652 <para>EBADF</para>
1653 </entry><entry
1654  align="char">
1655 <para>fd is not a valid open file descriptor</para>
1656 </entry>
1657  </row><row><entry
1658  align="char">
1659 <para>EINVAL</para>
1660 </entry><entry
1661  align="char">
1662 <para>system is not a valid or supported video system.</para>
1663 </entry>
1664  </row></tbody></tgroup></informaltable>
1665
1666 </section><section
1667 role="subsection"><title>VIDEO_SET_HIGHLIGHT</title>
1668 <para>DESCRIPTION
1669 </para>
1670 <informaltable><tgroup cols="1"><tbody><row><entry
1671  align="char">
1672 <para>This ioctl sets the SPU highlight information for the menu access of a DVD.</para>
1673 </entry>
1674  </row></tbody></tgroup></informaltable>
1675 <para>SYNOPSIS
1676 </para>
1677 <informaltable><tgroup cols="1"><tbody><row><entry
1678  align="char">
1679 <para> int ioctl(fd, int request = VIDEO_SET_HIGHLIGHT
1680  ,video_highlight_t &#x22C6;vhilite)</para>
1681 </entry>
1682  </row></tbody></tgroup></informaltable>
1683 <para>PARAMETERS
1684 </para>
1685 <informaltable><tgroup cols="2"><tbody><row><entry
1686  align="char">
1687 <para>int fd</para>
1688 </entry><entry
1689  align="char">
1690 <para>File descriptor returned by a previous call to open().</para>
1691 </entry>
1692  </row><row><entry
1693  align="char">
1694 <para>int request</para>
1695 </entry><entry
1696  align="char">
1697 <para>Equals VIDEO_SET_HIGHLIGHT for this command.</para>
1698 </entry>
1699  </row><row><entry
1700  align="char">
1701 <para>video_highlight_t
1702  *vhilite</para>
1703 </entry><entry
1704  align="char">
1705 <para>SPU Highlight information according to section ??.</para>
1706 </entry>
1707  </row></tbody></tgroup></informaltable>
1708 <para>ERRORS
1709 </para>
1710 <informaltable><tgroup cols="2"><tbody><row><entry
1711  align="char">
1712 <para>EBADF</para>
1713 </entry><entry
1714  align="char">
1715 <para>fd is not a valid open file descriptor.</para>
1716 </entry>
1717  </row><row><entry
1718  align="char">
1719 <para>EINVAL</para>
1720 </entry><entry
1721  align="char">
1722 <para>input is not a valid highlight setting.</para>
1723 </entry>
1724  </row></tbody></tgroup></informaltable>
1725
1726 </section><section
1727 role="subsection"><title>VIDEO_SET_SPU</title>
1728 <para>DESCRIPTION
1729 </para>
1730 <informaltable><tgroup cols="1"><tbody><row><entry
1731  align="char">
1732 <para>This ioctl activates or deactivates SPU decoding in a DVD input stream. It can
1733  only be used, if the driver is able to handle a DVD stream.</para>
1734 </entry>
1735  </row></tbody></tgroup></informaltable>
1736 <para>SYNOPSIS
1737 </para>
1738 <informaltable><tgroup cols="1"><tbody><row><entry
1739  align="char">
1740 <para> int ioctl(fd, int request = VIDEO_SET_SPU ,
1741  video_spu_t &#x22C6;spu)</para>
1742 </entry>
1743  </row></tbody></tgroup></informaltable>
1744 <para>PARAMETERS
1745 </para>
1746 <informaltable><tgroup cols="2"><tbody><row><entry
1747  align="char">
1748 <para>int fd</para>
1749 </entry><entry
1750  align="char">
1751 <para>File descriptor returned by a previous call to open().</para>
1752 </entry>
1753  </row><row><entry
1754  align="char">
1755 <para>int request</para>
1756 </entry><entry
1757  align="char">
1758 <para>Equals VIDEO_SET_SPU for this command.</para>
1759 </entry>
1760  </row><row><entry
1761  align="char">
1762 <para>video_spu_t *spu</para>
1763 </entry><entry
1764  align="char">
1765 <para>SPU decoding (de)activation and subid setting according
1766  to section ??.</para>
1767 </entry>
1768  </row></tbody></tgroup></informaltable>
1769 <para>ERRORS
1770 </para>
1771 <informaltable><tgroup cols="2"><tbody><row><entry
1772  align="char">
1773 <para>EBADF</para>
1774 </entry><entry
1775  align="char">
1776 <para>fd is not a valid open file descriptor</para>
1777 </entry>
1778  </row><row><entry
1779  align="char">
1780 <para>EINVAL</para>
1781 </entry><entry
1782  align="char">
1783 <para>input is not a valid spu setting or driver cannot handle
1784  SPU.</para>
1785 </entry>
1786  </row></tbody></tgroup></informaltable>
1787
1788 </section><section
1789 role="subsection"><title>VIDEO_SET_SPU_PALETTE</title>
1790 <para>DESCRIPTION
1791 </para>
1792 <informaltable><tgroup cols="1"><tbody><row><entry
1793  align="char">
1794 <para>This ioctl sets the SPU color palette.</para>
1795 </entry>
1796  </row></tbody></tgroup></informaltable>
1797 <para>SYNOPSIS
1798 </para>
1799 <informaltable><tgroup cols="1"><tbody><row><entry
1800  align="char">
1801 <para> int ioctl(fd, int request = VIDEO_SET_SPU_PALETTE
1802  ,video_spu_palette_t &#x22C6;palette )</para>
1803 </entry>
1804  </row></tbody></tgroup></informaltable>
1805 <para>PARAMETERS
1806 </para>
1807 <informaltable><tgroup cols="2"><tbody><row><entry
1808  align="char">
1809 <para>int fd</para>
1810 </entry><entry
1811  align="char">
1812 <para>File descriptor returned by a previous call to open().</para>
1813 </entry>
1814  </row><row><entry
1815  align="char">
1816 <para>int request</para>
1817 </entry><entry
1818  align="char">
1819 <para>Equals VIDEO_SET_SPU_PALETTE for this command.</para>
1820 </entry>
1821  </row><row><entry
1822  align="char">
1823 <para>video_spu_palette_t
1824  *palette</para>
1825 </entry><entry
1826  align="char">
1827 <para>SPU palette according to section ??.</para>
1828 </entry>
1829  </row></tbody></tgroup></informaltable>
1830 <para>ERRORS
1831 </para>
1832 <informaltable><tgroup cols="2"><tbody><row><entry
1833  align="char">
1834 <para>EBADF</para>
1835 </entry><entry
1836  align="char">
1837 <para>fd is not a valid open file descriptor</para>
1838 </entry>
1839  </row><row><entry
1840  align="char">
1841 <para>EINVAL</para>
1842 </entry><entry
1843  align="char">
1844 <para>input is not a valid palette or driver doesn&#8217;t handle SPU.</para>
1845 </entry>
1846  </row></tbody></tgroup></informaltable>
1847
1848 </section><section
1849 role="subsection"><title>VIDEO_GET_NAVI</title>
1850 <para>DESCRIPTION
1851 </para>
1852 <informaltable><tgroup cols="1"><tbody><row><entry
1853  align="char">
1854 <para>This ioctl returns navigational information from the DVD stream. This is
1855  especially needed if an encoded stream has to be decoded by the hardware.</para>
1856 </entry>
1857  </row></tbody></tgroup></informaltable>
1858 <para>SYNOPSIS
1859 </para>
1860 <informaltable><tgroup cols="1"><tbody><row><entry
1861  align="char">
1862 <para> int ioctl(fd, int request = VIDEO_GET_NAVI ,
1863  video_navi_pack_t &#x22C6;navipack)</para>
1864 </entry>
1865  </row></tbody></tgroup></informaltable>
1866 <para>PARAMETERS
1867 </para>
1868 <informaltable><tgroup cols="2"><tbody><row><entry
1869  align="char">
1870 <para>int fd</para>
1871 </entry><entry
1872  align="char">
1873 <para>File descriptor returned by a previous call to open().</para>
1874 </entry>
1875  </row><row><entry
1876  align="char">
1877 <para>int request</para>
1878 </entry><entry
1879  align="char">
1880 <para>Equals VIDEO_GET_NAVI for this command.</para>
1881 </entry>
1882  </row><row><entry
1883  align="char">
1884 <para>video_navi_pack_t
1885  *navipack</para>
1886 </entry><entry
1887  align="char">
1888 <para>PCI or DSI pack (private stream 2) according to section
1889  ??.</para>
1890 </entry>
1891  </row></tbody></tgroup></informaltable>
1892 <para>ERRORS
1893 </para>
1894 <informaltable><tgroup cols="2"><tbody><row><entry
1895  align="char">
1896 <para>EBADF</para>
1897 </entry><entry
1898  align="char">
1899 <para>fd is not a valid open file descriptor</para>
1900 </entry>
1901  </row><row><entry
1902  align="char">
1903 <para>EFAULT</para>
1904 </entry><entry
1905  align="char">
1906 <para>driver is not able to return navigational information</para>
1907 </entry>
1908  </row></tbody></tgroup></informaltable>
1909
1910 </section><section
1911 role="subsection"><title>VIDEO_SET_ATTRIBUTES</title>
1912 <para>DESCRIPTION
1913 </para>
1914 <informaltable><tgroup cols="1"><tbody><row><entry
1915  align="char">
1916 <para>This ioctl is intended for DVD playback and allows you to set certain
1917  information about the stream. Some hardware may not need this information,
1918  but the call also tells the hardware to prepare for DVD playback.</para>
1919 </entry>
1920  </row></tbody></tgroup></informaltable>
1921 <para>SYNOPSIS
1922 </para>
1923 <informaltable><tgroup cols="1"><tbody><row><entry
1924  align="char">
1925 <para> int ioctl(fd, int request = VIDEO_SET_ATTRIBUTE
1926  ,video_attributes_t vattr)</para>
1927 </entry>
1928  </row></tbody></tgroup></informaltable>
1929 <para>PARAMETERS
1930 </para>
1931 <informaltable><tgroup cols="2"><tbody><row><entry
1932  align="char">
1933 <para>int fd</para>
1934 </entry><entry
1935  align="char">
1936 <para>File descriptor returned by a previous call to open().</para>
1937 </entry>
1938  </row><row><entry
1939  align="char">
1940 <para>int request</para>
1941 </entry><entry
1942  align="char">
1943 <para>Equals VIDEO_SET_ATTRIBUTE for this command.</para>
1944 </entry>
1945  </row><row><entry
1946  align="char">
1947 <para>video_attributes_t
1948  vattr</para>
1949 </entry><entry
1950  align="char">
1951 <para>video attributes according to section ??.</para>
1952 </entry>
1953  </row></tbody></tgroup></informaltable>
1954 <para>ERRORS
1955 </para>
1956 <informaltable><tgroup cols="2"><tbody><row><entry
1957  align="char">
1958 <para>EBADF</para>
1959 </entry><entry
1960  align="char">
1961 <para>fd is not a valid open file descriptor</para>
1962 </entry>
1963  </row><row><entry
1964  align="char">
1965 <para>EINVAL</para>
1966 </entry><entry
1967  align="char">
1968 <para>input is not a valid attribute setting.</para>
1969 </entry>
1970  </row></tbody></tgroup></informaltable>
1971  </section></section>