LinuxTV dvb-apps: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
No edit summary
(Add note to add man pages)
 
(15 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The LinuxTV dvb-apps package contains some Linux DVB API applications and a set of utilities that both the developer and end user alike will find quite useful. Specifically, the utilities are geared towards the initial setup, testing, and operation of a DVB device, whether it be of the [[budget|software decoding (a.k.a. 'budget')]] or [[Full-featured Card|hardware decoding (a.k.a. 'premium' or 'full-featured')]] class.
The LinuxTV dvb-apps package contains some Linux DVB API applications and a set of utilities that both the developer and end user alike will find quite useful. Specifically, the utilities are geared towards the initial setup, testing, and operation of a DVB device, whether it be of the [[budget|software decoding (a.k.a. 'budget')]] or [[Full-featured Card|hardware decoding (a.k.a. 'premium' or 'full-featured')]] class.

{{Note|DEVELOPER / MAINTAINER WANTED! Dvb-apps is '''unmaintained''', with the exception of DVB-T scan files which are regularly updated. It is an important set of utilities, and is available in most distros, but releases are not made (at least not since 2006) and there is no roadmap for future development. Hell there
aren't even any upstream version numbers and the distros don't agree on what to call the package or the constituent apps. Unsatisfied demand for new features has led to [[szap-s2]] and [[scan-s2]] for example, but it would be best to keep fragmentation under control. If you think you can do better (honestly who can't?) then please jump in and help !! Contact ''linux-media@vger.kernel.org''. }}


==Obtaining the dvb-apps package==
==Obtaining the dvb-apps package==
Line 9: Line 6:
The download and build procedure is very simple:
The download and build procedure is very simple:


hg clone http://linuxtv.org/hg/dvb-apps
hg clone http://linuxtv.org/hg/dvb-apps # download the tarball link below and extract if you don't have mercurial.
cd dvb-apps
cd dvb-apps
make
make
sudo make install
sudo make install


There are some very old tarballs, compressed in [http://www.linuxtv.org/download/dvb/linuxtv-dvb-apps-1.1.1.tar.bz2 tar.bz2] and [http://www.linuxtv.org/download/dvb/linuxtv-dvb-apps-1.1.1.tar.gz tar.gz] formats.
There are some very old tarballs, compressed in [http://www.linuxtv.org/download/dvb/linuxtv-dvb-apps-1.1.1.tar.bz2 tar.bz2] and [http://www.linuxtv.org/download/dvb/linuxtv-dvb-apps-1.1.1.tar.gz tar.gz] formats. The latest [http://linuxtv.org/hg/dvb-apps/archive/tip.tar.gz tarball] of dvb-apps is provided by Mercurial (Hg).


Alternatively, if the package is maintained in a repository available for your "distro", then you can obtain a pre-built version with your package manager. Note, however, that not all Linux distributions ('distro's') refer to the package by the proper "dvb-apps" name. The Debian package name for it, for example, is "dvb-utils". In other cases, you may also sometimes see it called "dvbtools". This is an unfortunate situation, as it introduces an element of confusion; additional to the fact that [[DVB tools]] is itself the name of another project (not associated with LinuxTV) that features its own set of DVB related utilities. In any regard, the following provides a few examples with common distros
Alternatively, if the package is maintained in a repository available for your "distro", then you can obtain a pre-built version with your package manager. Note, however, that not all Linux distributions ('distros') refer to the package by the proper "dvb-apps" name. The Debian package name for it, for example, is "dvb-utils". In other cases, you may also sometimes see it called "dvbtools". This is an '''insane''' situation, which creates much confusion; additional to the fact that [[DVB tools]] is itself the name of another project (not associated with LinuxTV) that features its own set of DVB related utilities. In any regard, the following provides a few examples with common distros


:* To install it on a debian etch system:
:* To install it on a debian etch system:
::: <code># apt-get install dvb-utils</code>
::: <code># apt-get install dvb-utils</code>


:* To install it on a debian lenny system:
:* To install it on a debian lenny or ubuntu system:
::: <code># apt-get install dvb-apps</code>
::: <code># apt-get install dvb-apps</code>


Line 30: Line 27:
::: <code> # yum install dvb-apps</code>
::: <code> # yum install dvb-apps</code>


:* Using Fedora, assume root privileges then install the dvb utilities with:
:* Using Suse, assume root privileges then install the dvb utilities with:
::: <code> # zypper install dvb</code>
::: <code> # zypper install dvb</code>


:* Using OpenEmbedded, assume root privileges then install the dvb utilities with:
:* Using OpenEmbedded, assume root privileges then install the dvb utilities with:
::: <code> # bitbake dvb-apps</code>
::: <code> # bitbake dvb-apps</code>

:* With Arch Linux:
::: <code># pacman -S linuxtv-dvb-apps</code>


==List of utilities within 'dvb-apps'==
==List of utilities within 'dvb-apps'==
The README file in the top level of the package gives a brief description of the package's contents, but in general, some of the items of interest that you will find are in the:
The README file in the top level of the package gives a brief description of the package's contents, but in general, some of the items of interest that you will find are:

===Libraries===
* libdvbapi - Interface library to digital TV devices.
* libdvbcfg - Library to parse/create digital TV channel configuration files.
* libdvbsec - Library for Satellite Equipment Control operations.
* libucsi - Fast MPEG2 Transport Stream SI table parsing library.
** Also includes routines for parsing ATSC EIT and ETT tables, which are the EPG (electronic program guide) structures for ATSC.
* libdvben50221- Complete implementation of a CENELEC (European Committee for Electrotechnical Standardization) EN 50221 CAM stack.
* libdvbmisc - Miscellaneous utilities used by the other libraries.
* libesg - ??? Electronic Service Guide parser?

===/util directory===

*Main User Applications:
**[[Scan|scan]]: the original [[Frequency scan|frequency scanning]] tool used to generate channel lists
**[[dvbscan]]: another [[Frequency scan|frequency scanning]] tool used to generate channel lists .... some distro package managers have rebranded this as "scandvb" ... also note that "atscscan", if included, is simply a copy of dvbscan. The DVB or ATSC protocol is determined by a tuning file feed to these programs. Tuning files are kept in the scan/atsc, scan/dvb-[csth] directories. This program discovers carriers on candidate frequencies and also determines ''sub-channels''. ''sub-channels'' may be the main program at a lower data rate or completely new content. With the output produced, a short name can be used to identify the frequency and the streams needed to get a ''channel''.
**[[Zap|czap, szap, tzap]]: tuning utilities for DVB-C, DVB-S, DVB-T. These change the channel/sub-channel as identified by the file output by ''scan'' above.
**[[Zap|azap]]: tuning utility for ATSC.
**util/gnutv - Tune, watch and stream your TV. I.e. a DVB UI.

*General Utilities:
**util/dvbdate - Read date time information from the currently tuned multiplex.
**util/dvbnet - Control digital data network interfaces. DVB network interface manager (IP over DVB).
**util/dvbtraffic - Monitor traffic on a digital device. PID analysis of currently tuned multiplex.
**util/femon - Frontend (fe) monitor. Monitor the tuning status on a digital TV device.
**util/zap - *Just* tunes a digital device - really intended for developers. Note that this is a seperate app then those ''*zap'' utilities listed above.
**util/atsc_epg - Recent versions of dvb-apps include a program to print out the next three hours worth of programs on a given frequency (for ATSC only).

*Hardware Specific Utilities:
**util/av7110_loadkeys - A utiltity to load IR remote keymaps into an av7110 based card using the /proc/av7110_ir interface
**util/dib3000-watch - Monitor DIB3000 demodulators
**util/dst-utils/dst-test - Utilities for DST based cards.
**util/ttusb_dec_reset - Reset a TechnoTrends TTUSB DEC device.


===/test directory===
===/test directory===
Line 54: Line 87:
*test_stillimage: Display single iframes as stillimages
*test_stillimage: Display single iframes as stillimages
*test_dvr: Record a partial transport stream of selected PIDs to a file or a full stream if supported by the hardware
*test_dvr: Record a partial transport stream of selected PIDs to a file or a full stream if supported by the hardware

===/util directory===
*loadkeys: a utility to setup IR control keymaps using /proc/av7110_ir interface
*dvbdate: read date time information from the currently tuned multiplex
*dvbnet: DVB network interface manager (IP over DVB)
*dvbtraffic: PID analysis of currently tuned multiplex
*[[Scan|scan]]: the original [[Frequency scan|frequency scanning]] tool used to generate channel lists
*[[dvbscan]]: another [[Frequency scan|frequency scanning]] tool used to generate channel lists .... some distro package managers have rebranded this as "scandvb" ... also note that "atscscan", if included, is simply a copy of dvbscan
*[[Zap|azap, czap, szap, tzap]]: tuning utilities for DVB.
* femon: monitor frontend status
* gnutv: simple ;-) DVB UI
* dib3000-watch:
* zap: note that this is a seperate app then those ''*zap'' utilities listed above
* dst_test:


==TODO==
==TODO==

The lack of maintenance means that there is now a backlog of improvements to be made by whoever is interested.


* Start numbering the versions. Yes, with a repo every commit is a kind of version, but in the real world of distros and end users you need to define version numbers as easy reference points.
* Start numbering the versions. Yes, with a repo every commit is a kind of version, but in the real world of distros and end users you need to define version numbers as easy reference points.
* Tag versioned releases and make src tarballs for the distros.
* Tag versioned releases and make src tarballs for the distros.
* Add ChangeLog and TODO files (and keep them up to date of course).
* Add ChangeLog and TODO files (and keep them up to date of course).
* Review the names of the apps and change where necessary. Perhaps the less ambiguous ''dvbscan'' is better than just ''scan'' in a general-purpose system where all sorts of things can be scanned (with scanners, fax machines, barcode readers, etc.).
* Review the names of the apps and change where necessary. Perhaps ''scan'' is too ambiguous a name in a general-purpose system where all sorts of things can be scanned (with scanners, fax machines, barcode readers, etc.).
* Implement API version 5 scanning and zapping for DVB-S2 channels. See [[S2API]], [[scan-s2]] and [[szap-s2]]. There's a work undergoing to implement support to DVB API v5 for ISDB-T that also adds DVB API v5 to other transports at [http://linuxtv.org/hg/~mchehab/dvb-apps-isdbt2/].

* Implement API version 5 scanning and zapping for DVB-S2 channels. See [[S2API]].
* Improve the channels.conf file format so that one file can represent all the channels. Need to
* Improve the channels.conf file format so that one file can represent all the channels. Need to
**(a) identify the source (S13.0E, S19.2E, Terrestrial, etc)
**(a) identify the source (S13.0E, S19.2E, Terrestrial, etc)
Line 85: Line 101:
* Make sure there is one true format -- no "zap" versus "VDR" format confusion.
* Make sure there is one true format -- no "zap" versus "VDR" format confusion.
* Merge all the *zap programs. You unified the channels.conf file so this is next.
* Merge all the *zap programs. You unified the channels.conf file so this is next.
* Add man pages from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=312570


==Links==
==Links==

Latest revision as of 00:43, 16 February 2013

The LinuxTV dvb-apps package contains some Linux DVB API applications and a set of utilities that both the developer and end user alike will find quite useful. Specifically, the utilities are geared towards the initial setup, testing, and operation of a DVB device, whether it be of the software decoding (a.k.a. 'budget') or hardware decoding (a.k.a. 'premium' or 'full-featured') class.

Obtaining the dvb-apps package

The dvb-apps package source code is available from the LinuxTV website and can be retrieved via Mercurial (Hg).

The download and build procedure is very simple:

hg clone http://linuxtv.org/hg/dvb-apps   # download the tarball link below and extract if you don't have mercurial.
cd dvb-apps
make
sudo make install

There are some very old tarballs, compressed in tar.bz2 and tar.gz formats. The latest tarball of dvb-apps is provided by Mercurial (Hg).

Alternatively, if the package is maintained in a repository available for your "distro", then you can obtain a pre-built version with your package manager. Note, however, that not all Linux distributions ('distros') refer to the package by the proper "dvb-apps" name. The Debian package name for it, for example, is "dvb-utils". In other cases, you may also sometimes see it called "dvbtools". This is an insane situation, which creates much confusion; additional to the fact that DVB tools is itself the name of another project (not associated with LinuxTV) that features its own set of DVB related utilities. In any regard, the following provides a few examples with common distros

  • To install it on a debian etch system:
# apt-get install dvb-utils
  • To install it on a debian lenny or ubuntu system:
# apt-get install dvb-apps
  • With gentoo:
# emerge linuxtv-dvb-apps
  • Using Fedora, assume root privileges then install the dvb utilities with:
# yum install dvb-apps
  • Using Suse, assume root privileges then install the dvb utilities with:
# zypper install dvb
  • Using OpenEmbedded, assume root privileges then install the dvb utilities with:
# bitbake dvb-apps
  • With Arch Linux:
# pacman -S linuxtv-dvb-apps

List of utilities within 'dvb-apps'

The README file in the top level of the package gives a brief description of the package's contents, but in general, some of the items of interest that you will find are:

Libraries

  • libdvbapi - Interface library to digital TV devices.
  • libdvbcfg - Library to parse/create digital TV channel configuration files.
  • libdvbsec - Library for Satellite Equipment Control operations.
  • libucsi - Fast MPEG2 Transport Stream SI table parsing library.
    • Also includes routines for parsing ATSC EIT and ETT tables, which are the EPG (electronic program guide) structures for ATSC.
  • libdvben50221- Complete implementation of a CENELEC (European Committee for Electrotechnical Standardization) EN 50221 CAM stack.
  • libdvbmisc - Miscellaneous utilities used by the other libraries.
  • libesg - ??? Electronic Service Guide parser?

/util directory

  • Main User Applications:
    • scan: the original frequency scanning tool used to generate channel lists
    • dvbscan: another frequency scanning tool used to generate channel lists .... some distro package managers have rebranded this as "scandvb" ... also note that "atscscan", if included, is simply a copy of dvbscan. The DVB or ATSC protocol is determined by a tuning file feed to these programs. Tuning files are kept in the scan/atsc, scan/dvb-[csth] directories. This program discovers carriers on candidate frequencies and also determines sub-channels. sub-channels may be the main program at a lower data rate or completely new content. With the output produced, a short name can be used to identify the frequency and the streams needed to get a channel.
    • czap, szap, tzap: tuning utilities for DVB-C, DVB-S, DVB-T. These change the channel/sub-channel as identified by the file output by scan above.
    • azap: tuning utility for ATSC.
    • util/gnutv - Tune, watch and stream your TV. I.e. a DVB UI.
  • General Utilities:
    • util/dvbdate - Read date time information from the currently tuned multiplex.
    • util/dvbnet - Control digital data network interfaces. DVB network interface manager (IP over DVB).
    • util/dvbtraffic - Monitor traffic on a digital device. PID analysis of currently tuned multiplex.
    • util/femon - Frontend (fe) monitor. Monitor the tuning status on a digital TV device.
    • util/zap - *Just* tunes a digital device - really intended for developers. Note that this is a seperate app then those *zap utilities listed above.
    • util/atsc_epg - Recent versions of dvb-apps include a program to print out the next three hours worth of programs on a given frequency (for ATSC only).
  • Hardware Specific Utilities:
    • util/av7110_loadkeys - A utiltity to load IR remote keymaps into an av7110 based card using the /proc/av7110_ir interface
    • util/dib3000-watch - Monitor DIB3000 demodulators
    • util/dst-utils/dst-test - Utilities for DST based cards.
    • util/ttusb_dec_reset - Reset a TechnoTrends TTUSB DEC device.

/test directory

  • diseqc: Sends various diseqc sequences on a SAT frontend.
  • set22k: Legacy tone switching for SAT frontends.
  • setvoltage: Legacy voltage switching for SAT frontends.
  • setpid: Set video and audio PIDs in the demux (only for hardware MPEG decoder)
  • video: tiny video watching application
  • test_sections: Hex dump of section data from stream.
  • test_sec_ne: Like test_sections, but also test Not-Equal filter mode.
  • test_pes: Hex dump of PES data from stream.
  • test_tt: Demonstrate teletext decoding from PES data.
  • test_av: Test audio and video MPEG decoder API.
  • test_vevent: Test VIDEO_GET_EVENT and poll() for video events
  • test_stc: Test DMX_GET_STC.
  • test_stillimage: Display single iframes as stillimages
  • test_dvr: Record a partial transport stream of selected PIDs to a file or a full stream if supported by the hardware

TODO

  • Start numbering the versions. Yes, with a repo every commit is a kind of version, but in the real world of distros and end users you need to define version numbers as easy reference points.
  • Tag versioned releases and make src tarballs for the distros.
  • Add ChangeLog and TODO files (and keep them up to date of course).
  • Review the names of the apps and change where necessary. Perhaps scan is too ambiguous a name in a general-purpose system where all sorts of things can be scanned (with scanners, fax machines, barcode readers, etc.).
  • Implement API version 5 scanning and zapping for DVB-S2 channels. See S2API, scan-s2 and szap-s2. There's a work undergoing to implement support to DVB API v5 for ISDB-T that also adds DVB API v5 to other transports at [1].
  • Improve the channels.conf file format so that one file can represent all the channels. Need to
    • (a) identify the source (S13.0E, S19.2E, Terrestrial, etc)
    • (b) identify the delivery system (DVB-S, DVB-S2, DVB-T etc)
    • (c) be able to represent all the parameters required for all the delivery systems in a unified way. For example DVB-S2 has some new paramters (e.g. rolloff). The "VDR" format was expanded for this, but in a messy way.
  • Make sure there is one true format -- no "zap" versus "VDR" format confusion.
  • Merge all the *zap programs. You unified the channels.conf file so this is next.
  • Add man pages from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=312570

Links