Project

General

Profile

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/