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