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