summaryrefslogtreecommitdiffstats
path: root/doc/servicelinking.mux
blob: e210c7537bde023d526bf0d846bb1f253de3011b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
; This is an example configuration file that illustrates
; how to define service linking

; More information about the usage of the tools is available
; in the guide, which can be found on the
; www.opendigitalradio.org website.
;
general {
    dabmode 1
    nbframes 0

    syslog false
    tist false
    managementport 12720
}

remotecontrol {
    telnetport 12721
}

; Service linking sets
linking {
    ; Every child section declares one linkage sets according to
    ; TS 103 176 Clause 5.2.3 "Linkage sets". This information will
    ; be encoded in FIG 0/6
    set-fu {
        ; Linkage Set Number is a 12-bit number that identifies the linkage set
        ; in a country (requires coordination between multiplex operators in a country)
        ; (mandatory)
        lsn 0xabc

        ; Hard link means that all services carry the same programme, soft links means
        ; that the programmes are related in some way. (default true)
        hard true

        ; Whether this linkage set affects only one country or several. Linkage sets that
        ; include AMSS or DRM services need to have this set to true. (default false)
        international false

        ; Every linkage set has to contain a service from the current ensemble (mandatory)
        keyservice srv-fu

        ; List of services to be included (mandatory)
        list {
            ; Every service has a uid that can be used as a human-readable description

            ; The first example is a link to a DAB service on another ensemble.
            fu-on-my-friends-mux {
                ; Possible options: dab, fm, drm, amss (mandatory)
                type dab

                ; if type is dab, the id is a DAB service ID (mandatory)
                id 0x8daf

                ; Since this link set has international false, we do not need to specify
                ; the ECC. With internation true, the following would be needed
                ; (mandatory if internation true)
                ;ecc 0xec
            }

            ; The second example is a link to an FM transmission
            fu-on-fm {
                ; Possible options: dab, fm, drm, amss
                type fm

                ; if type is fm, the id is a PI-code
                id 0x1A2B

                ; Also here, ECC declaration is not required
            }
        }
    }

    ; And now an international true to test more options
    set-ri {
        lsn 0xdef
        hard soft
        international true
        keyservice srv-ri

        list {
            ri-on-drm {
                type drm
                id 0x1298
                ecc 0xec
            }

            ri-on-amss {
                type amss
                id 0x1A2B
                ecc 0xea
            }

            ri-on-fm {
                type fm
                id 0x4C5D
                ecc 0x4f
            }
        }
    }
}

; According to ETSI TR 101 496-2 Clause 3.6.10.
; The configuration structure reflects the FIG 0/21 of
; ETSI EN 300 401 Clause 8.1.8
frequency_information {
    fi_1 {
        oe false
        fi_dab_1 {
            range_modulation dab
            continuity true
            eid 0x4fff
            frequencies {
                ; In DAB, max 2 frequency entries
                entry_a {
                    signal_mode_1 true
                    adjacent true
                    frequency 234.208
                }
                entry_b {
                    signal_mode_1 true
                    adjacent true
                    frequency 188.928
                }
            }
        }
        fi_fm_1 {
            range_modulation fm
            continuity true
            pi_code 0x1234
            ; in FM, max 7 entries
            frequencies "87.6 105.2"
        }
    }
    fi_other_ensemble {
        oe true
        fi_dab_other {
            range_modulation dab
            continuity true
            eid 0x4fee
            frequencies {
                entry_a {
                    signal_mode_1 true
                    adjacent true
                    frequency 230.784
                }
            }
        }
    }
    fi_2 {
        oe false
        fi_drm_3 {
            range_modulation drm
            continuity true
            drm_id 0x12ab45
            frequencies "15.21 22.4"
        }
        fi_amss_4 {
            range_modulation amss
            continuity true
            amss_id 0x33cc88
            frequencies "14.8"
        }
    }
}

; For information about the ensemble, service, subchannels, components and outputs,
; please see doc/example.mux and doc/advanced.mux
ensemble {
    id 0x4fff
    ecc 0xec

    local-time-offset auto
    label "OpenDigitalRadio"
    shortlabel "ODR"
}

services {
    srv-fu {
        id 0x8daa
        label "Funk"
    }
    srv-ri {
        id 0x8dab
        label "Rick"
    }
}

; We can announce the presence of a service in another ensemble using FIG0/24,
; both for services we carry in this ensemble (OE=0) and for services that
; only exist in another ensemble (OE=1)
other-services {
    ; you can freely chose the unique id
    srv-fu {
        ; If this ensemble contains a service with this id, OE will be set to 0.
        ; Otherwise, OE=1
        id 0x8daa

        ; If this service is present in other ensembles, it can be announced
        ; through FIG0/24. other_ensembles is a comma separated list of
        ; ensemble IDs (decimal or hexadecimal with 0x prefix)
        other_ensembles "0x4ffe,0x4ffd"
    }

    ; For a more efficient usage of the FIC capacity, it is better to first enumerate
    ; the services that we carry in the ensemble (OE=0), followed by the foreign services.
    ; This avoids having to send FIG0 headers every time the OE flag switches.
    srv-foreign {
        id 0x8daf
        other_ensembles "0x4ffd"

        ; Only Audio type services are supported
    }
}

subchannels {
    sub-fu {
        type dabplus
        inputfile "tcp://*:9000"
        bitrate 96
        id 1
        protection 3
        zmq-buffer 40
        zmq-prebuffering 20
    }
    sub-ri {
        type dabplus
        inputfile "tcp://*:9001"
        bitrate 96
        id 2
        protection 3
        zmq-buffer 40
        zmq-prebuffering 20
    }
}

components {
    comp-fu {
        service srv-fu
        subchannel sub-fu
    }

    comp-ri {
        service srv-ri
        subchannel sub-ri
    }
}

outputs {
    file "file://./test.eti?type=raw"
    ;throttle "simul://"
}