vidioc-g-tuner.xml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569
  1. <refentry id="vidioc-g-tuner">
  2. <refmeta>
  3. <refentrytitle>ioctl VIDIOC_G_TUNER, VIDIOC_S_TUNER</refentrytitle>
  4. &manvol;
  5. </refmeta>
  6. <refnamediv>
  7. <refname>VIDIOC_G_TUNER</refname>
  8. <refname>VIDIOC_S_TUNER</refname>
  9. <refpurpose>Get or set tuner attributes</refpurpose>
  10. </refnamediv>
  11. <refsynopsisdiv>
  12. <funcsynopsis>
  13. <funcprototype>
  14. <funcdef>int <function>ioctl</function></funcdef>
  15. <paramdef>int <parameter>fd</parameter></paramdef>
  16. <paramdef>int <parameter>request</parameter></paramdef>
  17. <paramdef>struct v4l2_tuner
  18. *<parameter>argp</parameter></paramdef>
  19. </funcprototype>
  20. </funcsynopsis>
  21. <funcsynopsis>
  22. <funcprototype>
  23. <funcdef>int <function>ioctl</function></funcdef>
  24. <paramdef>int <parameter>fd</parameter></paramdef>
  25. <paramdef>int <parameter>request</parameter></paramdef>
  26. <paramdef>const struct v4l2_tuner
  27. *<parameter>argp</parameter></paramdef>
  28. </funcprototype>
  29. </funcsynopsis>
  30. </refsynopsisdiv>
  31. <refsect1>
  32. <title>Arguments</title>
  33. <variablelist>
  34. <varlistentry>
  35. <term><parameter>fd</parameter></term>
  36. <listitem>
  37. <para>&fd;</para>
  38. </listitem>
  39. </varlistentry>
  40. <varlistentry>
  41. <term><parameter>request</parameter></term>
  42. <listitem>
  43. <para>VIDIOC_G_TUNER, VIDIOC_S_TUNER</para>
  44. </listitem>
  45. </varlistentry>
  46. <varlistentry>
  47. <term><parameter>argp</parameter></term>
  48. <listitem>
  49. <para></para>
  50. </listitem>
  51. </varlistentry>
  52. </variablelist>
  53. </refsect1>
  54. <refsect1>
  55. <title>Description</title>
  56. <para>To query the attributes of a tuner applications initialize the
  57. <structfield>index</structfield> field and zero out the
  58. <structfield>reserved</structfield> array of a &v4l2-tuner; and call the
  59. <constant>VIDIOC_G_TUNER</constant> ioctl with a pointer to this
  60. structure. Drivers fill the rest of the structure or return an
  61. &EINVAL; when the index is out of bounds. To enumerate all tuners
  62. applications shall begin at index zero, incrementing by one until the
  63. driver returns <errorcode>EINVAL</errorcode>.</para>
  64. <para>Tuners have two writable properties, the audio mode and
  65. the radio frequency. To change the audio mode, applications initialize
  66. the <structfield>index</structfield>,
  67. <structfield>audmode</structfield> and
  68. <structfield>reserved</structfield> fields and call the
  69. <constant>VIDIOC_S_TUNER</constant> ioctl. This will
  70. <emphasis>not</emphasis> change the current tuner, which is determined
  71. by the current video input. Drivers may choose a different audio mode
  72. if the requested mode is invalid or unsupported. Since this is a
  73. <!-- FIXME -->write-only ioctl, it does not return the actually
  74. selected audio mode.</para>
  75. <para>To change the radio frequency the &VIDIOC-S-FREQUENCY; ioctl
  76. is available.</para>
  77. <table pgwide="1" frame="none" id="v4l2-tuner">
  78. <title>struct <structname>v4l2_tuner</structname></title>
  79. <tgroup cols="3">
  80. <colspec colname="c1" colwidth="1*" />
  81. <colspec colname="c2" colwidth="1*" />
  82. <colspec colname="c3" colwidth="1*" />
  83. <colspec colname="c4" colwidth="1*" />
  84. <spanspec spanname="hspan" namest="c3" nameend="c4" />
  85. <tbody valign="top">
  86. <row>
  87. <entry>__u32</entry>
  88. <entry><structfield>index</structfield></entry>
  89. <entry spanname="hspan">Identifies the tuner, set by the
  90. application.</entry>
  91. </row>
  92. <row>
  93. <entry>__u8</entry>
  94. <entry><structfield>name</structfield>[32]</entry>
  95. <entry spanname="hspan"><para>Name of the tuner, a
  96. NUL-terminated ASCII string. This information is intended for the
  97. user.<!-- FIXME Video inputs already have a name, the purpose of this
  98. field is not quite clear.--></para></entry>
  99. </row>
  100. <row>
  101. <entry>__u32</entry>
  102. <entry><structfield>type</structfield></entry>
  103. <entry spanname="hspan">Type of the tuner, see <xref
  104. linkend="v4l2-tuner-type" />.</entry>
  105. </row>
  106. <row>
  107. <entry>__u32</entry>
  108. <entry><structfield>capability</structfield></entry>
  109. <entry spanname="hspan"><para>Tuner capability flags, see
  110. <xref linkend="tuner-capability" />. Audio flags indicate the ability
  111. to decode audio subprograms. They will <emphasis>not</emphasis>
  112. change, for example with the current video standard.</para><para>When
  113. the structure refers to a radio tuner the
  114. <constant>V4L2_TUNER_CAP_LANG1</constant>,
  115. <constant>V4L2_TUNER_CAP_LANG2</constant> and
  116. <constant>V4L2_TUNER_CAP_NORM</constant> flags can't be used.</para>
  117. <para>If multiple frequency bands are supported, then
  118. <structfield>capability</structfield> is the union of all
  119. <structfield>capability</structfield> fields of each &v4l2-frequency-band;.
  120. </para></entry>
  121. </row>
  122. <row>
  123. <entry>__u32</entry>
  124. <entry><structfield>rangelow</structfield></entry>
  125. <entry spanname="hspan">The lowest tunable frequency in
  126. units of 62.5 kHz, or if the <structfield>capability</structfield>
  127. flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
  128. Hz. If multiple frequency bands are supported, then
  129. <structfield>rangelow</structfield> is the lowest frequency
  130. of all the frequency bands.</entry>
  131. </row>
  132. <row>
  133. <entry>__u32</entry>
  134. <entry><structfield>rangehigh</structfield></entry>
  135. <entry spanname="hspan">The highest tunable frequency in
  136. units of 62.5 kHz, or if the <structfield>capability</structfield>
  137. flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
  138. Hz. If multiple frequency bands are supported, then
  139. <structfield>rangehigh</structfield> is the highest frequency
  140. of all the frequency bands.</entry>
  141. </row>
  142. <row>
  143. <entry>__u32</entry>
  144. <entry><structfield>rxsubchans</structfield></entry>
  145. <entry spanname="hspan"><para>Some tuners or audio
  146. decoders can determine the received audio subprograms by analyzing
  147. audio carriers, pilot tones or other indicators. To pass this
  148. information drivers set flags defined in <xref
  149. linkend="tuner-rxsubchans" /> in this field. For
  150. example:</para></entry>
  151. </row>
  152. <row>
  153. <entry></entry>
  154. <entry></entry>
  155. <entry><constant>V4L2_TUNER_SUB_MONO</constant></entry>
  156. <entry>receiving mono audio</entry>
  157. </row>
  158. <row>
  159. <entry></entry>
  160. <entry></entry>
  161. <entry><constant>STEREO | SAP</constant></entry>
  162. <entry>receiving stereo audio and a secondary audio
  163. program</entry>
  164. </row>
  165. <row>
  166. <entry></entry>
  167. <entry></entry>
  168. <entry><constant>MONO | STEREO</constant></entry>
  169. <entry>receiving mono or stereo audio, the hardware cannot
  170. distinguish</entry>
  171. </row>
  172. <row>
  173. <entry></entry>
  174. <entry></entry>
  175. <entry><constant>LANG1 | LANG2</constant></entry>
  176. <entry>receiving bilingual audio</entry>
  177. </row>
  178. <row>
  179. <entry></entry>
  180. <entry></entry>
  181. <entry><constant>MONO | STEREO | LANG1 | LANG2</constant></entry>
  182. <entry>receiving mono, stereo or bilingual
  183. audio</entry>
  184. </row>
  185. <row>
  186. <entry></entry>
  187. <entry></entry>
  188. <entry spanname="hspan"><para>When the
  189. <constant>V4L2_TUNER_CAP_STEREO</constant>,
  190. <constant>_LANG1</constant>, <constant>_LANG2</constant> or
  191. <constant>_SAP</constant> flag is cleared in the
  192. <structfield>capability</structfield> field, the corresponding
  193. <constant>V4L2_TUNER_SUB_</constant> flag must not be set
  194. here.</para><para>This field is valid only if this is the tuner of the
  195. current video input, or when the structure refers to a radio
  196. tuner.</para></entry>
  197. </row>
  198. <row>
  199. <entry>__u32</entry>
  200. <entry><structfield>audmode</structfield></entry>
  201. <entry spanname="hspan"><para>The selected audio mode, see
  202. <xref linkend="tuner-audmode" /> for valid values. The audio mode does
  203. not affect audio subprogram detection, and like a <link
  204. linkend="control">control</link> it does not automatically change
  205. unless the requested mode is invalid or unsupported. See <xref
  206. linkend="tuner-matrix" /> for possible results when
  207. the selected and received audio programs do not
  208. match.</para><para>Currently this is the only field of struct
  209. <structname>v4l2_tuner</structname> applications can
  210. change.</para></entry>
  211. </row>
  212. <row>
  213. <entry>__u32</entry>
  214. <entry><structfield>signal</structfield></entry>
  215. <entry spanname="hspan">The signal strength if known, ranging
  216. from 0 to 65535. Higher values indicate a better signal.</entry>
  217. </row>
  218. <row>
  219. <entry>__s32</entry>
  220. <entry><structfield>afc</structfield></entry>
  221. <entry spanname="hspan">Automatic frequency control: When the
  222. <structfield>afc</structfield> value is negative, the frequency is too
  223. low, when positive too high.<!-- FIXME need example what to do when it never
  224. settles at zero, &ie; range is what? --></entry>
  225. </row>
  226. <row>
  227. <entry>__u32</entry>
  228. <entry><structfield>reserved</structfield>[4]</entry>
  229. <entry spanname="hspan">Reserved for future extensions. Drivers and
  230. applications must set the array to zero.</entry>
  231. </row>
  232. </tbody>
  233. </tgroup>
  234. </table>
  235. <table pgwide="1" frame="none" id="v4l2-tuner-type">
  236. <title>enum v4l2_tuner_type</title>
  237. <tgroup cols="3">
  238. &cs-def;
  239. <tbody valign="top">
  240. <row>
  241. <entry><constant>V4L2_TUNER_RADIO</constant></entry>
  242. <entry>1</entry>
  243. <entry></entry>
  244. </row>
  245. <row>
  246. <entry><constant>V4L2_TUNER_ANALOG_TV</constant></entry>
  247. <entry>2</entry>
  248. <entry></entry>
  249. </row>
  250. </tbody>
  251. </tgroup>
  252. </table>
  253. <table pgwide="1" frame="none" id="tuner-capability">
  254. <title>Tuner and Modulator Capability Flags</title>
  255. <tgroup cols="3">
  256. &cs-def;
  257. <tbody valign="top">
  258. <row>
  259. <entry><constant>V4L2_TUNER_CAP_LOW</constant></entry>
  260. <entry>0x0001</entry>
  261. <entry>When set, tuning frequencies are expressed in units of
  262. 62.5&nbsp;Hz, otherwise in units of 62.5&nbsp;kHz.</entry>
  263. </row>
  264. <row>
  265. <entry><constant>V4L2_TUNER_CAP_NORM</constant></entry>
  266. <entry>0x0002</entry>
  267. <entry>This is a multi-standard tuner; the video standard
  268. can or must be switched. (B/G PAL tuners for example are typically not
  269. considered multi-standard because the video standard is automatically
  270. determined from the frequency band.) The set of supported video
  271. standards is available from the &v4l2-input; pointing to this tuner,
  272. see the description of ioctl &VIDIOC-ENUMINPUT; for details. Only
  273. <constant>V4L2_TUNER_ANALOG_TV</constant> tuners can have this capability.</entry>
  274. </row>
  275. <row>
  276. <entry><constant>V4L2_TUNER_CAP_HWSEEK_BOUNDED</constant></entry>
  277. <entry>0x0004</entry>
  278. <entry>If set, then this tuner supports the hardware seek functionality
  279. where the seek stops when it reaches the end of the frequency range.</entry>
  280. </row>
  281. <row>
  282. <entry><constant>V4L2_TUNER_CAP_HWSEEK_WRAP</constant></entry>
  283. <entry>0x0008</entry>
  284. <entry>If set, then this tuner supports the hardware seek functionality
  285. where the seek wraps around when it reaches the end of the frequency range.</entry>
  286. </row>
  287. <row>
  288. <entry><constant>V4L2_TUNER_CAP_STEREO</constant></entry>
  289. <entry>0x0010</entry>
  290. <entry>Stereo audio reception is supported.</entry>
  291. </row>
  292. <row>
  293. <entry><constant>V4L2_TUNER_CAP_LANG1</constant></entry>
  294. <entry>0x0040</entry>
  295. <entry>Reception of the primary language of a bilingual
  296. audio program is supported. Bilingual audio is a feature of
  297. two-channel systems, transmitting the primary language monaural on the
  298. main audio carrier and a secondary language monaural on a second
  299. carrier. Only
  300. <constant>V4L2_TUNER_ANALOG_TV</constant> tuners can have this capability.</entry>
  301. </row>
  302. <row>
  303. <entry><constant>V4L2_TUNER_CAP_LANG2</constant></entry>
  304. <entry>0x0020</entry>
  305. <entry>Reception of the secondary language of a bilingual
  306. audio program is supported. Only
  307. <constant>V4L2_TUNER_ANALOG_TV</constant> tuners can have this capability.</entry>
  308. </row>
  309. <row>
  310. <entry><constant>V4L2_TUNER_CAP_SAP</constant></entry>
  311. <entry>0x0020</entry>
  312. <entry><para>Reception of a secondary audio program is
  313. supported. This is a feature of the BTSC system which accompanies the
  314. NTSC video standard. Two audio carriers are available for mono or
  315. stereo transmissions of a primary language, and an independent third
  316. carrier for a monaural secondary language. Only
  317. <constant>V4L2_TUNER_ANALOG_TV</constant> tuners can have this capability.</para><para>Note the
  318. <constant>V4L2_TUNER_CAP_LANG2</constant> and
  319. <constant>V4L2_TUNER_CAP_SAP</constant> flags are synonyms.
  320. <constant>V4L2_TUNER_CAP_SAP</constant> applies when the tuner
  321. supports the <constant>V4L2_STD_NTSC_M</constant> video
  322. standard.</para><!-- FIXME what if PAL+NTSC and Bi but not SAP? --></entry>
  323. </row>
  324. <row>
  325. <entry><constant>V4L2_TUNER_CAP_RDS</constant></entry>
  326. <entry>0x0080</entry>
  327. <entry>RDS capture is supported. This capability is only valid for
  328. radio tuners.</entry>
  329. </row>
  330. <row>
  331. <entry><constant>V4L2_TUNER_CAP_RDS_BLOCK_IO</constant></entry>
  332. <entry>0x0100</entry>
  333. <entry>The RDS data is passed as unparsed RDS blocks.</entry>
  334. </row>
  335. <row>
  336. <entry><constant>V4L2_TUNER_CAP_RDS_CONTROLS</constant></entry>
  337. <entry>0x0200</entry>
  338. <entry>The RDS data is parsed by the hardware and set via controls.</entry>
  339. </row>
  340. <row>
  341. <entry><constant>V4L2_TUNER_CAP_FREQ_BANDS</constant></entry>
  342. <entry>0x0400</entry>
  343. <entry>The &VIDIOC-ENUM-FREQ-BANDS; ioctl can be used to enumerate
  344. the available frequency bands.</entry>
  345. </row>
  346. <row>
  347. <entry><constant>V4L2_TUNER_CAP_HWSEEK_PROG_LIM</constant></entry>
  348. <entry>0x0800</entry>
  349. <entry>The range to search when using the hardware seek functionality
  350. is programmable, see &VIDIOC-S-HW-FREQ-SEEK; for details.</entry>
  351. </row>
  352. </tbody>
  353. </tgroup>
  354. </table>
  355. <table pgwide="1" frame="none" id="tuner-rxsubchans">
  356. <title>Tuner Audio Reception Flags</title>
  357. <tgroup cols="3">
  358. &cs-def;
  359. <tbody valign="top">
  360. <row>
  361. <entry><constant>V4L2_TUNER_SUB_MONO</constant></entry>
  362. <entry>0x0001</entry>
  363. <entry>The tuner receives a mono audio signal.</entry>
  364. </row>
  365. <row>
  366. <entry><constant>V4L2_TUNER_SUB_STEREO</constant></entry>
  367. <entry>0x0002</entry>
  368. <entry>The tuner receives a stereo audio signal.</entry>
  369. </row>
  370. <row>
  371. <entry><constant>V4L2_TUNER_SUB_LANG1</constant></entry>
  372. <entry>0x0008</entry>
  373. <entry>The tuner receives the primary language of a
  374. bilingual audio signal. Drivers must clear this flag when the current
  375. video standard is <constant>V4L2_STD_NTSC_M</constant>.</entry>
  376. </row>
  377. <row>
  378. <entry><constant>V4L2_TUNER_SUB_LANG2</constant></entry>
  379. <entry>0x0004</entry>
  380. <entry>The tuner receives the secondary language of a
  381. bilingual audio signal (or a second audio program).</entry>
  382. </row>
  383. <row>
  384. <entry><constant>V4L2_TUNER_SUB_SAP</constant></entry>
  385. <entry>0x0004</entry>
  386. <entry>The tuner receives a Second Audio Program. Note the
  387. <constant>V4L2_TUNER_SUB_LANG2</constant> and
  388. <constant>V4L2_TUNER_SUB_SAP</constant> flags are synonyms. The
  389. <constant>V4L2_TUNER_SUB_SAP</constant> flag applies when the
  390. current video standard is <constant>V4L2_STD_NTSC_M</constant>.</entry>
  391. </row>
  392. <row>
  393. <entry><constant>V4L2_TUNER_SUB_RDS</constant></entry>
  394. <entry>0x0010</entry>
  395. <entry>The tuner receives an RDS channel.</entry>
  396. </row>
  397. </tbody>
  398. </tgroup>
  399. </table>
  400. <table pgwide="1" frame="none" id="tuner-audmode">
  401. <title>Tuner Audio Modes</title>
  402. <tgroup cols="3">
  403. &cs-def;
  404. <tbody valign="top">
  405. <row>
  406. <entry><constant>V4L2_TUNER_MODE_MONO</constant></entry>
  407. <entry>0</entry>
  408. <entry>Play mono audio. When the tuner receives a stereo
  409. signal this a down-mix of the left and right channel. When the tuner
  410. receives a bilingual or SAP signal this mode selects the primary
  411. language.</entry>
  412. </row>
  413. <row>
  414. <entry><constant>V4L2_TUNER_MODE_STEREO</constant></entry>
  415. <entry>1</entry>
  416. <entry><para>Play stereo audio. When the tuner receives
  417. bilingual audio it may play different languages on the left and right
  418. channel or the primary language is played on both channels.</para><para>Playing
  419. different languages in this mode is
  420. deprecated. New drivers should do this only in
  421. <constant>MODE_LANG1_LANG2</constant>.</para><para>When the tuner
  422. receives no stereo signal or does not support stereo reception the
  423. driver shall fall back to <constant>MODE_MONO</constant>.</para></entry>
  424. </row>
  425. <row>
  426. <entry><constant>V4L2_TUNER_MODE_LANG1</constant></entry>
  427. <entry>3</entry>
  428. <entry>Play the primary language, mono or stereo. Only
  429. <constant>V4L2_TUNER_ANALOG_TV</constant> tuners support this
  430. mode.</entry>
  431. </row>
  432. <row>
  433. <entry><constant>V4L2_TUNER_MODE_LANG2</constant></entry>
  434. <entry>2</entry>
  435. <entry>Play the secondary language, mono. When the tuner
  436. receives no bilingual audio or SAP, or their reception is not
  437. supported the driver shall fall back to mono or stereo mode. Only
  438. <constant>V4L2_TUNER_ANALOG_TV</constant> tuners support this
  439. mode.</entry>
  440. </row>
  441. <row>
  442. <entry><constant>V4L2_TUNER_MODE_SAP</constant></entry>
  443. <entry>2</entry>
  444. <entry>Play the Second Audio Program. When the tuner
  445. receives no bilingual audio or SAP, or their reception is not
  446. supported the driver shall fall back to mono or stereo mode. Only
  447. <constant>V4L2_TUNER_ANALOG_TV</constant> tuners support this mode.
  448. Note the <constant>V4L2_TUNER_MODE_LANG2</constant> and
  449. <constant>V4L2_TUNER_MODE_SAP</constant> are synonyms.</entry>
  450. </row>
  451. <row>
  452. <entry><constant>V4L2_TUNER_MODE_LANG1_LANG2</constant></entry>
  453. <entry>4</entry>
  454. <entry>Play the primary language on the left channel, the
  455. secondary language on the right channel. When the tuner receives no
  456. bilingual audio or SAP, it shall fall back to
  457. <constant>MODE_LANG1</constant> or <constant>MODE_MONO</constant>.
  458. Only <constant>V4L2_TUNER_ANALOG_TV</constant> tuners support this
  459. mode.</entry>
  460. </row>
  461. </tbody>
  462. </tgroup>
  463. </table>
  464. <table pgwide="1" frame="all" id="tuner-matrix">
  465. <title>Tuner Audio Matrix</title>
  466. <tgroup cols="6" align="center">
  467. <colspec align="left" />
  468. <colspec colname="c2" colwidth="1*" />
  469. <colspec colwidth="1*" />
  470. <colspec colwidth="1*" />
  471. <colspec colnum="6" colname="c6" colwidth="1*" />
  472. <spanspec namest="c2" nameend="c6" spanname="hspan" align="center" />
  473. <thead>
  474. <row>
  475. <entry></entry>
  476. <entry spanname="hspan">Selected
  477. <constant>V4L2_TUNER_MODE_</constant></entry>
  478. </row>
  479. <row>
  480. <entry>Received <constant>V4L2_TUNER_SUB_</constant></entry>
  481. <entry><constant>MONO</constant></entry>
  482. <entry><constant>STEREO</constant></entry>
  483. <entry><constant>LANG1</constant></entry>
  484. <entry><constant>LANG2 = SAP</constant></entry>
  485. <entry><constant>LANG1_LANG2</constant><footnote><para>This
  486. mode has been added in Linux 2.6.17 and may not be supported by older
  487. drivers.</para></footnote></entry>
  488. </row>
  489. </thead>
  490. <tbody valign="top">
  491. <row>
  492. <entry><constant>MONO</constant></entry>
  493. <entry>Mono</entry>
  494. <entry>Mono/Mono</entry>
  495. <entry>Mono</entry>
  496. <entry>Mono</entry>
  497. <entry>Mono/Mono</entry>
  498. </row>
  499. <row>
  500. <entry><constant>MONO | SAP</constant></entry>
  501. <entry>Mono</entry>
  502. <entry>Mono/Mono</entry>
  503. <entry>Mono</entry>
  504. <entry>SAP</entry>
  505. <entry>Mono/SAP (preferred) or Mono/Mono</entry>
  506. </row>
  507. <row>
  508. <entry><constant>STEREO</constant></entry>
  509. <entry>L+R</entry>
  510. <entry>L/R</entry>
  511. <entry>Stereo L/R (preferred) or Mono L+R</entry>
  512. <entry>Stereo L/R (preferred) or Mono L+R</entry>
  513. <entry>L/R (preferred) or L+R/L+R</entry>
  514. </row>
  515. <row>
  516. <entry><constant>STEREO | SAP</constant></entry>
  517. <entry>L+R</entry>
  518. <entry>L/R</entry>
  519. <entry>Stereo L/R (preferred) or Mono L+R</entry>
  520. <entry>SAP</entry>
  521. <entry>L+R/SAP (preferred) or L/R or L+R/L+R</entry>
  522. </row>
  523. <row>
  524. <entry><constant>LANG1 | LANG2</constant></entry>
  525. <entry>Language&nbsp;1</entry>
  526. <entry>Lang1/Lang2 (deprecated<footnote><para>Playback of
  527. both languages in <constant>MODE_STEREO</constant> is deprecated. In
  528. the future drivers should produce only the primary language in this
  529. mode. Applications should request
  530. <constant>MODE_LANG1_LANG2</constant> to record both languages or a
  531. stereo signal.</para></footnote>) or
  532. Lang1/Lang1</entry>
  533. <entry>Language&nbsp;1</entry>
  534. <entry>Language&nbsp;2</entry>
  535. <entry>Lang1/Lang2 (preferred) or Lang1/Lang1</entry>
  536. </row>
  537. </tbody>
  538. </tgroup>
  539. </table>
  540. </refsect1>
  541. <refsect1>
  542. &return-value;
  543. <variablelist>
  544. <varlistentry>
  545. <term><errorcode>EINVAL</errorcode></term>
  546. <listitem>
  547. <para>The &v4l2-tuner; <structfield>index</structfield> is
  548. out of bounds.</para>
  549. </listitem>
  550. </varlistentry>
  551. </variablelist>
  552. </refsect1>
  553. </refentry>