Project

General

Profile

Tvheadend dvb config revamp » History » Version 11

Andreas Smas, 2012-01-23 22:22

1 1 Andreas Smas
There are a few problems with how the TV adapter tab is implemented today
2
3 10 Andreas Smas
* It cannot handle a large amount of services. With DVB-S you can easily hit >1k services. Ticket #100
4
* It's hard (but possible via sorting) to see which services that is transmitted on which mux.
5
* The DVB satconf solution is a bit cumbersome
6
* Updates to the quality meter indicator refreshed the grid in a way that is bad UX. Ticket #108
7
* If a DVB adapter is renamed by the kernel after boot (/dev/dvb/adapterX -> /dev/dvb/adapterY) the user must do a lot of work
8
* Inter-adapter dependencies are not handled (adapters with both analog and digital receivers, etc)
9 1 Andreas Smas
10
Therefore the plan is to totally redesign how Tvheadend interacts with hardware.
11
This rewrite will not be configuration compatible and will therefore bump Tvheadend version to 3.x
12 4 Andreas Smas
13
14 10 Andreas Smas
h1. Device tree
15
16
17 3 Andreas Smas
This tree will present the available devices to the user
18 2 Andreas Smas
19 10 Andreas Smas
<pre>
20 3 Andreas Smas
  + DVB Adapter #1
21
  | + DVB-C Frontend
22
  |
23
  + DVB Adapter #2
24
  | + DVB-T Frontend
25
  | + DVB-C Frontend
26
  |
27
  + DVB Adapter #3
28
  | + DVB-S Frontend
29
  | | + Switchport 1
30
  | | + Switchport 2
31 1 Andreas Smas
  | | + Switchport 3
32 3 Andreas Smas
  | | + Switchport 4
33 1 Andreas Smas
  | | + Switchport n
34
  | + DVB-T Frontend
35
  |
36
  + V4L Adapter #1
37
    + Tuner
38
    + Composite
39
    + S-Video
40 10 Andreas Smas
</pre>
41 1 Andreas Smas
42
Pressing on a node will present the user with information about the entry and a few configuration options as follows:
43
44 10 Andreas Smas
45 11 Andreas Smas
h3. DVB / ATSC Adapter
46 1 Andreas Smas
Various information about the hardware
47
48 10 Andreas Smas
h4. Config
49 1 Andreas Smas
50 10 Andreas Smas
* Enable/Disable adapter
51
52 1 Andreas Smas
53 10 Andreas Smas
54 11 Andreas Smas
h3. DVB-C / DVB-T / ATSC Frontends
55
56 1 Andreas Smas
TBD
57
58 10 Andreas Smas
h4. Config
59 1 Andreas Smas
60 10 Andreas Smas
* Network the frontend is attached to
61 1 Andreas Smas
* If this device may update network configuration
62 10 Andreas Smas
63
64
65 11 Andreas Smas
h3. DVB-S Frontends
66
67 3 Andreas Smas
TBD
68 10 Andreas Smas
69
h4. Config
70
71
* Number of Diseqc switchports
72 1 Andreas Smas
 or 
73 10 Andreas Smas
* Network the frontend is attached to
74
* If this device may update network configuration
75
* LnB configuration
76 1 Andreas Smas
77 10 Andreas Smas
78 11 Andreas Smas
h3. Switchport
79
80 3 Andreas Smas
TBD
81 10 Andreas Smas
82 1 Andreas Smas
h4. Config
83 10 Andreas Smas
84
* Network the switchport is attached to
85
* If this device may update network configuration
86
* LnB configuration
87 3 Andreas Smas
 
88
89 10 Andreas Smas
90 11 Andreas Smas
h3. V4L adpater
91
92 1 Andreas Smas
Various information about the hardware
93 10 Andreas Smas
94
h4. Config
95
96
* Enable/Disable adapter
97 1 Andreas Smas
 
98
99 10 Andreas Smas
100 11 Andreas Smas
h3. V4L frontends
101
102 1 Andreas Smas
Various information about the hardware
103 4 Andreas Smas
104 10 Andreas Smas
h4. Config
105 4 Andreas Smas
106 10 Andreas Smas
* TV system type (PAL, NTSC, etc) (for tuners)
107
* Network the frontend is attached to
108 4 Andreas Smas
109 10 Andreas Smas
110
111
h1. Device mapper
112
113
114 4 Andreas Smas
Upon startup Tvheadend will try to map the available hardware to the adapters as good as it can. 
115
In Tvheadend 2.x it was required that the stored configuration about the adapter exactly matched the plugged in hardware.
116
117
Instead Tvheadend 3.x will try to map hardware to configured devices according to the following ruleset:
118
119 10 Andreas Smas
* device type AND device name AND bus-id AND device path 
120
* device type AND device name AND bus-id
121
* device type AND device name
122
* device type AND bus-id
123
* device type
124 1 Andreas Smas
125 8 Andreas Smas
||device path||Path in filesystem||/dev/dvb/...||
126 10 Andreas Smas
||bus-id||Hardware address||Bus 001 Device 004: ID 0ccd:0038 [[TerraTec]] Electronic GmbH Cinergy T2 DVB-T Receiver
127 8 Andreas Smas
||device-name||Name of device(vendor) as reported via DVB API||ST STV0297 DVB-C||
128
||device-type||Frontend type(s)||DVB-T, DVB-C, etc||
129 6 Andreas Smas
130
It will start will all devices and try rule 1 then all devices that could not be mapped and rule 2, and so on.
131
This will mitigate problems when USB controllers probe devices in different order, etc
132
Also you can swap your DVB hardware to a new one (different vendor) and still have tvheadend map it correctly.
133
134
If the mapper cannot find a hardware device using the first rule the adapter info/configuration will highlight this
135
and the user will be able to "nail" the configuration to the detected hardware. Ie. to acknowledge to Tvheadend
136
that: "Yes, this is the correct hardware. I've changed/moved it" or whatever
137
138
139 10 Andreas Smas
h1. Networks
140
141
142 6 Andreas Smas
In Tvheadend 2.x a DVB network (ie. a collection of DVB Muxes) are implicitly tied to a DVB adapter. 
143
There are a number of drawbacks with this
144 1 Andreas Smas
145 10 Andreas Smas
* Adding another adapter to the same network require all muxes to be rescanned or copied from an already present adapter
146
* Replacing an adapter will void all configuration so it needs to be reconfigured. 
147 1 Andreas Smas
148
Instead Tvheadend 3.x will keep the Network configuration separated from the adapter configuration. 
149
This obviously fixes the two caveats mentioned above. 
150
151 10 Andreas Smas
152
h1. LNB configuration
153
154 1 Andreas Smas
155
Tvheadend 2.x have a set of preconfigured LNBs to select from. Tvheadend 3.x will also have those but also make it possible to enter LNB parameters manuallt.