Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/Documentation/DocBook/dvb/video.xml
10823 views
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>
1972
1973