1<refentry id="vidioc-g-sliced-vbi-cap"> 2 <refmeta> 3 <refentrytitle>ioctl VIDIOC_G_SLICED_VBI_CAP</refentrytitle> 4 &manvol; 5 </refmeta> 6 7 <refnamediv> 8 <refname>VIDIOC_G_SLICED_VBI_CAP</refname> 9 <refpurpose>Query sliced VBI capabilities</refpurpose> 10 </refnamediv> 11 12 <refsynopsisdiv> 13 <funcsynopsis> 14 <funcprototype> 15 <funcdef>int <function>ioctl</function></funcdef> 16 <paramdef>int <parameter>fd</parameter></paramdef> 17 <paramdef>int <parameter>request</parameter></paramdef> 18 <paramdef>struct v4l2_sliced_vbi_cap *<parameter>argp</parameter></paramdef> 19 </funcprototype> 20 </funcsynopsis> 21 </refsynopsisdiv> 22 23 <refsect1> 24 <title>Arguments</title> 25 26 <variablelist> 27 <varlistentry> 28 <term><parameter>fd</parameter></term> 29 <listitem> 30 <para>&fd;</para> 31 </listitem> 32 </varlistentry> 33 <varlistentry> 34 <term><parameter>request</parameter></term> 35 <listitem> 36 <para>VIDIOC_G_SLICED_VBI_CAP</para> 37 </listitem> 38 </varlistentry> 39 <varlistentry> 40 <term><parameter>argp</parameter></term> 41 <listitem> 42 <para></para> 43 </listitem> 44 </varlistentry> 45 </variablelist> 46 </refsect1> 47 48 <refsect1> 49 <title>Description</title> 50 51 <para>To find out which data services are supported by a sliced 52VBI capture or output device, applications initialize the 53<structfield>type</structfield> field of a &v4l2-sliced-vbi-cap;, 54clear the <structfield>reserved</structfield> array and 55call the <constant>VIDIOC_G_SLICED_VBI_CAP</constant> ioctl. The 56driver fills in the remaining fields or returns an &EINVAL; if the 57sliced VBI API is unsupported or <structfield>type</structfield> 58is invalid.</para> 59 60 <para>Note the <structfield>type</structfield> field was added, 61and the ioctl changed from read-only to write-read, in Linux 2.6.19.</para> 62 63 <table pgwide="1" frame="none" id="v4l2-sliced-vbi-cap"> 64 <title>struct <structname>v4l2_sliced_vbi_cap</structname></title> 65 <tgroup cols="5"> 66 <colspec colname="c1" colwidth="3*" /> 67 <colspec colname="c2" colwidth="3*" /> 68 <colspec colname="c3" colwidth="2*" /> 69 <colspec colname="c4" colwidth="2*" /> 70 <colspec colname="c5" colwidth="2*" /> 71 <spanspec spanname="hspan" namest="c3" nameend="c5" /> 72 <tbody valign="top"> 73 <row> 74 <entry>__u16</entry> 75 <entry><structfield>service_set</structfield></entry> 76 <entry spanname="hspan">A set of all data services 77supported by the driver. Equal to the union of all elements of the 78<structfield>service_lines </structfield> array.</entry> 79 </row> 80 <row> 81 <entry>__u16</entry> 82 <entry><structfield>service_lines</structfield>[2][24]</entry> 83 <entry spanname="hspan">Each element of this array 84contains a set of data services the hardware can look for or insert 85into a particular scan line. Data services are defined in <xref 86 linkend="vbi-services" />. Array indices map to ITU-R 87line numbers (see also <xref 88 linkend="vbi-525" /> and <xref 89linkend="vbi-625" />) as follows:</entry> 90 </row> 91 <row> 92 <entry></entry> 93 <entry></entry> 94 <entry>Element</entry> 95 <entry>525 line systems</entry> 96 <entry>625 line systems</entry> 97 </row> 98 <row> 99 <entry></entry> 100 <entry></entry> 101 <entry><structfield>service_lines</structfield>[0][1]</entry> 102 <entry align="center">1</entry> 103 <entry align="center">1</entry> 104 </row> 105 <row> 106 <entry></entry> 107 <entry></entry> 108 <entry><structfield>service_lines</structfield>[0][23]</entry> 109 <entry align="center">23</entry> 110 <entry align="center">23</entry> 111 </row> 112 <row> 113 <entry></entry> 114 <entry></entry> 115 <entry><structfield>service_lines</structfield>[1][1]</entry> 116 <entry align="center">264</entry> 117 <entry align="center">314</entry> 118 </row> 119 <row> 120 <entry></entry> 121 <entry></entry> 122 <entry><structfield>service_lines</structfield>[1][23]</entry> 123 <entry align="center">286</entry> 124 <entry align="center">336</entry> 125 </row> 126 <row> 127 <entry></entry> 128 </row> 129 <row> 130 <entry></entry> 131 <entry></entry> 132 <entry spanname="hspan">The number of VBI lines the 133hardware can capture or output per frame, or the number of services it 134can identify on a given line may be limited. For example on PAL line 13516 the hardware may be able to look for a VPS or Teletext signal, but 136not both at the same time. Applications can learn about these limits 137using the &VIDIOC-S-FMT; ioctl as described in <xref 138 linkend="sliced" />.</entry> 139 </row> 140 <row> 141 <entry></entry> 142 </row> 143 <row> 144 <entry></entry> 145 <entry></entry> 146 <entry spanname="hspan">Drivers must set 147<structfield>service_lines</structfield>[0][0] and 148<structfield>service_lines</structfield>[1][0] to zero.</entry> 149 </row> 150 <row> 151 <entry>__u32</entry> 152 <entry><structfield>type</structfield></entry> 153 <entry>Type of the data stream, see <xref 154 linkend="v4l2-buf-type" />. Should be 155<constant>V4L2_BUF_TYPE_SLICED_VBI_CAPTURE</constant> or 156<constant>V4L2_BUF_TYPE_SLICED_VBI_OUTPUT</constant>.</entry> 157 </row> 158 <row> 159 <entry>__u32</entry> 160 <entry><structfield>reserved</structfield>[3]</entry> 161 <entry spanname="hspan">This array is reserved for future 162extensions. Applications and drivers must set it to zero.</entry> 163 </row> 164 </tbody> 165 </tgroup> 166 </table> 167 168 <!-- See also dev-sliced-vbi.sgml --> 169 <table pgwide="1" frame="none" id="vbi-services"> 170 <title>Sliced VBI services</title> 171 <tgroup cols="5"> 172 <colspec colname="c1" colwidth="2*" /> 173 <colspec colname="c2" colwidth="1*" /> 174 <colspec colname="c3" colwidth="1*" /> 175 <colspec colname="c4" colwidth="2*" /> 176 <colspec colname="c5" colwidth="2*" /> 177 <spanspec spanname='rlp' namest='c3' nameend='c5' /> 178 <thead> 179 <row> 180 <entry>Symbol</entry> 181 <entry>Value</entry> 182 <entry>Reference</entry> 183 <entry>Lines, usually</entry> 184 <entry>Payload</entry> 185 </row> 186 </thead> 187 <tbody valign="top"> 188 <row> 189 <entry><constant>V4L2_SLICED_TELETEXT_B</constant> (Teletext 190System B)</entry> 191 <entry>0x0001</entry> 192 <entry><xref linkend="ets300706" />, <xref linkend="itu653" /></entry> 193 <entry>PAL/SECAM line 7-22, 320-335 (second field 7-22)</entry> 194 <entry>Last 42 of the 45 byte Teletext packet, that is 195without clock run-in and framing code, lsb first transmitted.</entry> 196 </row> 197 <row> 198 <entry><constant>V4L2_SLICED_VPS</constant></entry> 199 <entry>0x0400</entry> 200 <entry><xref linkend="ets300231" /></entry> 201 <entry>PAL line 16</entry> 202 <entry>Byte number 3 to 15 according to Figure 9 of 203ETS 300 231, lsb first transmitted.</entry> 204 </row> 205 <row> 206 <entry><constant>V4L2_SLICED_CAPTION_525</constant></entry> 207 <entry>0x1000</entry> 208 <entry><xref linkend="cea608" /></entry> 209 <entry>NTSC line 21, 284 (second field 21)</entry> 210 <entry>Two bytes in transmission order, including parity 211bit, lsb first transmitted.</entry> 212 </row> 213 <row> 214 <entry><constant>V4L2_SLICED_WSS_625</constant></entry> 215 <entry>0x4000</entry> 216 <entry><xref linkend="en300294" />, <xref linkend="itu1119" /></entry> 217 <entry>PAL/SECAM line 23</entry> 218 <entry><screen> 219Byte 0 1 220 msb lsb msb lsb 221Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9 222</screen></entry> 223 </row> 224 <row> 225 <entry><constant>V4L2_SLICED_VBI_525</constant></entry> 226 <entry>0x1000</entry> 227 <entry spanname="rlp">Set of services applicable to 525 228line systems.</entry> 229 </row> 230 <row> 231 <entry><constant>V4L2_SLICED_VBI_625</constant></entry> 232 <entry>0x4401</entry> 233 <entry spanname="rlp">Set of services applicable to 625 234line systems.</entry> 235 </row> 236 </tbody> 237 </tgroup> 238 </table> 239 240 </refsect1> 241 242 <refsect1> 243 &return-value; 244 245 <variablelist> 246 <varlistentry> 247 <term><errorcode>EINVAL</errorcode></term> 248 <listitem> 249 <para>The value in the <structfield>type</structfield> field is 250wrong.</para> 251 </listitem> 252 </varlistentry> 253 </variablelist> 254 </refsect1> 255</refentry> 256