Skip to content

zapping-vbi/zvbi

Repository files navigation

libzvbi - VBI capture and decoding library

The zvbi/libzvbi repository was moved here from Sourceforge in September 2022 for current development. The Zapping TV viewer (and other projects from the Sourceforge) have also been archived in github.

Introduction

The vertical blanking interval (VBI) is an interval in an analog television signal that temporarily suspends transmission of the signal for the electron gun to move back up to the first line of the television screen to trace the next screen field. The vertical blanking interval can be used to carry data, since anything sent during the VBI would naturally not be displayed; various test signals, closed captioning, and other digital data can be sent during this time period.

The ZVBI library provides functions to read from Linux V4L, V4L2 and FreeBSD BKTR raw VBI capture devices, from Linux DVB devices and from a VBI proxy to share V4L and V4L2 VBI devices between multiple applications.

It can demodulate raw to sliced VBI data in software, with support for a wide range of formats, has functions to decode several popular services including Teletext and Closed Caption, a Teletext cache with search function, various text export and rendering functions.

Basically ZVBI offers all functions needed by VBI applications except for the user interface. The library was written for the Zapping TV viewer.

For details on using the library see the documentation in doc/html (built only if you have Doxygen installed) and the files in the test and examples directories.

Download

See Releases and Tags for the latest version of zvbi and libzvbi. The first release on this repo is 0.2.36. Previous tagged releases can be found here.

Ileana Dumitrescu <[email protected]> maintains the Debian package.

Oliver Lehmann <[email protected]> maintains a FreeBSD port.

For RPMs please see the repository of your distribution.

Building and Installation

Obtain a local copy of this git repository by cloning:

git clone https://github.com/zapping-vbi/zvbi.git

This project uses GNU autotools. After cloning the repo, this command will create missing configuration files:

cd zvbi && ./autogen.sh

Next, to generate the Makefiles, run:

./configure

Optionally, running CONFIGURE=1 ./autogen.sh will run the configure script immediately after the autogen script with a single command.

After configuring, to compile and build, run:

make

If you want to run some tests, run:

make check

Then to install, run:

make install

The zvbi/libzvbi package produces the following binaries:

  • zvbid - proxy for VBI devices that forwards VBI data streams to one or more connected clients and manages channel change requests
  • zvbi-atc-cc - command-line utility that captures ATSC TV transmissions using a Linux DVB device and decodes the enclosed closed caption data
  • zvbi-chains - command-line wrapper that executes the VBI application while overloading several C library calls so that the application can be forced to access VBI devices via the VBI proxy instead of device files directly
  • zvbi-ntsc-cc - command-line utility for decoding and capturing closed captioning for NTSC and webtv
  • libzvbi.[a, so, la] - VBI decoding library

If Doxygen is installed, make will also create library documentation.

For additional instructions see the INSTALL file.

The library has been tested on Linux and FreeBSD.

Bindings

Tom Zoerner wrote a Perl interface to libzvbi. The ZVBI Perl module covers all exported libzvbi functions. Most of the functions and parameters are exposed nearly identical, or with minor adaptions for the Perl idiom.

Find out more at https://search.cpan.org/~TOMZO/Video-ZVBI

Contributing

Contributions are always welcome. Please feel free to write issues and patches, as well as create pull requests. When submitting pull requests, please create your own local branch first to merge into main.

zvbi relevant bugs will be moved from Sourceforge to github issues on this repo.

zvbi patches from Sourceforge are being applied to the main branch.

zvbi feature requests will also be moved from Sourceforge to github issues on this repo.

You can send an email to the maintainer directly with the tag [zvbi] in the subject line.

You can browse the Sourceforge email list archives here.

The current author and maintainer of this library is:

Ileana Dumitrescu <[email protected]>

The previous author and maintainer of this library was:

Michael H. Schimek <[email protected]>

Encrypted e-mail is welcome. You can find the authors' PGP/GPG keys in the AUTHORS file:

  gpg --import <AUTHORS

Copyright and Licensing

Copyright (C) 2000-2008 Michael H. Schimek

Copyright (C) 2000-2001 Iñaki García Etxebarria

Copyright (C) 2003-2004, 2007 Tom Zoerner

Copyright (C) 2022-2023 Ileana Dumitrescu

Originally based on AleVT 1.5.1 by Edgar Toernig

The zvbi project is licensed under the GNU General Public License version 2.0 (GPL-2+). Other software licenses used throughout zvbi include:

See COPYING for full text of all software licenses.