Project

General

Profile

Tvheadend dvb config revamp » History » Version 10

Andreas Smas, 2010-08-17 21:52

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
h3. DVB / ATSC Adapter ===
46
 Info ====
47 1 Andreas Smas
Various information about the hardware
48
49 10 Andreas Smas
h4. Config
50 1 Andreas Smas
51 10 Andreas Smas
* Enable/Disable adapter
52
53
54
55
h3. DVB-C / DVB-T / ATSC Frontends ===
56
 Info ====
57 1 Andreas Smas
TBD
58
59 10 Andreas Smas
h4. Config
60 1 Andreas Smas
61 10 Andreas Smas
* Network the frontend is attached to
62
* If this device may update network configuration
63
64
65
66
h3. DVB-S Frontends ===
67
 Info ====
68 3 Andreas Smas
TBD
69 10 Andreas Smas
70
h4. Config
71
72
* Number of Diseqc switchports
73 1 Andreas Smas
 or 
74 10 Andreas Smas
* Network the frontend is attached to
75
* If this device may update network configuration
76
* LnB configuration
77 1 Andreas Smas
78 10 Andreas Smas
79
h3. Switchport ===
80
 Info ====
81 3 Andreas Smas
TBD
82 10 Andreas Smas
83
h4. Config
84
85
* Network the switchport is attached to
86
* If this device may update network configuration
87
* LnB configuration
88 3 Andreas Smas
 
89
90 10 Andreas Smas
91
h3. V4L adpater ===
92
 Info ====
93 1 Andreas Smas
Various information about the hardware
94 10 Andreas Smas
95
h4. Config
96
97
* Enable/Disable adapter
98 1 Andreas Smas
 
99
100 10 Andreas Smas
101
h3. V4L frontends ===
102
 Info ====
103 1 Andreas Smas
Various information about the hardware
104 4 Andreas Smas
105 10 Andreas Smas
h4. Config
106 4 Andreas Smas
107 10 Andreas Smas
* TV system type (PAL, NTSC, etc) (for tuners)
108
* Network the frontend is attached to
109 4 Andreas Smas
110 10 Andreas Smas
111
112
h1. Device mapper
113
114
115 4 Andreas Smas
Upon startup Tvheadend will try to map the available hardware to the adapters as good as it can. 
116
In Tvheadend 2.x it was required that the stored configuration about the adapter exactly matched the plugged in hardware.
117
118
Instead Tvheadend 3.x will try to map hardware to configured devices according to the following ruleset:
119
120 10 Andreas Smas
* device type AND device name AND bus-id AND device path 
121
* device type AND device name AND bus-id
122
* device type AND device name
123
* device type AND bus-id
124
* device type
125 1 Andreas Smas
126 8 Andreas Smas
||device path||Path in filesystem||/dev/dvb/...||
127 10 Andreas Smas
||bus-id||Hardware address||Bus 001 Device 004: ID 0ccd:0038 [[TerraTec]] Electronic GmbH Cinergy T2 DVB-T Receiver
128 8 Andreas Smas
||device-name||Name of device(vendor) as reported via DVB API||ST STV0297 DVB-C||
129
||device-type||Frontend type(s)||DVB-T, DVB-C, etc||
130 6 Andreas Smas
131
It will start will all devices and try rule 1 then all devices that could not be mapped and rule 2, and so on.
132
This will mitigate problems when USB controllers probe devices in different order, etc
133
Also you can swap your DVB hardware to a new one (different vendor) and still have tvheadend map it correctly.
134
135
If the mapper cannot find a hardware device using the first rule the adapter info/configuration will highlight this
136
and the user will be able to "nail" the configuration to the detected hardware. Ie. to acknowledge to Tvheadend
137
that: "Yes, this is the correct hardware. I've changed/moved it" or whatever
138
139
140 10 Andreas Smas
h1. Networks
141
142
143 6 Andreas Smas
In Tvheadend 2.x a DVB network (ie. a collection of DVB Muxes) are implicitly tied to a DVB adapter. 
144
There are a number of drawbacks with this
145 1 Andreas Smas
146 10 Andreas Smas
* Adding another adapter to the same network require all muxes to be rescanned or copied from an already present adapter
147
* Replacing an adapter will void all configuration so it needs to be reconfigured. 
148 1 Andreas Smas
149
Instead Tvheadend 3.x will keep the Network configuration separated from the adapter configuration. 
150
This obviously fixes the two caveats mentioned above. 
151
152 10 Andreas Smas
153
h1. LNB configuration
154
155 1 Andreas Smas
156
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.