Tvheadend internals » History » Revision 10
Revision 9 (Andreas Smas, 2009-12-15 19:49) → Revision 10/11 (Christoffer Bergkvist, 2012-08-02 10:58)
h1. Tvheadend technical overview
This page is very much work-in-progress.
h1. Nomenclature
h3. Channel
A channel is what's typically perceived as a TV-channel by ordinary people. A channel will receive data from one or many Transports. If Tvheadend has multiple DVB adapters, connected to the same or different networks, where the same channel exists, multiple transports will map to the same channel.
see: channel.[ch]
h3. Service / Transport
A Service / Transport is a specific source for a channel.
The term service and transport is used interchangeably in Tvheadend. ie. It's the same thing. This is something that should be fixed in the future.
see: transport.[ch]
h3. Multiplex
A Multiplex is analogous to a DVB MPEG Transport Stream. For a given Adapter, only one Multiplex can be received (i.e tuned) at the same time. A DVB Multiplex carries a number of services.
However, all services/transports on that particular multiplex can be decoded and fed further into Tvheadend.
see: dvb/dvb_multiplex.[ch]
h3. Adapter
Represents a piece of hardware.
see: dvb/dvb_adapter.[ch]
h3. Subscription
This is what temporary binds a transport to a channel when someone wants to receive data from it.
All subscriptions are sorted according to weight. Subscriptions with higher weight will outrank lower weighted subscriptions.
If two subscriptions competes for the same resource (typically a DVB-adapter in order to tune a specific multiplex) the one with higher with will win.
Of course, a lower weighted subscription can "sneak" on a multiplex as long as the higher weighted subscription keeps it tuned.
see: subscriptions.[ch]
h1. Locking and concurrency
TBA
h1. Video recording
TBA
h1. Supported codecs
* MPEG2 Video
* MPEG2 Audio
* H.264
* AC/3
h1. [[ExtJS]] based web interface
Tvheadend currently uses [[ExtJs]] 2.2.1. The documentation is located "here":http://www.extjs.com/deploy/ext-2.2.1/docs/