vidioc-g-tuner.xml 21 KB

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