video.xml 56 KB

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