audio.xml 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512
  1. <title>DVB Audio Device</title>
  2. <para>The DVB audio device controls the MPEG2 audio decoder of the DVB hardware. It
  3. can be accessed through <emphasis role="tt">/dev/dvb/adapter0/audio0</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>Please note that some DVB cards don&#8217;t have their own MPEG decoder, which results in
  8. the omission of the audio and video device.
  9. </para>
  10. <section id="audio_data_types">
  11. <title>Audio Data Types</title>
  12. <para>This section describes the structures, data types and defines used when talking to the
  13. audio device.
  14. </para>
  15. <section id="audio-stream-source-t">
  16. <title>audio_stream_source_t</title>
  17. <para>The audio stream source is set through the AUDIO_SELECT_SOURCE call and can take
  18. the following values, depending on whether we are replaying from an internal (demux) or
  19. external (user write) source.
  20. </para>
  21. <programlisting>
  22. typedef enum {
  23. AUDIO_SOURCE_DEMUX,
  24. AUDIO_SOURCE_MEMORY
  25. } audio_stream_source_t;
  26. </programlisting>
  27. <para>AUDIO_SOURCE_DEMUX selects the demultiplexer (fed either by the frontend or the
  28. DVR device) as the source of the video stream. If AUDIO_SOURCE_MEMORY
  29. is selected the stream comes from the application through the <emphasis role="tt">write()</emphasis> system
  30. call.
  31. </para>
  32. </section>
  33. <section id="audio-play-state-t">
  34. <title>audio_play_state_t</title>
  35. <para>The following values can be returned by the AUDIO_GET_STATUS call representing the
  36. state of audio playback.
  37. </para>
  38. <programlisting>
  39. typedef enum {
  40. AUDIO_STOPPED,
  41. AUDIO_PLAYING,
  42. AUDIO_PAUSED
  43. } audio_play_state_t;
  44. </programlisting>
  45. </section>
  46. <section id="audio-channel-select-t">
  47. <title>audio_channel_select_t</title>
  48. <para>The audio channel selected via AUDIO_CHANNEL_SELECT is determined by the
  49. following values.
  50. </para>
  51. <programlisting>
  52. typedef enum {
  53. AUDIO_STEREO,
  54. AUDIO_MONO_LEFT,
  55. AUDIO_MONO_RIGHT,
  56. AUDIO_MONO,
  57. AUDIO_STEREO_SWAPPED
  58. } audio_channel_select_t;
  59. </programlisting>
  60. </section>
  61. <section id="audio-status">
  62. <title>struct audio_status</title>
  63. <para>The AUDIO_GET_STATUS call returns the following structure informing about various
  64. states of the playback operation.
  65. </para>
  66. <programlisting>
  67. typedef struct audio_status {
  68. boolean AV_sync_state;
  69. boolean mute_state;
  70. audio_play_state_t play_state;
  71. audio_stream_source_t stream_source;
  72. audio_channel_select_t channel_select;
  73. boolean bypass_mode;
  74. audio_mixer_t mixer_state;
  75. } audio_status_t;
  76. </programlisting>
  77. </section>
  78. <section id="audio-mixer">
  79. <title>struct audio_mixer</title>
  80. <para>The following structure is used by the AUDIO_SET_MIXER call to set the audio
  81. volume.
  82. </para>
  83. <programlisting>
  84. typedef struct audio_mixer {
  85. unsigned int volume_left;
  86. unsigned int volume_right;
  87. } audio_mixer_t;
  88. </programlisting>
  89. </section>
  90. <section id="audio_encodings">
  91. <title>audio encodings</title>
  92. <para>A call to AUDIO_GET_CAPABILITIES returns an unsigned integer with the following
  93. bits set according to the hardwares capabilities.
  94. </para>
  95. <programlisting>
  96. #define AUDIO_CAP_DTS 1
  97. #define AUDIO_CAP_LPCM 2
  98. #define AUDIO_CAP_MP1 4
  99. #define AUDIO_CAP_MP2 8
  100. #define AUDIO_CAP_MP3 16
  101. #define AUDIO_CAP_AAC 32
  102. #define AUDIO_CAP_OGG 64
  103. #define AUDIO_CAP_SDDS 128
  104. #define AUDIO_CAP_AC3 256
  105. </programlisting>
  106. </section>
  107. <section id="audio-karaoke">
  108. <title>struct audio_karaoke</title>
  109. <para>The ioctl AUDIO_SET_KARAOKE uses the following format:
  110. </para>
  111. <programlisting>
  112. typedef
  113. struct audio_karaoke {
  114. int vocal1;
  115. int vocal2;
  116. int melody;
  117. } audio_karaoke_t;
  118. </programlisting>
  119. <para>If Vocal1 or Vocal2 are non-zero, they get mixed into left and right t at 70% each. If both,
  120. Vocal1 and Vocal2 are non-zero, Vocal1 gets mixed into the left channel and Vocal2 into the
  121. right channel at 100% each. Ff Melody is non-zero, the melody channel gets mixed into left
  122. and right.
  123. </para>
  124. </section>
  125. <section id="audio-attributes-t">
  126. <title>audio attributes</title>
  127. <para>The following attributes can be set by a call to AUDIO_SET_ATTRIBUTES:
  128. </para>
  129. <programlisting>
  130. typedef uint16_t audio_attributes_t;
  131. /&#x22C6; bits: descr. &#x22C6;/
  132. /&#x22C6; 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, &#x22C6;/
  133. /&#x22C6; 12 multichannel extension &#x22C6;/
  134. /&#x22C6; 11-10 audio type (0=not spec, 1=language included) &#x22C6;/
  135. /&#x22C6; 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) &#x22C6;/
  136. /&#x22C6; 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, &#x22C6;/
  137. /&#x22C6; 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) &#x22C6;/
  138. /&#x22C6; 2- 0 number of audio channels (n+1 channels) &#x22C6;/
  139. </programlisting>
  140. </section></section>
  141. <section id="audio_function_calls">
  142. <title>Audio Function Calls</title>
  143. <section id="audio_fopen">
  144. <title>open()</title>
  145. <para>DESCRIPTION
  146. </para>
  147. <informaltable><tgroup cols="1"><tbody><row><entry
  148. align="char">
  149. <para>This system call opens a named audio device (e.g. /dev/dvb/adapter0/audio0)
  150. for subsequent use. When an open() call has succeeded, the device will be ready
  151. for use. The significance of blocking or non-blocking mode is described in the
  152. documentation for functions where there is a difference. It does not affect the
  153. semantics of the open() call itself. A device opened in blocking mode can later
  154. be put into non-blocking mode (and vice versa) using the F_SETFL command
  155. of the fcntl system call. This is a standard system call, documented in the Linux
  156. manual page for fcntl. Only one user can open the Audio Device in O_RDWR
  157. mode. All other attempts to open the device in this mode will fail, and an error
  158. code will be returned. If the Audio Device is opened in O_RDONLY mode, the
  159. only ioctl call that can be used is AUDIO_GET_STATUS. All other call will
  160. return with an error code.</para>
  161. </entry>
  162. </row></tbody></tgroup></informaltable>
  163. <para>SYNOPSIS
  164. </para>
  165. <informaltable><tgroup cols="1"><tbody><row><entry
  166. align="char">
  167. <para>int open(const char &#x22C6;deviceName, int flags);</para>
  168. </entry>
  169. </row></tbody></tgroup></informaltable>
  170. <para>PARAMETERS
  171. </para>
  172. <informaltable><tgroup cols="2"><tbody><row><entry
  173. align="char">
  174. <para>const char
  175. *deviceName</para>
  176. </entry><entry
  177. align="char">
  178. <para>Name of specific audio device.</para>
  179. </entry>
  180. </row><row><entry
  181. align="char">
  182. <para>int flags</para>
  183. </entry><entry
  184. align="char">
  185. <para>A bit-wise OR of the following flags:</para>
  186. </entry>
  187. </row><row><entry
  188. align="char">
  189. </entry><entry
  190. align="char">
  191. <para>O_RDONLY read-only access</para>
  192. </entry>
  193. </row><row><entry
  194. align="char">
  195. </entry><entry
  196. align="char">
  197. <para>O_RDWR read/write access</para>
  198. </entry>
  199. </row><row><entry
  200. align="char">
  201. </entry><entry
  202. align="char">
  203. <para>O_NONBLOCK open in non-blocking mode</para>
  204. </entry>
  205. </row><row><entry
  206. align="char">
  207. </entry><entry
  208. align="char">
  209. <para>(blocking mode is the default)</para>
  210. </entry>
  211. </row></tbody></tgroup></informaltable>
  212. <para>RETURN VALUE</para>
  213. <informaltable><tgroup cols="2"><tbody><row><entry
  214. align="char">
  215. <para>ENODEV</para>
  216. </entry><entry
  217. align="char">
  218. <para>Device driver not loaded/available.</para>
  219. </entry>
  220. </row><row><entry
  221. align="char">
  222. <para>EINTERNAL</para>
  223. </entry><entry
  224. align="char">
  225. <para>Internal error.</para>
  226. </entry>
  227. </row><row><entry
  228. align="char">
  229. <para>EBUSY</para>
  230. </entry><entry
  231. align="char">
  232. <para>Device or resource busy.</para>
  233. </entry>
  234. </row><row><entry
  235. align="char">
  236. <para>EINVAL</para>
  237. </entry><entry
  238. align="char">
  239. <para>Invalid argument.</para>
  240. </entry>
  241. </row></tbody></tgroup></informaltable>
  242. </section>
  243. <section id="audio_fclose">
  244. <title>close()</title>
  245. <para>DESCRIPTION
  246. </para>
  247. <informaltable><tgroup cols="1"><tbody><row><entry
  248. align="char">
  249. <para>This system call closes a previously opened audio device.</para>
  250. </entry>
  251. </row></tbody></tgroup></informaltable>
  252. <para>SYNOPSIS
  253. </para>
  254. <informaltable><tgroup cols="1"><tbody><row><entry
  255. align="char">
  256. <para>int close(int fd);</para>
  257. </entry>
  258. </row></tbody></tgroup></informaltable>
  259. <para>PARAMETERS
  260. </para>
  261. <informaltable><tgroup cols="2"><tbody><row><entry
  262. align="char">
  263. <para>int fd</para>
  264. </entry><entry
  265. align="char">
  266. <para>File descriptor returned by a previous call to open().</para>
  267. </entry>
  268. </row></tbody></tgroup></informaltable>
  269. <para>RETURN VALUE</para>
  270. <informaltable><tgroup cols="2"><tbody><row><entry
  271. align="char">
  272. <para>EBADF</para>
  273. </entry><entry
  274. align="char">
  275. <para>fd is not a valid open file descriptor.</para>
  276. </entry>
  277. </row></tbody></tgroup></informaltable>
  278. </section>
  279. <section id="audio_fwrite">
  280. <title>write()</title>
  281. <para>DESCRIPTION
  282. </para>
  283. <informaltable><tgroup cols="1"><tbody><row><entry
  284. align="char">
  285. <para>This system call can only be used if AUDIO_SOURCE_MEMORY is selected
  286. in the ioctl call AUDIO_SELECT_SOURCE. The data provided shall be in
  287. PES format. If O_NONBLOCK is not specified the function will block until
  288. buffer space is available. The amount of data to be transferred is implied by
  289. count.</para>
  290. </entry>
  291. </row></tbody></tgroup></informaltable>
  292. <para>SYNOPSIS
  293. </para>
  294. <informaltable><tgroup cols="1"><tbody><row><entry
  295. align="char">
  296. <para>size_t write(int fd, const void &#x22C6;buf, size_t count);</para>
  297. </entry>
  298. </row></tbody></tgroup></informaltable>
  299. <para>PARAMETERS
  300. </para>
  301. <informaltable><tgroup cols="2"><tbody><row><entry
  302. align="char">
  303. <para>int fd</para>
  304. </entry><entry
  305. align="char">
  306. <para>File descriptor returned by a previous call to open().</para>
  307. </entry>
  308. </row><row><entry
  309. align="char">
  310. <para>void *buf</para>
  311. </entry><entry
  312. align="char">
  313. <para>Pointer to the buffer containing the PES data.</para>
  314. </entry>
  315. </row><row><entry
  316. align="char">
  317. <para>size_t count</para>
  318. </entry><entry
  319. align="char">
  320. <para>Size of buf.</para>
  321. </entry>
  322. </row></tbody></tgroup></informaltable>
  323. <para>RETURN VALUE</para>
  324. <informaltable><tgroup cols="2"><tbody><row><entry
  325. align="char">
  326. <para>EPERM</para>
  327. </entry><entry
  328. align="char">
  329. <para>Mode AUDIO_SOURCE_MEMORY not selected.</para>
  330. </entry>
  331. </row><row><entry
  332. align="char">
  333. <para>ENOMEM</para>
  334. </entry><entry
  335. align="char">
  336. <para>Attempted to write more data than the internal buffer can
  337. hold.</para>
  338. </entry>
  339. </row><row><entry
  340. align="char">
  341. <para>EBADF</para>
  342. </entry><entry
  343. align="char">
  344. <para>fd is not a valid open file descriptor.</para>
  345. </entry>
  346. </row></tbody></tgroup></informaltable>
  347. </section><section id="AUDIO_STOP"
  348. role="subsection"><title>AUDIO_STOP</title>
  349. <para>DESCRIPTION
  350. </para>
  351. <informaltable><tgroup cols="1"><tbody><row><entry
  352. align="char">
  353. <para>This ioctl call asks the Audio Device to stop playing the current stream.</para>
  354. </entry>
  355. </row></tbody></tgroup></informaltable>
  356. <para>SYNOPSIS
  357. </para>
  358. <informaltable><tgroup cols="1"><tbody><row><entry
  359. align="char">
  360. <para>int ioctl(int fd, int request = AUDIO_STOP);</para>
  361. </entry>
  362. </row></tbody></tgroup></informaltable>
  363. <para>PARAMETERS
  364. </para>
  365. <informaltable><tgroup cols="2"><tbody><row><entry
  366. align="char">
  367. <para>int fd</para>
  368. </entry><entry
  369. align="char">
  370. <para>File descriptor returned by a previous call to open().</para>
  371. </entry>
  372. </row><row><entry
  373. align="char">
  374. <para>int request</para>
  375. </entry><entry
  376. align="char">
  377. <para>Equals AUDIO_STOP for this command.</para>
  378. </entry>
  379. </row></tbody></tgroup></informaltable>
  380. &return-value-dvb;
  381. <informaltable><tgroup cols="2"><tbody><row><entry
  382. align="char">
  383. <para>EBADF</para>
  384. </entry><entry
  385. align="char">
  386. <para>fd is not a valid open file descriptor</para>
  387. </entry>
  388. </row><row><entry
  389. align="char">
  390. <para>EINTERNAL</para>
  391. </entry><entry
  392. align="char">
  393. <para>Internal error.</para>
  394. </entry>
  395. </row></tbody></tgroup></informaltable>
  396. </section><section id="AUDIO_PLAY"
  397. role="subsection"><title>AUDIO_PLAY</title>
  398. <para>DESCRIPTION
  399. </para>
  400. <informaltable><tgroup cols="1"><tbody><row><entry
  401. align="char">
  402. <para>This ioctl call asks the Audio Device to start playing an audio stream from the
  403. selected source.</para>
  404. </entry>
  405. </row></tbody></tgroup></informaltable>
  406. <para>SYNOPSIS
  407. </para>
  408. <informaltable><tgroup cols="1"><tbody><row><entry
  409. align="char">
  410. <para>int ioctl(int fd, int request = AUDIO_PLAY);</para>
  411. </entry>
  412. </row></tbody></tgroup></informaltable>
  413. <para>PARAMETERS
  414. </para>
  415. <informaltable><tgroup cols="2"><tbody><row><entry
  416. align="char">
  417. <para>int fd</para>
  418. </entry><entry
  419. align="char">
  420. <para>File descriptor returned by a previous call to open().</para>
  421. </entry>
  422. </row><row><entry
  423. align="char">
  424. <para>int request</para>
  425. </entry><entry
  426. align="char">
  427. <para>Equals AUDIO_PLAY for this command.</para>
  428. </entry>
  429. </row></tbody></tgroup></informaltable>
  430. &return-value-dvb;
  431. <informaltable><tgroup cols="2"><tbody><row><entry
  432. align="char">
  433. <para>EBADF</para>
  434. </entry><entry
  435. align="char">
  436. <para>fd is not a valid open file descriptor</para>
  437. </entry>
  438. </row><row><entry
  439. align="char">
  440. <para>EINTERNAL</para>
  441. </entry><entry
  442. align="char">
  443. <para>Internal error.</para>
  444. </entry>
  445. </row></tbody></tgroup></informaltable>
  446. </section><section id="AUDIO_PAUSE"
  447. role="subsection"><title>AUDIO_PAUSE</title>
  448. <para>DESCRIPTION
  449. </para>
  450. <informaltable><tgroup cols="1"><tbody><row><entry
  451. align="char">
  452. <para>This ioctl call suspends the audio stream being played. Decoding and playing
  453. are paused. It is then possible to restart again decoding and playing process of
  454. the audio stream using AUDIO_CONTINUE command.</para>
  455. </entry>
  456. </row><row><entry
  457. align="char">
  458. <para>If AUDIO_SOURCE_MEMORY is selected in the ioctl call
  459. AUDIO_SELECT_SOURCE, the DVB-subsystem will not decode (consume)
  460. any more data until the ioctl call AUDIO_CONTINUE or AUDIO_PLAY is
  461. performed.</para>
  462. </entry>
  463. </row></tbody></tgroup></informaltable>
  464. <para>SYNOPSIS
  465. </para>
  466. <informaltable><tgroup cols="1"><tbody><row><entry
  467. align="char">
  468. <para>int ioctl(int fd, int request = AUDIO_PAUSE);</para>
  469. </entry>
  470. </row></tbody></tgroup></informaltable>
  471. <para>PARAMETERS
  472. </para>
  473. <informaltable><tgroup cols="2"><tbody><row><entry
  474. align="char">
  475. <para>int fd</para>
  476. </entry><entry
  477. align="char">
  478. <para>File descriptor returned by a previous call to open().</para>
  479. </entry>
  480. </row><row><entry
  481. align="char">
  482. <para>int request</para>
  483. </entry><entry
  484. align="char">
  485. <para>Equals AUDIO_PAUSE for this command.</para>
  486. </entry>
  487. </row></tbody></tgroup></informaltable>
  488. &return-value-dvb;
  489. <informaltable><tgroup cols="2"><tbody><row><entry
  490. align="char">
  491. <para>EBADF</para>
  492. </entry><entry
  493. align="char">
  494. <para>fd is not a valid open file descriptor.</para>
  495. </entry>
  496. </row><row><entry
  497. align="char">
  498. <para>EINTERNAL</para>
  499. </entry><entry
  500. align="char">
  501. <para>Internal error.</para>
  502. </entry>
  503. </row></tbody></tgroup></informaltable>
  504. </section><section id="AUDIO_CONTINUE"
  505. role="subsection"><title>AUDIO_CONTINUE</title>
  506. <para>DESCRIPTION
  507. </para>
  508. <informaltable><tgroup cols="1"><tbody><row><entry
  509. align="char">
  510. <para>This ioctl restarts the decoding and playing process previously paused
  511. with AUDIO_PAUSE command.</para>
  512. </entry>
  513. </row><row><entry
  514. align="char">
  515. <para>It only works if the stream were previously stopped with AUDIO_PAUSE</para>
  516. </entry>
  517. </row></tbody></tgroup></informaltable>
  518. <para>SYNOPSIS
  519. </para>
  520. <informaltable><tgroup cols="1"><tbody><row><entry
  521. align="char">
  522. <para>int ioctl(int fd, int request = AUDIO_CONTINUE);</para>
  523. </entry>
  524. </row></tbody></tgroup></informaltable>
  525. <para>PARAMETERS
  526. </para>
  527. <informaltable><tgroup cols="2"><tbody><row><entry
  528. align="char">
  529. <para>int fd</para>
  530. </entry><entry
  531. align="char">
  532. <para>File descriptor returned by a previous call to open().</para>
  533. </entry>
  534. </row><row><entry
  535. align="char">
  536. <para>int request</para>
  537. </entry><entry
  538. align="char">
  539. <para>Equals AUDIO_CONTINUE for this command.</para>
  540. </entry>
  541. </row></tbody></tgroup></informaltable>
  542. &return-value-dvb;
  543. <informaltable><tgroup cols="2"><tbody><row><entry
  544. align="char">
  545. <para>EBADF</para>
  546. </entry><entry
  547. align="char">
  548. <para>fd is not a valid open file descriptor.</para>
  549. </entry>
  550. </row><row><entry
  551. align="char">
  552. <para>EINTERNAL</para>
  553. </entry><entry
  554. align="char">
  555. <para>Internal error.</para>
  556. </entry>
  557. </row></tbody></tgroup></informaltable>
  558. </section><section id="AUDIO_SELECT_SOURCE"
  559. role="subsection"><title>AUDIO_SELECT_SOURCE</title>
  560. <para>DESCRIPTION
  561. </para>
  562. <informaltable><tgroup cols="1"><tbody><row><entry
  563. align="char">
  564. <para>This ioctl call informs the audio device which source shall be used
  565. for the input data. The possible sources are demux or memory. If
  566. AUDIO_SOURCE_MEMORY is selected, the data is fed to the Audio Device
  567. through the write command.</para>
  568. </entry>
  569. </row></tbody></tgroup></informaltable>
  570. <para>SYNOPSIS
  571. </para>
  572. <informaltable><tgroup cols="1"><tbody><row><entry
  573. align="char">
  574. <para>int ioctl(int fd, int request = AUDIO_SELECT_SOURCE,
  575. audio_stream_source_t source);</para>
  576. </entry>
  577. </row></tbody></tgroup></informaltable>
  578. <para>PARAMETERS
  579. </para>
  580. <informaltable><tgroup cols="2"><tbody><row><entry
  581. align="char">
  582. <para>int fd</para>
  583. </entry><entry
  584. align="char">
  585. <para>File descriptor returned by a previous call to open().</para>
  586. </entry>
  587. </row><row><entry
  588. align="char">
  589. <para>int request</para>
  590. </entry><entry
  591. align="char">
  592. <para>Equals AUDIO_SELECT_SOURCE for this command.</para>
  593. </entry>
  594. </row><row><entry
  595. align="char">
  596. <para>audio_stream_source_t
  597. source</para>
  598. </entry><entry
  599. align="char">
  600. <para>Indicates the source that shall be used for the Audio
  601. stream.</para>
  602. </entry>
  603. </row></tbody></tgroup></informaltable>
  604. &return-value-dvb;
  605. <informaltable><tgroup cols="2"><tbody><row><entry
  606. align="char">
  607. <para>EBADF</para>
  608. </entry><entry
  609. align="char">
  610. <para>fd is not a valid open file descriptor.</para>
  611. </entry>
  612. </row><row><entry
  613. align="char">
  614. <para>EINTERNAL</para>
  615. </entry><entry
  616. align="char">
  617. <para>Internal error.</para>
  618. </entry>
  619. </row><row><entry
  620. align="char">
  621. <para>EINVAL</para>
  622. </entry><entry
  623. align="char">
  624. <para>Illegal input parameter.</para>
  625. </entry>
  626. </row></tbody></tgroup></informaltable>
  627. </section><section id="AUDIO_SET_MUTE"
  628. role="subsection"><title>AUDIO_SET_MUTE</title>
  629. <para>DESCRIPTION
  630. </para>
  631. <informaltable><tgroup cols="1"><tbody><row><entry
  632. align="char">
  633. <para>This ioctl call asks the audio device to mute the stream that is currently being
  634. played.</para>
  635. </entry>
  636. </row></tbody></tgroup></informaltable>
  637. <para>SYNOPSIS
  638. </para>
  639. <informaltable><tgroup cols="1"><tbody><row><entry
  640. align="char">
  641. <para>int ioctl(int fd, int request = AUDIO_SET_MUTE,
  642. boolean state);</para>
  643. </entry>
  644. </row></tbody></tgroup></informaltable>
  645. <para>PARAMETERS
  646. </para>
  647. <informaltable><tgroup cols="2"><tbody><row><entry
  648. align="char">
  649. <para>int fd</para>
  650. </entry><entry
  651. align="char">
  652. <para>File descriptor returned by a previous call to open().</para>
  653. </entry>
  654. </row><row><entry
  655. align="char">
  656. <para>int request</para>
  657. </entry><entry
  658. align="char">
  659. <para>Equals AUDIO_SET_MUTE for this command.</para>
  660. </entry>
  661. </row><row><entry
  662. align="char">
  663. <para>boolean state</para>
  664. </entry><entry
  665. align="char">
  666. <para>Indicates if audio device shall mute or not.</para>
  667. </entry>
  668. </row><row><entry
  669. align="char">
  670. </entry><entry
  671. align="char">
  672. <para>TRUE Audio Mute</para>
  673. </entry>
  674. </row><row><entry
  675. align="char">
  676. </entry><entry
  677. align="char">
  678. <para>FALSE Audio Un-mute</para>
  679. </entry>
  680. </row></tbody></tgroup></informaltable>
  681. &return-value-dvb;
  682. <informaltable><tgroup cols="2"><tbody><row><entry
  683. align="char">
  684. <para>EBADF</para>
  685. </entry><entry
  686. align="char">
  687. <para>fd is not a valid open file descriptor.</para>
  688. </entry>
  689. </row><row><entry
  690. align="char">
  691. <para>EINTERNAL</para>
  692. </entry><entry
  693. align="char">
  694. <para>Internal error.</para>
  695. </entry>
  696. </row><row><entry
  697. align="char">
  698. <para>EINVAL</para>
  699. </entry><entry
  700. align="char">
  701. <para>Illegal input parameter.</para>
  702. </entry>
  703. </row></tbody></tgroup></informaltable>
  704. </section><section id="AUDIO_SET_AV_SYNC"
  705. role="subsection"><title>AUDIO_SET_AV_SYNC</title>
  706. <para>DESCRIPTION
  707. </para>
  708. <informaltable><tgroup cols="1"><tbody><row><entry
  709. align="char">
  710. <para>This ioctl call asks the Audio Device to turn ON or OFF A/V synchronization.</para>
  711. </entry>
  712. </row></tbody></tgroup></informaltable>
  713. <para>SYNOPSIS
  714. </para>
  715. <informaltable><tgroup cols="1"><tbody><row><entry
  716. align="char">
  717. <para>int ioctl(int fd, int request = AUDIO_SET_AV_SYNC,
  718. boolean state);</para>
  719. </entry>
  720. </row></tbody></tgroup></informaltable>
  721. <para>PARAMETERS
  722. </para>
  723. <informaltable><tgroup cols="2"><tbody><row><entry
  724. align="char">
  725. <para>int fd</para>
  726. </entry><entry
  727. align="char">
  728. <para>File descriptor returned by a previous call to open().</para>
  729. </entry>
  730. </row><row><entry
  731. align="char">
  732. <para>int request</para>
  733. </entry><entry
  734. align="char">
  735. <para>Equals AUDIO_AV_SYNC for this command.</para>
  736. </entry>
  737. </row><row><entry
  738. align="char">
  739. <para>boolean state</para>
  740. </entry><entry
  741. align="char">
  742. <para>Tells the DVB subsystem if A/V synchronization shall be
  743. ON or OFF.</para>
  744. </entry>
  745. </row><row><entry
  746. align="char">
  747. </entry><entry
  748. align="char">
  749. <para>TRUE AV-sync ON</para>
  750. </entry>
  751. </row><row><entry
  752. align="char">
  753. </entry><entry
  754. align="char">
  755. <para>FALSE AV-sync OFF</para>
  756. </entry>
  757. </row></tbody></tgroup></informaltable>
  758. &return-value-dvb;
  759. <informaltable><tgroup cols="2"><tbody><row><entry
  760. align="char">
  761. <para>EBADF</para>
  762. </entry><entry
  763. align="char">
  764. <para>fd is not a valid open file descriptor.</para>
  765. </entry>
  766. </row><row><entry
  767. align="char">
  768. <para>EINTERNAL</para>
  769. </entry><entry
  770. align="char">
  771. <para>Internal error.</para>
  772. </entry>
  773. </row><row><entry
  774. align="char">
  775. <para>EINVAL</para>
  776. </entry><entry
  777. align="char">
  778. <para>Illegal input parameter.</para>
  779. </entry>
  780. </row></tbody></tgroup></informaltable>
  781. </section><section id="AUDIO_SET_BYPASS_MODE"
  782. role="subsection"><title>AUDIO_SET_BYPASS_MODE</title>
  783. <para>DESCRIPTION
  784. </para>
  785. <informaltable><tgroup cols="1"><tbody><row><entry
  786. align="char">
  787. <para>This ioctl call asks the Audio Device to bypass the Audio decoder and forward
  788. the stream without decoding. This mode shall be used if streams that can&#8217;t be
  789. handled by the DVB system shall be decoded. Dolby DigitalTM streams are
  790. automatically forwarded by the DVB subsystem if the hardware can handle it.</para>
  791. </entry>
  792. </row></tbody></tgroup></informaltable>
  793. <para>SYNOPSIS
  794. </para>
  795. <informaltable><tgroup cols="1"><tbody><row><entry
  796. align="char">
  797. <para>int ioctl(int fd, int request =
  798. AUDIO_SET_BYPASS_MODE, boolean mode);</para>
  799. </entry>
  800. </row></tbody></tgroup></informaltable>
  801. <para>PARAMETERS
  802. </para>
  803. <informaltable><tgroup cols="2"><tbody><row><entry
  804. align="char">
  805. <para>int fd</para>
  806. </entry><entry
  807. align="char">
  808. <para>File descriptor returned by a previous call to open().</para>
  809. </entry>
  810. </row><row><entry
  811. align="char">
  812. <para>int request</para>
  813. </entry><entry
  814. align="char">
  815. <para>Equals AUDIO_SET_BYPASS_MODE for this
  816. command.</para>
  817. </entry>
  818. </row><row><entry
  819. align="char">
  820. <para>boolean mode</para>
  821. </entry><entry
  822. align="char">
  823. <para>Enables or disables the decoding of the current Audio
  824. stream in the DVB subsystem.</para>
  825. </entry>
  826. </row><row><entry
  827. align="char">
  828. </entry><entry
  829. align="char">
  830. <para>TRUE Bypass is disabled</para>
  831. </entry>
  832. </row><row><entry
  833. align="char">
  834. </entry><entry
  835. align="char">
  836. <para>FALSE Bypass is enabled</para>
  837. </entry>
  838. </row></tbody></tgroup></informaltable>
  839. &return-value-dvb;
  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.</para>
  853. </entry>
  854. </row><row><entry
  855. align="char">
  856. <para>EINVAL</para>
  857. </entry><entry
  858. align="char">
  859. <para>Illegal input parameter.</para>
  860. </entry>
  861. </row></tbody></tgroup></informaltable>
  862. </section><section id="AUDIO_CHANNEL_SELECT"
  863. role="subsection"><title>AUDIO_CHANNEL_SELECT</title>
  864. <para>DESCRIPTION
  865. </para>
  866. <informaltable><tgroup cols="1"><tbody><row><entry
  867. align="char">
  868. <para>This ioctl call asks the Audio Device to select the requested channel if possible.</para>
  869. </entry>
  870. </row></tbody></tgroup></informaltable>
  871. <para>SYNOPSIS
  872. </para>
  873. <informaltable><tgroup cols="1"><tbody><row><entry
  874. align="char">
  875. <para>int ioctl(int fd, int request =
  876. AUDIO_CHANNEL_SELECT, audio_channel_select_t);</para>
  877. </entry>
  878. </row></tbody></tgroup></informaltable>
  879. <para>PARAMETERS
  880. </para>
  881. <informaltable><tgroup cols="2"><tbody><row><entry
  882. align="char">
  883. <para>int fd</para>
  884. </entry><entry
  885. align="char">
  886. <para>File descriptor returned by a previous call to open().</para>
  887. </entry>
  888. </row><row><entry
  889. align="char">
  890. <para>int request</para>
  891. </entry><entry
  892. align="char">
  893. <para>Equals AUDIO_CHANNEL_SELECT for this
  894. command.</para>
  895. </entry>
  896. </row><row><entry
  897. align="char">
  898. <para>audio_channel_select_t
  899. ch</para>
  900. </entry><entry
  901. align="char">
  902. <para>Select the output format of the audio (mono left/right,
  903. stereo).</para>
  904. </entry>
  905. </row></tbody></tgroup></informaltable>
  906. &return-value-dvb;
  907. <informaltable><tgroup cols="2"><tbody><row><entry
  908. align="char">
  909. <para>EBADF</para>
  910. </entry><entry
  911. align="char">
  912. <para>fd is not a valid open file descriptor.</para>
  913. </entry>
  914. </row><row><entry
  915. align="char">
  916. <para>EINTERNAL</para>
  917. </entry><entry
  918. align="char">
  919. <para>Internal error.</para>
  920. </entry>
  921. </row><row><entry
  922. align="char">
  923. <para>EINVAL</para>
  924. </entry><entry
  925. align="char">
  926. <para>Illegal input parameter ch.</para>
  927. </entry>
  928. </row></tbody></tgroup></informaltable>
  929. </section><section id="AUDIO_GET_STATUS"
  930. role="subsection"><title>AUDIO_GET_STATUS</title>
  931. <para>DESCRIPTION
  932. </para>
  933. <informaltable><tgroup cols="1"><tbody><row><entry
  934. align="char">
  935. <para>This ioctl call asks the Audio Device to return the current state of the Audio
  936. Device.</para>
  937. </entry>
  938. </row></tbody></tgroup></informaltable>
  939. <para>SYNOPSIS
  940. </para>
  941. <informaltable><tgroup cols="1"><tbody><row><entry
  942. align="char">
  943. <para>int ioctl(int fd, int request = AUDIO_GET_STATUS,
  944. struct audio_status &#x22C6;status);</para>
  945. </entry>
  946. </row></tbody></tgroup></informaltable>
  947. <para>PARAMETERS
  948. </para>
  949. <informaltable><tgroup cols="2"><tbody><row><entry
  950. align="char">
  951. <para>int fd</para>
  952. </entry><entry
  953. align="char">
  954. <para>File descriptor returned by a previous call to open().</para>
  955. </entry>
  956. </row><row><entry
  957. align="char">
  958. <para>int request</para>
  959. </entry><entry
  960. align="char">
  961. <para>Equals AUDIO_GET_STATUS for this command.</para>
  962. </entry>
  963. </row><row><entry
  964. align="char">
  965. <para>struct audio_status
  966. *status</para>
  967. </entry><entry
  968. align="char">
  969. <para>Returns the current state of Audio Device.</para>
  970. </entry>
  971. </row></tbody></tgroup></informaltable>
  972. &return-value-dvb;
  973. <informaltable><tgroup cols="2"><tbody><row><entry
  974. align="char">
  975. <para>EBADF</para>
  976. </entry><entry
  977. align="char">
  978. <para>fd is not a valid open file descriptor.</para>
  979. </entry>
  980. </row><row><entry
  981. align="char">
  982. <para>EINTERNAL</para>
  983. </entry><entry
  984. align="char">
  985. <para>Internal error.</para>
  986. </entry>
  987. </row><row><entry
  988. align="char">
  989. <para>EFAULT</para>
  990. </entry><entry
  991. align="char">
  992. <para>status points to invalid address.</para>
  993. </entry>
  994. </row></tbody></tgroup></informaltable>
  995. </section><section id="AUDIO_GET_CAPABILITIES"
  996. role="subsection"><title>AUDIO_GET_CAPABILITIES</title>
  997. <para>DESCRIPTION
  998. </para>
  999. <informaltable><tgroup cols="1"><tbody><row><entry
  1000. align="char">
  1001. <para>This ioctl call asks the Audio Device to tell us about the decoding capabilities
  1002. of the audio hardware.</para>
  1003. </entry>
  1004. </row></tbody></tgroup></informaltable>
  1005. <para>SYNOPSIS
  1006. </para>
  1007. <informaltable><tgroup cols="1"><tbody><row><entry
  1008. align="char">
  1009. <para>int ioctl(int fd, int request =
  1010. AUDIO_GET_CAPABILITIES, unsigned int &#x22C6;cap);</para>
  1011. </entry>
  1012. </row></tbody></tgroup></informaltable>
  1013. <para>PARAMETERS
  1014. </para>
  1015. <informaltable><tgroup cols="2"><tbody><row><entry
  1016. align="char">
  1017. <para>int fd</para>
  1018. </entry><entry
  1019. align="char">
  1020. <para>File descriptor returned by a previous call to open().</para>
  1021. </entry>
  1022. </row><row><entry
  1023. align="char">
  1024. <para>int request</para>
  1025. </entry><entry
  1026. align="char">
  1027. <para>Equals AUDIO_GET_CAPABILITIES for this
  1028. command.</para>
  1029. </entry>
  1030. </row><row><entry
  1031. align="char">
  1032. <para>unsigned int *cap</para>
  1033. </entry><entry
  1034. align="char">
  1035. <para>Returns a bit array of supported sound formats.</para>
  1036. </entry>
  1037. </row></tbody></tgroup></informaltable>
  1038. &return-value-dvb;
  1039. <informaltable><tgroup cols="2"><tbody><row><entry
  1040. align="char">
  1041. <para>EBADF</para>
  1042. </entry><entry
  1043. align="char">
  1044. <para>fd is not a valid open file descriptor.</para>
  1045. </entry>
  1046. </row><row><entry
  1047. align="char">
  1048. <para>EINTERNAL</para>
  1049. </entry><entry
  1050. align="char">
  1051. <para>Internal error.</para>
  1052. </entry>
  1053. </row><row><entry
  1054. align="char">
  1055. <para>EFAULT</para>
  1056. </entry><entry
  1057. align="char">
  1058. <para>cap points to an invalid address.</para>
  1059. </entry>
  1060. </row></tbody></tgroup></informaltable>
  1061. </section><section id="AUDIO_CLEAR_BUFFER"
  1062. role="subsection"><title>AUDIO_CLEAR_BUFFER</title>
  1063. <para>DESCRIPTION
  1064. </para>
  1065. <informaltable><tgroup cols="1"><tbody><row><entry
  1066. align="char">
  1067. <para>This ioctl call asks the Audio Device to clear all software and hardware buffers
  1068. of the audio decoder device.</para>
  1069. </entry>
  1070. </row></tbody></tgroup></informaltable>
  1071. <para>SYNOPSIS
  1072. </para>
  1073. <informaltable><tgroup cols="1"><tbody><row><entry
  1074. align="char">
  1075. <para>int ioctl(int fd, int request = AUDIO_CLEAR_BUFFER);</para>
  1076. </entry>
  1077. </row></tbody></tgroup></informaltable>
  1078. <para>PARAMETERS
  1079. </para>
  1080. <informaltable><tgroup cols="2"><tbody><row><entry
  1081. align="char">
  1082. <para>int fd</para>
  1083. </entry><entry
  1084. align="char">
  1085. <para>File descriptor returned by a previous call to open().</para>
  1086. </entry>
  1087. </row><row><entry
  1088. align="char">
  1089. <para>int request</para>
  1090. </entry><entry
  1091. align="char">
  1092. <para>Equals AUDIO_CLEAR_BUFFER for this command.</para>
  1093. </entry>
  1094. </row></tbody></tgroup></informaltable>
  1095. &return-value-dvb;
  1096. <informaltable><tgroup cols="2"><tbody><row><entry
  1097. align="char">
  1098. <para>EBADF</para>
  1099. </entry><entry
  1100. align="char">
  1101. <para>fd is not a valid open file descriptor.</para>
  1102. </entry>
  1103. </row><row><entry
  1104. align="char">
  1105. <para>EINTERNAL</para>
  1106. </entry><entry
  1107. align="char">
  1108. <para>Internal error.</para>
  1109. </entry>
  1110. </row></tbody></tgroup></informaltable>
  1111. </section><section id="AUDIO_SET_ID"
  1112. role="subsection"><title>AUDIO_SET_ID</title>
  1113. <para>DESCRIPTION
  1114. </para>
  1115. <informaltable><tgroup cols="1"><tbody><row><entry
  1116. align="char">
  1117. <para>This ioctl selects which sub-stream is to be decoded if a program or system
  1118. stream is sent to the video device. If no audio stream type is set the id has to be
  1119. in [0xC0,0xDF] for MPEG sound, in [0x80,0x87] for AC3 and in [0xA0,0xA7]
  1120. for LPCM. More specifications may follow for other stream types. If the stream
  1121. type is set the id just specifies the substream id of the audio stream and only
  1122. the first 5 bits are recognized.</para>
  1123. </entry>
  1124. </row></tbody></tgroup></informaltable>
  1125. <para>SYNOPSIS
  1126. </para>
  1127. <informaltable><tgroup cols="1"><tbody><row><entry
  1128. align="char">
  1129. <para>int ioctl(int fd, int request = AUDIO_SET_ID, int
  1130. id);</para>
  1131. </entry>
  1132. </row></tbody></tgroup></informaltable>
  1133. <para>PARAMETERS
  1134. </para>
  1135. <informaltable><tgroup cols="2"><tbody><row><entry
  1136. align="char">
  1137. <para>int fd</para>
  1138. </entry><entry
  1139. align="char">
  1140. <para>File descriptor returned by a previous call to open().</para>
  1141. </entry>
  1142. </row><row><entry
  1143. align="char">
  1144. <para>int request</para>
  1145. </entry><entry
  1146. align="char">
  1147. <para>Equals AUDIO_SET_ID for this command.</para>
  1148. </entry>
  1149. </row><row><entry
  1150. align="char">
  1151. <para>int id</para>
  1152. </entry><entry
  1153. align="char">
  1154. <para>audio sub-stream id</para>
  1155. </entry>
  1156. </row></tbody></tgroup></informaltable>
  1157. &return-value-dvb;
  1158. <informaltable><tgroup cols="2"><tbody><row><entry
  1159. align="char">
  1160. <para>EBADF</para>
  1161. </entry><entry
  1162. align="char">
  1163. <para>fd is not a valid open file descriptor.</para>
  1164. </entry>
  1165. </row><row><entry
  1166. align="char">
  1167. <para>EINTERNAL</para>
  1168. </entry><entry
  1169. align="char">
  1170. <para>Internal error.</para>
  1171. </entry>
  1172. </row><row><entry
  1173. align="char">
  1174. <para>EINVAL</para>
  1175. </entry><entry
  1176. align="char">
  1177. <para>Invalid sub-stream id.</para>
  1178. </entry>
  1179. </row></tbody></tgroup></informaltable>
  1180. </section><section id="AUDIO_SET_MIXER"
  1181. role="subsection"><title>AUDIO_SET_MIXER</title>
  1182. <para>DESCRIPTION
  1183. </para>
  1184. <informaltable><tgroup cols="1"><tbody><row><entry
  1185. align="char">
  1186. <para>This ioctl lets you adjust the mixer settings of the audio decoder.</para>
  1187. </entry>
  1188. </row></tbody></tgroup></informaltable>
  1189. <para>SYNOPSIS
  1190. </para>
  1191. <informaltable><tgroup cols="1"><tbody><row><entry
  1192. align="char">
  1193. <para>int ioctl(int fd, int request = AUDIO_SET_MIXER,
  1194. audio_mixer_t &#x22C6;mix);</para>
  1195. </entry>
  1196. </row></tbody></tgroup></informaltable>
  1197. <para>PARAMETERS
  1198. </para>
  1199. <informaltable><tgroup cols="2"><tbody><row><entry
  1200. align="char">
  1201. <para>int fd</para>
  1202. </entry><entry
  1203. align="char">
  1204. <para>File descriptor returned by a previous call to open().</para>
  1205. </entry>
  1206. </row><row><entry
  1207. align="char">
  1208. <para>int request</para>
  1209. </entry><entry
  1210. align="char">
  1211. <para>Equals AUDIO_SET_ID for this command.</para>
  1212. </entry>
  1213. </row><row><entry
  1214. align="char">
  1215. <para>audio_mixer_t *mix</para>
  1216. </entry><entry
  1217. align="char">
  1218. <para>mixer settings.</para>
  1219. </entry>
  1220. </row></tbody></tgroup></informaltable>
  1221. &return-value-dvb;
  1222. <informaltable><tgroup cols="2"><tbody><row><entry
  1223. align="char">
  1224. <para>EBADF</para>
  1225. </entry><entry
  1226. align="char">
  1227. <para>fd is not a valid open file descriptor.</para>
  1228. </entry>
  1229. </row><row><entry
  1230. align="char">
  1231. <para>EINTERNAL</para>
  1232. </entry><entry
  1233. align="char">
  1234. <para>Internal error.</para>
  1235. </entry>
  1236. </row><row><entry
  1237. align="char">
  1238. <para>EFAULT</para>
  1239. </entry><entry
  1240. align="char">
  1241. <para>mix points to an invalid address.</para>
  1242. </entry>
  1243. </row></tbody></tgroup></informaltable>
  1244. </section><section id="AUDIO_SET_STREAMTYPE"
  1245. role="subsection"><title>AUDIO_SET_STREAMTYPE</title>
  1246. <para>DESCRIPTION
  1247. </para>
  1248. <informaltable><tgroup cols="1"><tbody><row><entry
  1249. align="char">
  1250. <para>This ioctl tells the driver which kind of audio stream to expect. This is useful
  1251. if the stream offers several audio sub-streams like LPCM and AC3.</para>
  1252. </entry>
  1253. </row></tbody></tgroup></informaltable>
  1254. <para>SYNOPSIS
  1255. </para>
  1256. <informaltable><tgroup cols="1"><tbody><row><entry
  1257. align="char">
  1258. <para>int ioctl(fd, int request = AUDIO_SET_STREAMTYPE,
  1259. int type);</para>
  1260. </entry>
  1261. </row></tbody></tgroup></informaltable>
  1262. <para>PARAMETERS
  1263. </para>
  1264. <informaltable><tgroup cols="2"><tbody><row><entry
  1265. align="char">
  1266. <para>int fd</para>
  1267. </entry><entry
  1268. align="char">
  1269. <para>File descriptor returned by a previous call to open().</para>
  1270. </entry>
  1271. </row><row><entry
  1272. align="char">
  1273. <para>int request</para>
  1274. </entry><entry
  1275. align="char">
  1276. <para>Equals AUDIO_SET_STREAMTYPE for this
  1277. command.</para>
  1278. </entry>
  1279. </row><row><entry
  1280. align="char">
  1281. <para>int type</para>
  1282. </entry><entry
  1283. align="char">
  1284. <para>stream type</para>
  1285. </entry>
  1286. </row></tbody></tgroup></informaltable>
  1287. &return-value-dvb;
  1288. <informaltable><tgroup cols="2"><tbody><row><entry
  1289. align="char">
  1290. <para>EBADF</para>
  1291. </entry><entry
  1292. align="char">
  1293. <para>fd is not a valid open file descriptor</para>
  1294. </entry>
  1295. </row><row><entry
  1296. align="char">
  1297. <para>EINVAL</para>
  1298. </entry><entry
  1299. align="char">
  1300. <para>type is not a valid or supported stream type.</para>
  1301. </entry>
  1302. </row></tbody></tgroup></informaltable>
  1303. </section><section id="AUDIO_SET_EXT_ID"
  1304. role="subsection"><title>AUDIO_SET_EXT_ID</title>
  1305. <para>DESCRIPTION
  1306. </para>
  1307. <informaltable><tgroup cols="1"><tbody><row><entry
  1308. align="char">
  1309. <para>This ioctl can be used to set the extension id for MPEG streams in DVD
  1310. playback. Only the first 3 bits are recognized.</para>
  1311. </entry>
  1312. </row></tbody></tgroup></informaltable>
  1313. <para>SYNOPSIS
  1314. </para>
  1315. <informaltable><tgroup cols="1"><tbody><row><entry
  1316. align="char">
  1317. <para>int ioctl(fd, int request = AUDIO_SET_EXT_ID, int
  1318. id);</para>
  1319. </entry>
  1320. </row></tbody></tgroup></informaltable>
  1321. <para>PARAMETERS
  1322. </para>
  1323. <informaltable><tgroup cols="2"><tbody><row><entry
  1324. align="char">
  1325. <para>int fd</para>
  1326. </entry><entry
  1327. align="char">
  1328. <para>File descriptor returned by a previous call to open().</para>
  1329. </entry>
  1330. </row><row><entry
  1331. align="char">
  1332. <para>int request</para>
  1333. </entry><entry
  1334. align="char">
  1335. <para>Equals AUDIO_SET_EXT_ID for this command.</para>
  1336. </entry>
  1337. </row><row><entry
  1338. align="char">
  1339. <para>int id</para>
  1340. </entry><entry
  1341. align="char">
  1342. <para>audio sub_stream_id</para>
  1343. </entry>
  1344. </row></tbody></tgroup></informaltable>
  1345. &return-value-dvb;
  1346. <informaltable><tgroup cols="2"><tbody><row><entry
  1347. align="char">
  1348. <para>EBADF</para>
  1349. </entry><entry
  1350. align="char">
  1351. <para>fd is not a valid open file descriptor</para>
  1352. </entry>
  1353. </row><row><entry
  1354. align="char">
  1355. <para>EINVAL</para>
  1356. </entry><entry
  1357. align="char">
  1358. <para>id is not a valid id.</para>
  1359. </entry>
  1360. </row></tbody></tgroup></informaltable>
  1361. </section><section id="AUDIO_SET_ATTRIBUTES"
  1362. role="subsection"><title>AUDIO_SET_ATTRIBUTES</title>
  1363. <para>DESCRIPTION
  1364. </para>
  1365. <informaltable><tgroup cols="1"><tbody><row><entry
  1366. align="char">
  1367. <para>This ioctl is intended for DVD playback and allows you to set certain
  1368. information about the audio stream.</para>
  1369. </entry>
  1370. </row></tbody></tgroup></informaltable>
  1371. <para>SYNOPSIS
  1372. </para>
  1373. <informaltable><tgroup cols="1"><tbody><row><entry
  1374. align="char">
  1375. <para>int ioctl(fd, int request = AUDIO_SET_ATTRIBUTES,
  1376. audio_attributes_t attr );</para>
  1377. </entry>
  1378. </row></tbody></tgroup></informaltable>
  1379. <para>PARAMETERS
  1380. </para>
  1381. <informaltable><tgroup cols="2"><tbody><row><entry
  1382. align="char">
  1383. <para>int fd</para>
  1384. </entry><entry
  1385. align="char">
  1386. <para>File descriptor returned by a previous call to open().</para>
  1387. </entry>
  1388. </row><row><entry
  1389. align="char">
  1390. <para>int request</para>
  1391. </entry><entry
  1392. align="char">
  1393. <para>Equals AUDIO_SET_ATTRIBUTES for this command.</para>
  1394. </entry>
  1395. </row><row><entry
  1396. align="char">
  1397. <para>audio_attributes_t
  1398. attr</para>
  1399. </entry><entry
  1400. align="char">
  1401. <para>audio attributes according to section ??</para>
  1402. </entry>
  1403. </row></tbody></tgroup></informaltable>
  1404. &return-value-dvb;
  1405. <informaltable><tgroup cols="2"><tbody><row><entry
  1406. align="char">
  1407. <para>EBADF</para>
  1408. </entry><entry
  1409. align="char">
  1410. <para>fd is not a valid open file descriptor</para>
  1411. </entry>
  1412. </row><row><entry
  1413. align="char">
  1414. <para>EINVAL</para>
  1415. </entry><entry
  1416. align="char">
  1417. <para>attr is not a valid or supported attribute setting.</para>
  1418. </entry>
  1419. </row></tbody></tgroup></informaltable>
  1420. </section><section id="AUDIO_SET_KARAOKE"
  1421. role="subsection"><title>AUDIO_SET_KARAOKE</title>
  1422. <para>DESCRIPTION
  1423. </para>
  1424. <informaltable><tgroup cols="1"><tbody><row><entry
  1425. align="char">
  1426. <para>This ioctl allows one to set the mixer settings for a karaoke DVD.</para>
  1427. </entry>
  1428. </row></tbody></tgroup></informaltable>
  1429. <para>SYNOPSIS
  1430. </para>
  1431. <informaltable><tgroup cols="1"><tbody><row><entry
  1432. align="char">
  1433. <para>int ioctl(fd, int request = AUDIO_SET_KARAOKE,
  1434. audio_karaoke_t &#x22C6;karaoke);</para>
  1435. </entry>
  1436. </row></tbody></tgroup></informaltable>
  1437. <para>PARAMETERS
  1438. </para>
  1439. <informaltable><tgroup cols="2"><tbody><row><entry
  1440. align="char">
  1441. <para>int fd</para>
  1442. </entry><entry
  1443. align="char">
  1444. <para>File descriptor returned by a previous call to open().</para>
  1445. </entry>
  1446. </row><row><entry
  1447. align="char">
  1448. <para>int request</para>
  1449. </entry><entry
  1450. align="char">
  1451. <para>Equals AUDIO_SET_KARAOKE for this
  1452. command.</para>
  1453. </entry>
  1454. </row><row><entry
  1455. align="char">
  1456. <para>audio_karaoke_t
  1457. *karaoke</para>
  1458. </entry><entry
  1459. align="char">
  1460. <para>karaoke settings according to section ??.</para>
  1461. </entry>
  1462. </row></tbody></tgroup></informaltable>
  1463. &return-value-dvb;
  1464. <informaltable><tgroup cols="2"><tbody><row><entry
  1465. align="char">
  1466. <para>EBADF</para>
  1467. </entry><entry
  1468. align="char">
  1469. <para>fd is not a valid open file descriptor</para>
  1470. </entry>
  1471. </row><row><entry
  1472. align="char">
  1473. <para>EINVAL</para>
  1474. </entry><entry
  1475. align="char">
  1476. <para>karaoke is not a valid or supported karaoke setting.</para>
  1477. </entry>
  1478. </row></tbody></tgroup></informaltable>
  1479. </section>
  1480. </section>