1 .. SPDX-License-Identifier: GFDL-1.1-no-invari !! 1 .. Permission is granted to copy, distribute and/or modify this 2 .. c:namespace:: V4L !! 2 .. document under the terms of the GNU Free Documentation License, >> 3 .. Version 1.1 or any later version published by the Free Software >> 4 .. Foundation, with no Invariant Sections, no Front-Cover Texts >> 5 .. and no Back-Cover Texts. A copy of the license is included at >> 6 .. Documentation/userspace-api/media/fdl-appendix.rst. >> 7 .. >> 8 .. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections 3 9 4 .. _VIDIOC_G_SLICED_VBI_CAP: 10 .. _VIDIOC_G_SLICED_VBI_CAP: 5 11 6 ***************************** 12 ***************************** 7 ioctl VIDIOC_G_SLICED_VBI_CAP 13 ioctl VIDIOC_G_SLICED_VBI_CAP 8 ***************************** 14 ***************************** 9 15 10 Name 16 Name 11 ==== 17 ==== 12 18 13 VIDIOC_G_SLICED_VBI_CAP - Query sliced VBI cap 19 VIDIOC_G_SLICED_VBI_CAP - Query sliced VBI capabilities 14 20 >> 21 15 Synopsis 22 Synopsis 16 ======== 23 ======== 17 24 18 .. c:macro:: VIDIOC_G_SLICED_VBI_CAP !! 25 .. c:function:: int ioctl( int fd, VIDIOC_G_SLICED_VBI_CAP, struct v4l2_sliced_vbi_cap *argp ) >> 26 :name: VIDIOC_G_SLICED_VBI_CAP 19 27 20 ``int ioctl(int fd, VIDIOC_G_SLICED_VBI_CAP, s << 21 28 22 Arguments 29 Arguments 23 ========= 30 ========= 24 31 25 ``fd`` 32 ``fd`` 26 File descriptor returned by :c:func:`open( !! 33 File descriptor returned by :ref:`open() <func-open>`. 27 34 28 ``argp`` 35 ``argp`` 29 Pointer to struct :c:type:`v4l2_sliced_vbi 36 Pointer to struct :c:type:`v4l2_sliced_vbi_cap`. 30 37 >> 38 31 Description 39 Description 32 =========== 40 =========== 33 41 34 To find out which data services are supported 42 To find out which data services are supported by a sliced VBI capture or 35 output device, applications initialize the ``t 43 output device, applications initialize the ``type`` field of a struct 36 :c:type:`v4l2_sliced_vbi_cap`, clear the 44 :c:type:`v4l2_sliced_vbi_cap`, clear the 37 ``reserved`` array and call the :ref:`VIDIOC_G 45 ``reserved`` array and call the :ref:`VIDIOC_G_SLICED_VBI_CAP <VIDIOC_G_SLICED_VBI_CAP>` ioctl. The 38 driver fills in the remaining fields or return 46 driver fills in the remaining fields or returns an ``EINVAL`` error code if 39 the sliced VBI API is unsupported or ``type`` 47 the sliced VBI API is unsupported or ``type`` is invalid. 40 48 41 .. note:: 49 .. note:: 42 50 43 The ``type`` field was added, and the ioctl 51 The ``type`` field was added, and the ioctl changed from read-only 44 to write-read, in Linux 2.6.19. 52 to write-read, in Linux 2.6.19. 45 53 >> 54 46 .. c:type:: v4l2_sliced_vbi_cap 55 .. c:type:: v4l2_sliced_vbi_cap 47 56 48 .. tabularcolumns:: |p{1.4cm}|p{4.4cm}|p{4.5cm !! 57 .. tabularcolumns:: |p{1.2cm}|p{4.2cm}|p{4.1cm}|p{4.0cm}|p{4.0cm}| 49 58 50 .. flat-table:: struct v4l2_sliced_vbi_cap 59 .. flat-table:: struct v4l2_sliced_vbi_cap 51 :header-rows: 0 60 :header-rows: 0 52 :stub-columns: 0 61 :stub-columns: 0 53 :widths: 3 3 2 2 2 62 :widths: 3 3 2 2 2 54 63 55 * - __u16 64 * - __u16 56 - ``service_set`` 65 - ``service_set`` 57 - :cspan:`2` A set of all data services 66 - :cspan:`2` A set of all data services supported by the driver. 58 67 59 Equal to the union of all elements of 68 Equal to the union of all elements of the ``service_lines`` array. 60 * - __u16 69 * - __u16 61 - ``service_lines``\ [2][24] 70 - ``service_lines``\ [2][24] 62 - :cspan:`2` Each element of this array 71 - :cspan:`2` Each element of this array contains a set of data 63 services the hardware can look for or 72 services the hardware can look for or insert into a particular 64 scan line. Data services are defined i 73 scan line. Data services are defined in :ref:`vbi-services`. 65 Array indices map to ITU-R line number 74 Array indices map to ITU-R line numbers\ [#f1]_ as follows: 66 * - 75 * - 67 - 76 - 68 - Element 77 - Element 69 - 525 line systems 78 - 525 line systems 70 - 625 line systems 79 - 625 line systems 71 * - 80 * - 72 - 81 - 73 - ``service_lines``\ [0][1] 82 - ``service_lines``\ [0][1] 74 - 1 83 - 1 75 - 1 84 - 1 76 * - 85 * - 77 - 86 - 78 - ``service_lines``\ [0][23] 87 - ``service_lines``\ [0][23] 79 - 23 88 - 23 80 - 23 89 - 23 81 * - 90 * - 82 - 91 - 83 - ``service_lines``\ [1][1] 92 - ``service_lines``\ [1][1] 84 - 264 93 - 264 85 - 314 94 - 314 86 * - 95 * - 87 - 96 - 88 - ``service_lines``\ [1][23] 97 - ``service_lines``\ [1][23] 89 - 286 98 - 286 90 - 336 99 - 336 91 * - 100 * - 92 * - 101 * - 93 - 102 - 94 - :cspan:`2` The number of VBI lines the 103 - :cspan:`2` The number of VBI lines the hardware can capture or 95 output per frame, or the number of ser 104 output per frame, or the number of services it can identify on a 96 given line may be limited. For example 105 given line may be limited. For example on PAL line 16 the hardware 97 may be able to look for a VPS or Telet 106 may be able to look for a VPS or Teletext signal, but not both at 98 the same time. Applications can learn 107 the same time. Applications can learn about these limits using the 99 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioc 108 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl as described in 100 :ref:`sliced`. 109 :ref:`sliced`. 101 * - 110 * - 102 * - 111 * - 103 - 112 - 104 - :cspan:`2` Drivers must set ``service_ 113 - :cspan:`2` Drivers must set ``service_lines`` [0][0] and 105 ``service_lines``\ [1][0] to zero. 114 ``service_lines``\ [1][0] to zero. 106 * - __u32 115 * - __u32 107 - ``type`` 116 - ``type`` 108 - Type of the data stream, see :c:type:` 117 - Type of the data stream, see :c:type:`v4l2_buf_type`. Should be 109 ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` o 118 ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or 110 ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``. 119 ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``. 111 * - __u32 120 * - __u32 112 - ``reserved``\ [3] 121 - ``reserved``\ [3] 113 - :cspan:`2` This array is reserved for 122 - :cspan:`2` This array is reserved for future extensions. 114 123 115 Applications and drivers must set it t 124 Applications and drivers must set it to zero. 116 125 117 .. [#f1] 126 .. [#f1] 118 127 119 See also :ref:`vbi-525` and :ref:`vbi-625`. 128 See also :ref:`vbi-525` and :ref:`vbi-625`. 120 129 >> 130 121 .. raw:: latex 131 .. raw:: latex 122 132 123 \scriptsize 133 \scriptsize 124 134 125 .. tabularcolumns:: |p{3.9cm}|p{1.0cm}|p{2.0cm !! 135 .. tabularcolumns:: |p{3.5cm}|p{1.0cm}|p{2.0cm}|p{2.0cm}|p{8.0cm}| 126 136 127 .. _vbi-services: 137 .. _vbi-services: 128 138 129 .. flat-table:: Sliced VBI services 139 .. flat-table:: Sliced VBI services 130 :header-rows: 1 140 :header-rows: 1 131 :stub-columns: 0 141 :stub-columns: 0 132 :widths: 2 1 1 2 2 142 :widths: 2 1 1 2 2 133 143 134 * - Symbol 144 * - Symbol 135 - Value 145 - Value 136 - Reference 146 - Reference 137 - Lines, usually 147 - Lines, usually 138 - Payload 148 - Payload 139 * - ``V4L2_SLICED_TELETEXT_B`` (Teletext S 149 * - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B) 140 - 0x0001 150 - 0x0001 141 - :ref:`ets300706`, 151 - :ref:`ets300706`, 142 152 143 :ref:`itu653` 153 :ref:`itu653` 144 - PAL/SECAM line 7-22, 320-335 (second f 154 - PAL/SECAM line 7-22, 320-335 (second field 7-22) 145 - Last 42 of the 45 byte Teletext packet 155 - Last 42 of the 45 byte Teletext packet, that is without clock 146 run-in and framing code, lsb first tra 156 run-in and framing code, lsb first transmitted. 147 * - ``V4L2_SLICED_VPS`` 157 * - ``V4L2_SLICED_VPS`` 148 - 0x0400 158 - 0x0400 149 - :ref:`ets300231` 159 - :ref:`ets300231` 150 - PAL line 16 160 - PAL line 16 151 - Byte number 3 to 15 according to Figur 161 - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb 152 first transmitted. 162 first transmitted. 153 * - ``V4L2_SLICED_CAPTION_525`` 163 * - ``V4L2_SLICED_CAPTION_525`` 154 - 0x1000 164 - 0x1000 155 - :ref:`cea608` 165 - :ref:`cea608` 156 - NTSC line 21, 284 (second field 21) 166 - NTSC line 21, 284 (second field 21) 157 - Two bytes in transmission order, inclu 167 - Two bytes in transmission order, including parity bit, lsb first 158 transmitted. 168 transmitted. 159 * - ``V4L2_SLICED_WSS_625`` 169 * - ``V4L2_SLICED_WSS_625`` 160 - 0x4000 170 - 0x4000 161 - :ref:`en300294`, 171 - :ref:`en300294`, 162 172 163 :ref:`itu1119` 173 :ref:`itu1119` 164 - PAL/SECAM line 23 174 - PAL/SECAM line 23 165 - See :ref:`v4l2-sliced-vbi-cap-wss-625- !! 175 - >> 176 >> 177 :: >> 178 >> 179 Byte 0 1 >> 180 msb lsb msb lsb >> 181 Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9 166 * - ``V4L2_SLICED_VBI_525`` 182 * - ``V4L2_SLICED_VBI_525`` 167 - 0x1000 183 - 0x1000 168 - :cspan:`2` Set of services applicable 184 - :cspan:`2` Set of services applicable to 525 line systems. 169 * - ``V4L2_SLICED_VBI_625`` 185 * - ``V4L2_SLICED_VBI_625`` 170 - 0x4401 186 - 0x4401 171 - :cspan:`2` Set of services applicable 187 - :cspan:`2` Set of services applicable to 625 line systems. 172 188 173 << 174 .. raw:: latex 189 .. raw:: latex 175 190 176 \normalsize 191 \normalsize 177 << 178 .. _v4l2-sliced-vbi-cap-wss-625-payload: << 179 << 180 V4L2_SLICED_VBI_CAP WSS_625 payload << 181 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ << 182 << 183 The payload for ``V4L2_SLICED_WSS_625`` is: << 184 << 185 +-----+------------------+-------- << 186 |Byte | 0 | << 187 +-----+--------+---------+-------- << 188 | | msb | lsb | msb << 189 | +-+-+-+--+--+-+-+--+--+-+--+ << 190 | Bit |7|6|5|4 | 3|2|1|0 | x|x|13| << 191 +-----+-+-+-+--+--+-+-+--+--+-+--+ << 192 192 193 193 194 Return Value 194 Return Value 195 ============ 195 ============ 196 196 197 On success 0 is returned, on error -1 and the 197 On success 0 is returned, on error -1 and the ``errno`` variable is set 198 appropriately. The generic error codes are des 198 appropriately. The generic error codes are described at the 199 :ref:`Generic Error Codes <gen-errors>` chapte 199 :ref:`Generic Error Codes <gen-errors>` chapter. 200 200 201 EINVAL 201 EINVAL 202 The value in the ``type`` field is wrong. 202 The value in the ``type`` field is wrong.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.