audio.xml 36 KB

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