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> 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 32the 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 34VIDEO_GET_EVENT (??) which report about the display format of the current video 35stream. 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 42application has to specify how to handle the cropping of the picture. This can be done using 43the 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 59the following values, depending on whether we are replaying from an internal (demuxer) or 60external (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 69DVR device) as the source of the video stream. If VIDEO_SOURCE_MEMORY 70is selected the stream comes from the application through the <emphasis role="tt">write()</emphasis> system 71call. 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 78state 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 92call. 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 108states 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 120stopped. Otherwise, the last picture will be displayed. play_state indicates if the video is 121currently frozen, stopped, or being played back. The stream_source corresponds to the seleted 122source for the video stream. It can come either from the demultiplexer or from memory. 123The video_format indicates the aspect ratio (one of 4:3 or 16:9) of the currently 124played video stream. Finally, display_format corresponds to the selected cropping 125mode in case the source video format is not the same as the format of the output 126device. 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 133following structure. 134</para> 135<programlisting> 136 /⋆ pointer to and size of a single iframe in memory ⋆/ 137 struct video_still_picture { 138 char ⋆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 147bits set according to the hardwares capabilities. 148</para> 149<programlisting> 150 /⋆ bit definitions for capabilities: ⋆/ 151 /⋆ can the hardware decode MPEG1 and/or MPEG2? ⋆/ 152 #define VIDEO_CAP_MPEG1 1 153 #define VIDEO_CAP_MPEG2 2 154 /⋆ 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) ⋆/ 157 #define VIDEO_CAP_SYS 4 158 #define VIDEO_CAP_PROG 8 159 /⋆ can the driver also handle SPU, NAVI and CSS encoded data? 160 (CSS API is not present yet) ⋆/ 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 170following 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 189call expects the following format for that information: 190</para> 191<programlisting> 192 typedef 193 struct video_highlight { 194 boolean active; /⋆ 1=show highlight, 0=hide highlight ⋆/ 195 uint8_t contrast1; /⋆ 7- 4 Pattern pixel contrast ⋆/ 196 /⋆ 3- 0 Background pixel contrast ⋆/ 197 uint8_t contrast2; /⋆ 7- 4 Emphasis pixel-2 contrast ⋆/ 198 /⋆ 3- 0 Emphasis pixel-1 contrast ⋆/ 199 uint8_t color1; /⋆ 7- 4 Pattern pixel color ⋆/ 200 /⋆ 3- 0 Background pixel color ⋆/ 201 uint8_t color2; /⋆ 7- 4 Emphasis pixel-2 color ⋆/ 202 /⋆ 3- 0 Emphasis pixel-1 color ⋆/ 203 uint32_t ypos; /⋆ 23-22 auto action mode ⋆/ 204 /⋆ 21-12 start y ⋆/ 205 /⋆ 9- 0 end y ⋆/ 206 uint32_t xpos; /⋆ 23-22 button color number ⋆/ 207 /⋆ 21-12 start x ⋆/ 208 /⋆ 9- 0 end x ⋆/ 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 216following 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 ⋆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 243VIDEO_GET_NAVI: 244</para> 245<programlisting> 246 typedef 247 struct video_navi_pack{ 248 int length; /⋆ 0 ... 1024 ⋆/ 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 /⋆ bits: descr. ⋆/ 262 /⋆ 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) ⋆/ 263 /⋆ 13-12 TV system (0=525/60, 1=625/50) ⋆/ 264 /⋆ 11-10 Aspect ratio (0=4:3, 3=16:9) ⋆/ 265 /⋆ 9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca ⋆/ 266 /⋆ 7 line 21-1 data present in GOP (1=yes, 0=no) ⋆/ 267 /⋆ 6 line 21-2 data present in GOP (1=yes, 0=no) ⋆/ 268 /⋆ 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 ⋆/ 269 /⋆ 2 source letterboxed (1=yes, 0=no) ⋆/ 270 /⋆ 0 film/camera mode (0=camera, 1=film (625/50 only)) ⋆/ 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 ⋆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 ⋆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 492role="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 566role="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 619role="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 676role="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 729role="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 792role="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 865role="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 ⋆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 933role="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 ⋆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 1022role="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 1092role="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 ⋆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 1162role="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 1236role="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 1310role="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 ⋆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 1372role="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 1439role="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 1483role="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 1544role="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 1605role="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 1667role="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 ⋆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 1727role="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 ⋆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 1789role="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 ⋆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’t handle SPU.</para> 1845</entry> 1846 </row></tbody></tgroup></informaltable> 1847 1848</section><section 1849role="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 ⋆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 1911role="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