About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / DocBook / dvb / video.xml


Based on kernel version 3.0.4. Page generated on 2011-10-03 22:07 EST.

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>
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog