xref: /openbmc/linux/Documentation/userspace-api/media/v4l/vidioc-g-sliced-vbi-cap.rst (revision 8be98d2f2a0a262f8bf8a0bc1fdf522b3c7aab17)
1059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2407e84cdSMauro Carvalho Chehab.. c:namespace:: V4L
354f38fcaSMauro Carvalho Chehab
454f38fcaSMauro Carvalho Chehab.. _VIDIOC_G_SLICED_VBI_CAP:
554f38fcaSMauro Carvalho Chehab
654f38fcaSMauro Carvalho Chehab*****************************
754f38fcaSMauro Carvalho Chehabioctl VIDIOC_G_SLICED_VBI_CAP
854f38fcaSMauro Carvalho Chehab*****************************
954f38fcaSMauro Carvalho Chehab
1054f38fcaSMauro Carvalho ChehabName
1154f38fcaSMauro Carvalho Chehab====
1254f38fcaSMauro Carvalho Chehab
1354f38fcaSMauro Carvalho ChehabVIDIOC_G_SLICED_VBI_CAP - Query sliced VBI capabilities
1454f38fcaSMauro Carvalho Chehab
1554f38fcaSMauro Carvalho ChehabSynopsis
1654f38fcaSMauro Carvalho Chehab========
1754f38fcaSMauro Carvalho Chehab
18407e84cdSMauro Carvalho Chehab.. c:macro:: VIDIOC_G_SLICED_VBI_CAP
1954f38fcaSMauro Carvalho Chehab
20407e84cdSMauro Carvalho Chehab``int ioctl(int fd, VIDIOC_G_SLICED_VBI_CAP, struct v4l2_sliced_vbi_cap *argp)``
2154f38fcaSMauro Carvalho Chehab
2254f38fcaSMauro Carvalho ChehabArguments
2354f38fcaSMauro Carvalho Chehab=========
2454f38fcaSMauro Carvalho Chehab
2554f38fcaSMauro Carvalho Chehab``fd``
26407e84cdSMauro Carvalho Chehab    File descriptor returned by :c:func:`open()`.
2754f38fcaSMauro Carvalho Chehab
2854f38fcaSMauro Carvalho Chehab``argp``
2954f38fcaSMauro Carvalho Chehab    Pointer to struct :c:type:`v4l2_sliced_vbi_cap`.
3054f38fcaSMauro Carvalho Chehab
3154f38fcaSMauro Carvalho ChehabDescription
3254f38fcaSMauro Carvalho Chehab===========
3354f38fcaSMauro Carvalho Chehab
3454f38fcaSMauro Carvalho ChehabTo find out which data services are supported by a sliced VBI capture or
3554f38fcaSMauro Carvalho Chehaboutput device, applications initialize the ``type`` field of a struct
3654f38fcaSMauro Carvalho Chehab:c:type:`v4l2_sliced_vbi_cap`, clear the
3754f38fcaSMauro Carvalho Chehab``reserved`` array and call the :ref:`VIDIOC_G_SLICED_VBI_CAP <VIDIOC_G_SLICED_VBI_CAP>` ioctl. The
3854f38fcaSMauro Carvalho Chehabdriver fills in the remaining fields or returns an ``EINVAL`` error code if
3954f38fcaSMauro Carvalho Chehabthe sliced VBI API is unsupported or ``type`` is invalid.
4054f38fcaSMauro Carvalho Chehab
4154f38fcaSMauro Carvalho Chehab.. note::
4254f38fcaSMauro Carvalho Chehab
4354f38fcaSMauro Carvalho Chehab   The ``type`` field was added, and the ioctl changed from read-only
4454f38fcaSMauro Carvalho Chehab   to write-read, in Linux 2.6.19.
4554f38fcaSMauro Carvalho Chehab
4654f38fcaSMauro Carvalho Chehab.. c:type:: v4l2_sliced_vbi_cap
4754f38fcaSMauro Carvalho Chehab
48*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{1.4cm}|p{4.4cm}|p{4.5cm}|p{3.6cm}|p{3.6cm}|
4954f38fcaSMauro Carvalho Chehab
5054f38fcaSMauro Carvalho Chehab.. flat-table:: struct v4l2_sliced_vbi_cap
5154f38fcaSMauro Carvalho Chehab    :header-rows:  0
5254f38fcaSMauro Carvalho Chehab    :stub-columns: 0
5354f38fcaSMauro Carvalho Chehab    :widths:       3 3 2 2 2
5454f38fcaSMauro Carvalho Chehab
5554f38fcaSMauro Carvalho Chehab    * - __u16
5654f38fcaSMauro Carvalho Chehab      - ``service_set``
5754f38fcaSMauro Carvalho Chehab      - :cspan:`2` A set of all data services supported by the driver.
5854f38fcaSMauro Carvalho Chehab
5954f38fcaSMauro Carvalho Chehab	Equal to the union of all elements of the ``service_lines`` array.
6054f38fcaSMauro Carvalho Chehab    * - __u16
6154f38fcaSMauro Carvalho Chehab      - ``service_lines``\ [2][24]
6254f38fcaSMauro Carvalho Chehab      - :cspan:`2` Each element of this array contains a set of data
6354f38fcaSMauro Carvalho Chehab	services the hardware can look for or insert into a particular
6454f38fcaSMauro Carvalho Chehab	scan line. Data services are defined in :ref:`vbi-services`.
6554f38fcaSMauro Carvalho Chehab	Array indices map to ITU-R line numbers\ [#f1]_ as follows:
6654f38fcaSMauro Carvalho Chehab    * -
6754f38fcaSMauro Carvalho Chehab      -
6854f38fcaSMauro Carvalho Chehab      - Element
6954f38fcaSMauro Carvalho Chehab      - 525 line systems
7054f38fcaSMauro Carvalho Chehab      - 625 line systems
7154f38fcaSMauro Carvalho Chehab    * -
7254f38fcaSMauro Carvalho Chehab      -
7354f38fcaSMauro Carvalho Chehab      - ``service_lines``\ [0][1]
7454f38fcaSMauro Carvalho Chehab      - 1
7554f38fcaSMauro Carvalho Chehab      - 1
7654f38fcaSMauro Carvalho Chehab    * -
7754f38fcaSMauro Carvalho Chehab      -
7854f38fcaSMauro Carvalho Chehab      - ``service_lines``\ [0][23]
7954f38fcaSMauro Carvalho Chehab      - 23
8054f38fcaSMauro Carvalho Chehab      - 23
8154f38fcaSMauro Carvalho Chehab    * -
8254f38fcaSMauro Carvalho Chehab      -
8354f38fcaSMauro Carvalho Chehab      - ``service_lines``\ [1][1]
8454f38fcaSMauro Carvalho Chehab      - 264
8554f38fcaSMauro Carvalho Chehab      - 314
8654f38fcaSMauro Carvalho Chehab    * -
8754f38fcaSMauro Carvalho Chehab      -
8854f38fcaSMauro Carvalho Chehab      - ``service_lines``\ [1][23]
8954f38fcaSMauro Carvalho Chehab      - 286
9054f38fcaSMauro Carvalho Chehab      - 336
9154f38fcaSMauro Carvalho Chehab    * -
9254f38fcaSMauro Carvalho Chehab    * -
9354f38fcaSMauro Carvalho Chehab      -
9454f38fcaSMauro Carvalho Chehab      - :cspan:`2` The number of VBI lines the hardware can capture or
9554f38fcaSMauro Carvalho Chehab	output per frame, or the number of services it can identify on a
9654f38fcaSMauro Carvalho Chehab	given line may be limited. For example on PAL line 16 the hardware
9754f38fcaSMauro Carvalho Chehab	may be able to look for a VPS or Teletext signal, but not both at
9854f38fcaSMauro Carvalho Chehab	the same time. Applications can learn about these limits using the
9954f38fcaSMauro Carvalho Chehab	:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl as described in
10054f38fcaSMauro Carvalho Chehab	:ref:`sliced`.
10154f38fcaSMauro Carvalho Chehab    * -
10254f38fcaSMauro Carvalho Chehab    * -
10354f38fcaSMauro Carvalho Chehab      -
10454f38fcaSMauro Carvalho Chehab      - :cspan:`2` Drivers must set ``service_lines`` [0][0] and
10554f38fcaSMauro Carvalho Chehab	``service_lines``\ [1][0] to zero.
10654f38fcaSMauro Carvalho Chehab    * - __u32
10754f38fcaSMauro Carvalho Chehab      - ``type``
10854f38fcaSMauro Carvalho Chehab      - Type of the data stream, see :c:type:`v4l2_buf_type`. Should be
10954f38fcaSMauro Carvalho Chehab	``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or
11054f38fcaSMauro Carvalho Chehab	``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``.
11154f38fcaSMauro Carvalho Chehab    * - __u32
11254f38fcaSMauro Carvalho Chehab      - ``reserved``\ [3]
11354f38fcaSMauro Carvalho Chehab      - :cspan:`2` This array is reserved for future extensions.
11454f38fcaSMauro Carvalho Chehab
11554f38fcaSMauro Carvalho Chehab	Applications and drivers must set it to zero.
11654f38fcaSMauro Carvalho Chehab
11754f38fcaSMauro Carvalho Chehab.. [#f1]
11854f38fcaSMauro Carvalho Chehab
11954f38fcaSMauro Carvalho Chehab   See also :ref:`vbi-525` and :ref:`vbi-625`.
12054f38fcaSMauro Carvalho Chehab
12154f38fcaSMauro Carvalho Chehab.. raw:: latex
12254f38fcaSMauro Carvalho Chehab
12354f38fcaSMauro Carvalho Chehab    \scriptsize
12454f38fcaSMauro Carvalho Chehab
125*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{3.9cm}|p{1.0cm}|p{2.0cm}|p{3.0cm}|p{7.0cm}|
12654f38fcaSMauro Carvalho Chehab
12754f38fcaSMauro Carvalho Chehab.. _vbi-services:
12854f38fcaSMauro Carvalho Chehab
12954f38fcaSMauro Carvalho Chehab.. flat-table:: Sliced VBI services
13054f38fcaSMauro Carvalho Chehab    :header-rows:  1
13154f38fcaSMauro Carvalho Chehab    :stub-columns: 0
13254f38fcaSMauro Carvalho Chehab    :widths:       2 1 1 2 2
13354f38fcaSMauro Carvalho Chehab
13454f38fcaSMauro Carvalho Chehab    * - Symbol
13554f38fcaSMauro Carvalho Chehab      - Value
13654f38fcaSMauro Carvalho Chehab      - Reference
13754f38fcaSMauro Carvalho Chehab      - Lines, usually
13854f38fcaSMauro Carvalho Chehab      - Payload
13954f38fcaSMauro Carvalho Chehab    * - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)
14054f38fcaSMauro Carvalho Chehab      - 0x0001
14154f38fcaSMauro Carvalho Chehab      - :ref:`ets300706`,
14254f38fcaSMauro Carvalho Chehab
14354f38fcaSMauro Carvalho Chehab	:ref:`itu653`
14454f38fcaSMauro Carvalho Chehab      - PAL/SECAM line 7-22, 320-335 (second field 7-22)
14554f38fcaSMauro Carvalho Chehab      - Last 42 of the 45 byte Teletext packet, that is without clock
14654f38fcaSMauro Carvalho Chehab	run-in and framing code, lsb first transmitted.
14754f38fcaSMauro Carvalho Chehab    * - ``V4L2_SLICED_VPS``
14854f38fcaSMauro Carvalho Chehab      - 0x0400
14954f38fcaSMauro Carvalho Chehab      - :ref:`ets300231`
15054f38fcaSMauro Carvalho Chehab      - PAL line 16
15154f38fcaSMauro Carvalho Chehab      - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb
15254f38fcaSMauro Carvalho Chehab	first transmitted.
15354f38fcaSMauro Carvalho Chehab    * - ``V4L2_SLICED_CAPTION_525``
15454f38fcaSMauro Carvalho Chehab      - 0x1000
15554f38fcaSMauro Carvalho Chehab      - :ref:`cea608`
15654f38fcaSMauro Carvalho Chehab      - NTSC line 21, 284 (second field 21)
15754f38fcaSMauro Carvalho Chehab      - Two bytes in transmission order, including parity bit, lsb first
15854f38fcaSMauro Carvalho Chehab	transmitted.
15954f38fcaSMauro Carvalho Chehab    * - ``V4L2_SLICED_WSS_625``
16054f38fcaSMauro Carvalho Chehab      - 0x4000
16154f38fcaSMauro Carvalho Chehab      - :ref:`en300294`,
16254f38fcaSMauro Carvalho Chehab
16354f38fcaSMauro Carvalho Chehab	:ref:`itu1119`
16454f38fcaSMauro Carvalho Chehab      - PAL/SECAM line 23
16557161016SMauro Carvalho Chehab      - See :ref:`v4l2-sliced-vbi-cap-wss-625-payload` below.
16654f38fcaSMauro Carvalho Chehab    * - ``V4L2_SLICED_VBI_525``
16754f38fcaSMauro Carvalho Chehab      - 0x1000
16854f38fcaSMauro Carvalho Chehab      - :cspan:`2` Set of services applicable to 525 line systems.
16954f38fcaSMauro Carvalho Chehab    * - ``V4L2_SLICED_VBI_625``
17054f38fcaSMauro Carvalho Chehab      - 0x4401
17154f38fcaSMauro Carvalho Chehab      - :cspan:`2` Set of services applicable to 625 line systems.
17254f38fcaSMauro Carvalho Chehab
173*fea13a69SMauro Carvalho Chehab
17454f38fcaSMauro Carvalho Chehab.. raw:: latex
17554f38fcaSMauro Carvalho Chehab
17654f38fcaSMauro Carvalho Chehab    \normalsize
17754f38fcaSMauro Carvalho Chehab
17857161016SMauro Carvalho Chehab.. _v4l2-sliced-vbi-cap-wss-625-payload:
17957161016SMauro Carvalho Chehab
18057161016SMauro Carvalho ChehabV4L2_SLICED_VBI_CAP WSS_625 payload
18157161016SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18257161016SMauro Carvalho Chehab
18357161016SMauro Carvalho ChehabThe payload for ``V4L2_SLICED_WSS_625`` is:
18457161016SMauro Carvalho Chehab
18557161016SMauro Carvalho Chehab	    +-----+------------------+-----------------------+
18657161016SMauro Carvalho Chehab	    |Byte |        0         |           1           |
18757161016SMauro Carvalho Chehab	    +-----+--------+---------+-----------+-----------+
18857161016SMauro Carvalho Chehab	    |     | msb    | lsb     | msb       | lsb       |
18957161016SMauro Carvalho Chehab	    |     +-+-+-+--+--+-+-+--+--+-+--+---+---+--+-+--+
19057161016SMauro Carvalho Chehab	    | Bit |7|6|5|4 | 3|2|1|0 | x|x|13|12 | 11|10|9|8 |
19157161016SMauro Carvalho Chehab	    +-----+-+-+-+--+--+-+-+--+--+-+--+---+---+--+-+--+
19257161016SMauro Carvalho Chehab
19357161016SMauro Carvalho Chehab
19454f38fcaSMauro Carvalho ChehabReturn Value
19554f38fcaSMauro Carvalho Chehab============
19654f38fcaSMauro Carvalho Chehab
19754f38fcaSMauro Carvalho ChehabOn success 0 is returned, on error -1 and the ``errno`` variable is set
19854f38fcaSMauro Carvalho Chehabappropriately. The generic error codes are described at the
19954f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter.
20054f38fcaSMauro Carvalho Chehab
20154f38fcaSMauro Carvalho ChehabEINVAL
20254f38fcaSMauro Carvalho Chehab    The value in the ``type`` field is wrong.
203