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.. _raw-vbi: 554f38fcaSMauro Carvalho Chehab 654f38fcaSMauro Carvalho Chehab********************** 754f38fcaSMauro Carvalho ChehabRaw VBI Data Interface 854f38fcaSMauro Carvalho Chehab********************** 954f38fcaSMauro Carvalho Chehab 1054f38fcaSMauro Carvalho ChehabVBI is an abbreviation of Vertical Blanking Interval, a gap in the 1154f38fcaSMauro Carvalho Chehabsequence of lines of an analog video signal. During VBI no picture 1254f38fcaSMauro Carvalho Chehabinformation is transmitted, allowing some time while the electron beam 1354f38fcaSMauro Carvalho Chehabof a cathode ray tube TV returns to the top of the screen. Using an 1454f38fcaSMauro Carvalho Chehaboscilloscope you will find here the vertical synchronization pulses and 1554f38fcaSMauro Carvalho Chehabshort data packages ASK modulated [#f1]_ onto the video signal. These are 1654f38fcaSMauro Carvalho Chehabtransmissions of services such as Teletext or Closed Caption. 1754f38fcaSMauro Carvalho Chehab 1854f38fcaSMauro Carvalho ChehabSubject of this interface type is raw VBI data, as sampled off a video 1954f38fcaSMauro Carvalho Chehabsignal, or to be added to a signal for output. The data format is 2054f38fcaSMauro Carvalho Chehabsimilar to uncompressed video images, a number of lines times a number 2154f38fcaSMauro Carvalho Chehabof samples per line, we call this a VBI image. 2254f38fcaSMauro Carvalho Chehab 2354f38fcaSMauro Carvalho ChehabConventionally V4L2 VBI devices are accessed through character device 2454f38fcaSMauro Carvalho Chehabspecial files named ``/dev/vbi`` and ``/dev/vbi0`` to ``/dev/vbi31`` 2554f38fcaSMauro Carvalho Chehabwith major number 81 and minor numbers 224 to 255. ``/dev/vbi`` is 2654f38fcaSMauro Carvalho Chehabtypically a symbolic link to the preferred VBI device. This convention 2754f38fcaSMauro Carvalho Chehabapplies to both input and output devices. 2854f38fcaSMauro Carvalho Chehab 2954f38fcaSMauro Carvalho ChehabTo address the problems of finding related video and VBI devices VBI 3054f38fcaSMauro Carvalho Chehabcapturing and output is also available as device function under 3154f38fcaSMauro Carvalho Chehab``/dev/video``. To capture or output raw VBI data with these devices 3254f38fcaSMauro Carvalho Chehabapplications must call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. 3354f38fcaSMauro Carvalho ChehabAccessed as ``/dev/vbi``, raw VBI capturing or output is the default 3454f38fcaSMauro Carvalho Chehabdevice function. 3554f38fcaSMauro Carvalho Chehab 3654f38fcaSMauro Carvalho ChehabQuerying Capabilities 3754f38fcaSMauro Carvalho Chehab===================== 3854f38fcaSMauro Carvalho Chehab 3954f38fcaSMauro Carvalho ChehabDevices supporting the raw VBI capturing or output API set the 4054f38fcaSMauro Carvalho Chehab``V4L2_CAP_VBI_CAPTURE`` or ``V4L2_CAP_VBI_OUTPUT`` flags, respectively, 4154f38fcaSMauro Carvalho Chehabin the ``capabilities`` field of struct 4254f38fcaSMauro Carvalho Chehab:c:type:`v4l2_capability` returned by the 4354f38fcaSMauro Carvalho Chehab:ref:`VIDIOC_QUERYCAP` ioctl. At least one of the 44*17611d3fSHans Verkuilread/write or streaming I/O methods must be supported. VBI 4554f38fcaSMauro Carvalho Chehabdevices may or may not have a tuner or modulator. 4654f38fcaSMauro Carvalho Chehab 4754f38fcaSMauro Carvalho ChehabSupplemental Functions 4854f38fcaSMauro Carvalho Chehab====================== 4954f38fcaSMauro Carvalho Chehab 5054f38fcaSMauro Carvalho ChehabVBI devices shall support :ref:`video input or output <video>`, 5154f38fcaSMauro Carvalho Chehab:ref:`tuner or modulator <tuner>`, and :ref:`controls <control>` 5254f38fcaSMauro Carvalho Chehabioctls as needed. The :ref:`video standard <standard>` ioctls provide 5354f38fcaSMauro Carvalho Chehabinformation vital to program a VBI device, therefore must be supported. 5454f38fcaSMauro Carvalho Chehab 5554f38fcaSMauro Carvalho ChehabRaw VBI Format Negotiation 5654f38fcaSMauro Carvalho Chehab========================== 5754f38fcaSMauro Carvalho Chehab 5854f38fcaSMauro Carvalho ChehabRaw VBI sampling abilities can vary, in particular the sampling 5954f38fcaSMauro Carvalho Chehabfrequency. To properly interpret the data V4L2 specifies an ioctl to 6054f38fcaSMauro Carvalho Chehabquery the sampling parameters. Moreover, to allow for some flexibility 6154f38fcaSMauro Carvalho Chehabapplications can also suggest different parameters. 6254f38fcaSMauro Carvalho Chehab 63407e84cdSMauro Carvalho ChehabAs usual these parameters are *not* reset at :c:func:`open()` 6454f38fcaSMauro Carvalho Chehabtime to permit Unix tool chains, programming a device and then reading 6554f38fcaSMauro Carvalho Chehabfrom it as if it was a plain file. Well written V4L2 applications should 6654f38fcaSMauro Carvalho Chehabalways ensure they really get what they want, requesting reasonable 6754f38fcaSMauro Carvalho Chehabparameters and then checking if the actual parameters are suitable. 6854f38fcaSMauro Carvalho Chehab 6954f38fcaSMauro Carvalho ChehabTo query the current raw VBI capture parameters applications set the 7054f38fcaSMauro Carvalho Chehab``type`` field of a struct :c:type:`v4l2_format` to 7154f38fcaSMauro Carvalho Chehab``V4L2_BUF_TYPE_VBI_CAPTURE`` or ``V4L2_BUF_TYPE_VBI_OUTPUT``, and call 7254f38fcaSMauro Carvalho Chehabthe :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer to this 7354f38fcaSMauro Carvalho Chehabstructure. Drivers fill the struct 7454f38fcaSMauro Carvalho Chehab:c:type:`v4l2_vbi_format` ``vbi`` member of the 7554f38fcaSMauro Carvalho Chehab``fmt`` union. 7654f38fcaSMauro Carvalho Chehab 7754f38fcaSMauro Carvalho ChehabTo request different parameters applications set the ``type`` field of a 7854f38fcaSMauro Carvalho Chehabstruct :c:type:`v4l2_format` as above and initialize all 7954f38fcaSMauro Carvalho Chehabfields of the struct :c:type:`v4l2_vbi_format` 8054f38fcaSMauro Carvalho Chehab``vbi`` member of the ``fmt`` union, or better just modify the results 8154f38fcaSMauro Carvalho Chehabof :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` 8254f38fcaSMauro Carvalho Chehabioctl with a pointer to this structure. Drivers return an ``EINVAL`` error 8354f38fcaSMauro Carvalho Chehabcode only when the given parameters are ambiguous, otherwise they modify 8454f38fcaSMauro Carvalho Chehabthe parameters according to the hardware capabilities and return the 8554f38fcaSMauro Carvalho Chehabactual parameters. When the driver allocates resources at this point, it 8654f38fcaSMauro Carvalho Chehabmay return an ``EBUSY`` error code to indicate the returned parameters are 8754f38fcaSMauro Carvalho Chehabvalid but the required resources are currently not available. That may 8854f38fcaSMauro Carvalho Chehabhappen for instance when the video and VBI areas to capture would 8954f38fcaSMauro Carvalho Chehaboverlap, or when the driver supports multiple opens and another process 9054f38fcaSMauro Carvalho Chehabalready requested VBI capturing or output. Anyway, applications must 9154f38fcaSMauro Carvalho Chehabexpect other resource allocation points which may return ``EBUSY``, at the 92407e84cdSMauro Carvalho Chehab:ref:`VIDIOC_STREAMON` ioctl and the first :c:func:`read()` 93407e84cdSMauro Carvalho Chehab, :c:func:`write()` and :c:func:`select()` calls. 9454f38fcaSMauro Carvalho Chehab 9554f38fcaSMauro Carvalho ChehabVBI devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and 9654f38fcaSMauro Carvalho Chehab:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, even if :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ignores all requests 9754f38fcaSMauro Carvalho Chehaband always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does. 9854f38fcaSMauro Carvalho Chehab:ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` is optional. 9954f38fcaSMauro Carvalho Chehab 100fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{1.6cm}|p{4.2cm}|p{11.5cm}| 10154f38fcaSMauro Carvalho Chehab 10254f38fcaSMauro Carvalho Chehab.. c:type:: v4l2_vbi_format 10354f38fcaSMauro Carvalho Chehab 10454f38fcaSMauro Carvalho Chehab.. cssclass:: longtable 10554f38fcaSMauro Carvalho Chehab 10654f38fcaSMauro Carvalho Chehab.. flat-table:: struct v4l2_vbi_format 10754f38fcaSMauro Carvalho Chehab :header-rows: 0 10854f38fcaSMauro Carvalho Chehab :stub-columns: 0 10954f38fcaSMauro Carvalho Chehab :widths: 1 1 2 11054f38fcaSMauro Carvalho Chehab 11154f38fcaSMauro Carvalho Chehab * - __u32 11254f38fcaSMauro Carvalho Chehab - ``sampling_rate`` 11354f38fcaSMauro Carvalho Chehab - Samples per second, i. e. unit 1 Hz. 11454f38fcaSMauro Carvalho Chehab * - __u32 11554f38fcaSMauro Carvalho Chehab - ``offset`` 11654f38fcaSMauro Carvalho Chehab - Horizontal offset of the VBI image, relative to the leading edge 11754f38fcaSMauro Carvalho Chehab of the line synchronization pulse and counted in samples: The 11854f38fcaSMauro Carvalho Chehab first sample in the VBI image will be located ``offset`` / 11954f38fcaSMauro Carvalho Chehab ``sampling_rate`` seconds following the leading edge. See also 12054f38fcaSMauro Carvalho Chehab :ref:`vbi-hsync`. 12154f38fcaSMauro Carvalho Chehab * - __u32 12254f38fcaSMauro Carvalho Chehab - ``samples_per_line`` 12354f38fcaSMauro Carvalho Chehab - 12454f38fcaSMauro Carvalho Chehab * - __u32 12554f38fcaSMauro Carvalho Chehab - ``sample_format`` 12654f38fcaSMauro Carvalho Chehab - Defines the sample format as in :ref:`pixfmt`, a 12754f38fcaSMauro Carvalho Chehab four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``, 12854f38fcaSMauro Carvalho Chehab i. e. each sample consists of 8 bits with lower values oriented 12954f38fcaSMauro Carvalho Chehab towards the black level. Do not assume any other correlation of 13054f38fcaSMauro Carvalho Chehab values with the signal level. For example, the MSB does not 13154f38fcaSMauro Carvalho Chehab necessarily indicate if the signal is 'high' or 'low' because 128 13254f38fcaSMauro Carvalho Chehab may not be the mean value of the signal. Drivers shall not convert 13354f38fcaSMauro Carvalho Chehab the sample format by software. 13454f38fcaSMauro Carvalho Chehab * - __u32 13554f38fcaSMauro Carvalho Chehab - ``start``\ [#f2]_ 13654f38fcaSMauro Carvalho Chehab - This is the scanning system line number associated with the first 13754f38fcaSMauro Carvalho Chehab line of the VBI image, of the first and the second field 13854f38fcaSMauro Carvalho Chehab respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid 13954f38fcaSMauro Carvalho Chehab values. The ``V4L2_VBI_ITU_525_F1_START``, 14054f38fcaSMauro Carvalho Chehab ``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and 14154f38fcaSMauro Carvalho Chehab ``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers 14254f38fcaSMauro Carvalho Chehab for each field for each 525 or 625 line format as a convenience. 14354f38fcaSMauro Carvalho Chehab Don't forget that ITU line numbering starts at 1, not 0. VBI input 14454f38fcaSMauro Carvalho Chehab drivers can return start values 0 if the hardware cannot reliable 14554f38fcaSMauro Carvalho Chehab identify scanning lines, VBI acquisition may not require this 14654f38fcaSMauro Carvalho Chehab information. 14754f38fcaSMauro Carvalho Chehab * - __u32 14854f38fcaSMauro Carvalho Chehab - ``count``\ [#f2]_ 14954f38fcaSMauro Carvalho Chehab - The number of lines in the first and second field image, 15054f38fcaSMauro Carvalho Chehab respectively. 15154f38fcaSMauro Carvalho Chehab * - :cspan:`2` 15254f38fcaSMauro Carvalho Chehab 15354f38fcaSMauro Carvalho Chehab Drivers should be as flexibility as possible. For example, it may 15454f38fcaSMauro Carvalho Chehab be possible to extend or move the VBI capture window down to the 15554f38fcaSMauro Carvalho Chehab picture area, implementing a 'full field mode' to capture data 15654f38fcaSMauro Carvalho Chehab service transmissions embedded in the picture. 15754f38fcaSMauro Carvalho Chehab 15854f38fcaSMauro Carvalho Chehab An application can set the first or second ``count`` value to zero 15954f38fcaSMauro Carvalho Chehab if no data is required from the respective field; ``count``\ [1] 16054f38fcaSMauro Carvalho Chehab if the scanning system is progressive, i. e. not interlaced. The 16154f38fcaSMauro Carvalho Chehab corresponding start value shall be ignored by the application and 16254f38fcaSMauro Carvalho Chehab driver. Anyway, drivers may not support single field capturing and 16354f38fcaSMauro Carvalho Chehab return both count values non-zero. 16454f38fcaSMauro Carvalho Chehab 16554f38fcaSMauro Carvalho Chehab Both ``count`` values set to zero, or line numbers are outside the 16654f38fcaSMauro Carvalho Chehab bounds depicted\ [#f4]_, or a field image covering lines of two 16754f38fcaSMauro Carvalho Chehab fields, are invalid and shall not be returned by the driver. 16854f38fcaSMauro Carvalho Chehab 16954f38fcaSMauro Carvalho Chehab To initialize the ``start`` and ``count`` fields, applications 17054f38fcaSMauro Carvalho Chehab must first determine the current video standard selection. The 17154f38fcaSMauro Carvalho Chehab :ref:`v4l2_std_id <v4l2-std-id>` or the ``framelines`` field 17254f38fcaSMauro Carvalho Chehab of struct :c:type:`v4l2_standard` can be evaluated 17354f38fcaSMauro Carvalho Chehab for this purpose. 17454f38fcaSMauro Carvalho Chehab * - __u32 17554f38fcaSMauro Carvalho Chehab - ``flags`` 17654f38fcaSMauro Carvalho Chehab - See :ref:`vbifmt-flags` below. Currently only drivers set flags, 17754f38fcaSMauro Carvalho Chehab applications must set this field to zero. 17854f38fcaSMauro Carvalho Chehab * - __u32 17954f38fcaSMauro Carvalho Chehab - ``reserved``\ [#f2]_ 18054f38fcaSMauro Carvalho Chehab - This array is reserved for future extensions. Drivers and 18154f38fcaSMauro Carvalho Chehab applications must set it to zero. 18254f38fcaSMauro Carvalho Chehab 183fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{1.5cm}|p{11.4cm}| 18454f38fcaSMauro Carvalho Chehab 18554f38fcaSMauro Carvalho Chehab.. _vbifmt-flags: 18654f38fcaSMauro Carvalho Chehab 18754f38fcaSMauro Carvalho Chehab.. flat-table:: Raw VBI Format Flags 18854f38fcaSMauro Carvalho Chehab :header-rows: 0 18954f38fcaSMauro Carvalho Chehab :stub-columns: 0 19054f38fcaSMauro Carvalho Chehab :widths: 3 1 4 19154f38fcaSMauro Carvalho Chehab 19254f38fcaSMauro Carvalho Chehab * - ``V4L2_VBI_UNSYNC`` 19354f38fcaSMauro Carvalho Chehab - 0x0001 19454f38fcaSMauro Carvalho Chehab - This flag indicates hardware which does not properly distinguish 19554f38fcaSMauro Carvalho Chehab between fields. Normally the VBI image stores the first field 19654f38fcaSMauro Carvalho Chehab (lower scanning line numbers) first in memory. This may be a top 19754f38fcaSMauro Carvalho Chehab or bottom field depending on the video standard. When this flag is 19854f38fcaSMauro Carvalho Chehab set the first or second field may be stored first, however the 19954f38fcaSMauro Carvalho Chehab fields are still in correct temporal order with the older field 20054f38fcaSMauro Carvalho Chehab first in memory. [#f3]_ 20154f38fcaSMauro Carvalho Chehab * - ``V4L2_VBI_INTERLACED`` 20254f38fcaSMauro Carvalho Chehab - 0x0002 20354f38fcaSMauro Carvalho Chehab - By default the two field images will be passed sequentially; all 20454f38fcaSMauro Carvalho Chehab lines of the first field followed by all lines of the second field 20554f38fcaSMauro Carvalho Chehab (compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and 20654f38fcaSMauro Carvalho Chehab ``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in 20754f38fcaSMauro Carvalho Chehab memory depends on the video standard). When this flag is set, the 20854f38fcaSMauro Carvalho Chehab two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The 20954f38fcaSMauro Carvalho Chehab first line of the first field followed by the first line of the 21054f38fcaSMauro Carvalho Chehab second field, then the two second lines, and so on. Such a layout 21154f38fcaSMauro Carvalho Chehab may be necessary when the hardware has been programmed to capture 21254f38fcaSMauro Carvalho Chehab or output interlaced video images and is unable to separate the 21354f38fcaSMauro Carvalho Chehab fields for VBI capturing at the same time. For simplicity setting 21454f38fcaSMauro Carvalho Chehab this flag implies that both ``count`` values are equal and 21554f38fcaSMauro Carvalho Chehab non-zero. 21654f38fcaSMauro Carvalho Chehab 21754f38fcaSMauro Carvalho Chehab 21854f38fcaSMauro Carvalho Chehab.. _vbi-hsync: 21954f38fcaSMauro Carvalho Chehab 22054f38fcaSMauro Carvalho Chehab.. kernel-figure:: vbi_hsync.svg 22154f38fcaSMauro Carvalho Chehab :alt: vbi_hsync.svg 22254f38fcaSMauro Carvalho Chehab :align: center 22354f38fcaSMauro Carvalho Chehab 22454f38fcaSMauro Carvalho Chehab **Figure 4.1. Line synchronization** 22554f38fcaSMauro Carvalho Chehab 22654f38fcaSMauro Carvalho Chehab.. _vbi-525: 22754f38fcaSMauro Carvalho Chehab 22854f38fcaSMauro Carvalho Chehab.. kernel-figure:: vbi_525.svg 22954f38fcaSMauro Carvalho Chehab :alt: vbi_525.svg 23054f38fcaSMauro Carvalho Chehab :align: center 23154f38fcaSMauro Carvalho Chehab 23254f38fcaSMauro Carvalho Chehab **Figure 4.2. ITU-R 525 line numbering (M/NTSC and M/PAL)** 23354f38fcaSMauro Carvalho Chehab 23454f38fcaSMauro Carvalho Chehab.. _vbi-625: 23554f38fcaSMauro Carvalho Chehab 23654f38fcaSMauro Carvalho Chehab.. kernel-figure:: vbi_625.svg 23754f38fcaSMauro Carvalho Chehab :alt: vbi_625.svg 23854f38fcaSMauro Carvalho Chehab :align: center 23954f38fcaSMauro Carvalho Chehab 24054f38fcaSMauro Carvalho Chehab **Figure 4.3. ITU-R 625 line numbering** 24154f38fcaSMauro Carvalho Chehab 24254f38fcaSMauro Carvalho ChehabRemember the VBI image format depends on the selected video standard, 24354f38fcaSMauro Carvalho Chehabtherefore the application must choose a new standard or query the 24454f38fcaSMauro Carvalho Chehabcurrent standard first. Attempts to read or write data ahead of format 24554f38fcaSMauro Carvalho Chehabnegotiation, or after switching the video standard which may invalidate 24654f38fcaSMauro Carvalho Chehabthe negotiated VBI parameters, should be refused by the driver. A format 24754f38fcaSMauro Carvalho Chehabchange during active I/O is not permitted. 24854f38fcaSMauro Carvalho Chehab 24954f38fcaSMauro Carvalho ChehabReading and writing VBI images 25054f38fcaSMauro Carvalho Chehab============================== 25154f38fcaSMauro Carvalho Chehab 25254f38fcaSMauro Carvalho ChehabTo assure synchronization with the field number and easier 25354f38fcaSMauro Carvalho Chehabimplementation, the smallest unit of data passed at a time is one frame, 25454f38fcaSMauro Carvalho Chehabconsisting of two fields of VBI images immediately following in memory. 25554f38fcaSMauro Carvalho Chehab 25654f38fcaSMauro Carvalho ChehabThe total size of a frame computes as follows: 25754f38fcaSMauro Carvalho Chehab 25854f38fcaSMauro Carvalho Chehab.. code-block:: c 25954f38fcaSMauro Carvalho Chehab 26054f38fcaSMauro Carvalho Chehab (count[0] + count[1]) * samples_per_line * sample size in bytes 26154f38fcaSMauro Carvalho Chehab 26254f38fcaSMauro Carvalho ChehabThe sample size is most likely always one byte, applications must check 26354f38fcaSMauro Carvalho Chehabthe ``sample_format`` field though, to function properly with other 26454f38fcaSMauro Carvalho Chehabdrivers. 26554f38fcaSMauro Carvalho Chehab 26654f38fcaSMauro Carvalho ChehabA VBI device may support :ref:`read/write <rw>` and/or streaming 26754f38fcaSMauro Carvalho Chehab(:ref:`memory mapping <mmap>` or :ref:`user pointer <userp>`) I/O. 26854f38fcaSMauro Carvalho ChehabThe latter bears the possibility of synchronizing video and VBI data by 26954f38fcaSMauro Carvalho Chehabusing buffer timestamps. 27054f38fcaSMauro Carvalho Chehab 27154f38fcaSMauro Carvalho ChehabRemember the :ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` ioctl and the 272407e84cdSMauro Carvalho Chehabfirst :c:func:`read()`, :c:func:`write()` and 273407e84cdSMauro Carvalho Chehab:c:func:`select()` call can be resource allocation 27454f38fcaSMauro Carvalho Chehabpoints returning an ``EBUSY`` error code if the required hardware resources 27554f38fcaSMauro Carvalho Chehabare temporarily unavailable, for example the device is already in use by 27654f38fcaSMauro Carvalho Chehabanother process. 27754f38fcaSMauro Carvalho Chehab 27854f38fcaSMauro Carvalho Chehab.. [#f1] 27954f38fcaSMauro Carvalho Chehab ASK: Amplitude-Shift Keying. A high signal level represents a '1' 28054f38fcaSMauro Carvalho Chehab bit, a low level a '0' bit. 28154f38fcaSMauro Carvalho Chehab 28254f38fcaSMauro Carvalho Chehab.. [#f2] 28354f38fcaSMauro Carvalho Chehab A few devices may be unable to sample VBI data at all but can extend 28454f38fcaSMauro Carvalho Chehab the video capture window to the VBI region. 28554f38fcaSMauro Carvalho Chehab 28654f38fcaSMauro Carvalho Chehab.. [#f3] 28754f38fcaSMauro Carvalho Chehab Most VBI services transmit on both fields, but some have different 28854f38fcaSMauro Carvalho Chehab semantics depending on the field number. These cannot be reliable 28954f38fcaSMauro Carvalho Chehab decoded or encoded when ``V4L2_VBI_UNSYNC`` is set. 29054f38fcaSMauro Carvalho Chehab 29154f38fcaSMauro Carvalho Chehab.. [#f4] 29254f38fcaSMauro Carvalho Chehab The valid values ar shown at :ref:`vbi-525` and :ref:`vbi-625`. 293