Video for Linux Two API Specification: Revision 0.24
Prev |  | Next

# ioctl VIDIOC_G_SLICED_VBI_CAP

## Name

VIDIOC_G_SLICED_VBI_CAP -- Query sliced VBI capabilities

## Synopsis

``int ioctl`(int fd, int request, struct v4l2_sliced_vbi_cap *argp);`

## Arguments

`fd`

  File descriptor returned by `open()`.

`request`

  VIDIOC_G_SLICED_VBI_CAP

`argp`

## Description

To find out which data services are supported by a sliced VBI capture or output device, applications initialize the `type` field of a struct v4l2_sliced_vbi_cap, clear the `reserved` array and call the `VIDIOC_G_SLICED_VBI_CAP` ioctl. The driver fills in the remaining fields or returns an EINVAL error code if the sliced VBI API is unsupported or `type` is invalid.

Note the `type` field was added, and the ioctl changed from read-only to write-read, in Linux 2.6.19.

Table 1. struct `v4l2_sliced_vbi_cap`

__u16 | `service_set` | A set of all data services supported by the driver. Equal to the union of all elements of the `service_lines` array.
__u16 | `service_lines`[2][24] | Each element of this array contains a set of data services the hardware can look for or insert into a particular scan line. Data services are defined in Table 2. Array indices map to ITU-R line numbers (see also Figure 4-2 and Figure 4-3) as follows:
|  | Element | 525 line systems | 625 line systems
|  | `service_lines`[0][1] | 1 | 1
|  | `service_lines`[0][23] | 23 | 23
|  | `service_lines`[1][1] | 264 | 314
|  | `service_lines`[1][23] | 286 | 336
|  | The number of VBI lines the hardware can capture or output per frame, or the number of services it can identify on a given line may be limited. For example on PAL line 16 the hardware may be able to look for a VPS or Teletext signal, but not both at the same time. Applications can learn about these limits using the `VIDIOC_S_FMT` ioctl as described in Section 4.8.
|  | Drivers must set `service_lines`[0][0] and `service_lines`[1][0] to zero.
enum v4l2_buf_type | `type` | Type of the data stream, see Table 3-2. Should be `V4L2_BUF_TYPE_SLICED_VBI_CAPTURE` or `V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`. |  |
__u32 | `reserved`[3] | This array is reserved for future extensions. Applications and drivers must set it to zero.

Table 2. Sliced VBI services

Symbol | Value | Reference | Lines, usually | Payload
--- | --- | --- | --- | ---
`V4L2_SLICED_TELETEXT_B` (Teletext System B) | 0x0001 | ETS 300 706, ITU BT.653 | PAL/SECAM line 7-22, 320-335 (second field 7-22) | Last 42 of the 45 byte Teletext packet, that is without clock run-in and framing code, lsb first transmitted.
`V4L2_SLICED_VPS` | 0x0400 | ETS 300 231 | PAL line 16 | Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb first transmitted.
`V4L2_SLICED_CAPTION_525` | 0x1000 | EIA 608-B | NTSC line 21, 284 (second field 21) | Two bytes in transmission order, including parity bit, lsb first transmitted.
`V4L2_SLICED_WSS_625` | 0x4000 | EN 300 294, ITU BT.1119 | PAL/SECAM line 23 |
    Byte        0                 1
         msb         lsb  msb           lsb
    Bit  7 6 5 4 3 2 1 0  x x 13 12 11 10 9
`V4L2_SLICED_VBI_525` | 0x1000 | Set of services applicable to 525 line systems.
`V4L2_SLICED_VBI_625` | 0x4401 | Set of services applicable to 625 line systems.

## Return Value

On success 0 is returned, on error -1 and the `errno` variable is set appropriately:

EINVAL

  The device does not support sliced VBI capturing or output, or the value in the `type` field is wrong.

Prev | Home | Next
ioctl VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY | Up | ioctl VIDIOC_G_STD, VIDIOC_S_STD