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
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
|
This file contains information about the changes done to
ODR-DabMux in this repository
2024-10-03: Matthias P. Braendli <matthias@mpb.li>
(v5.0.0):
Remove odr-zmq2edi.
Make compatible with easydab again.
Fix timestamp issue with EDI streams that have seconds=0.
Fix receiving multicast streams, when several multicast groups are
on the same port.
2024-05-05: Matthias P. Braendli <matthias@mpb.li>
(v4.5.0):
Switch project to C++17.
Update common code, with ClockTAI improvements among others.
Add uatype journaline to config.
Add ZMQ output to odr-zmq2edi.
Increase repetition rate for labels.
Add showjson to remote control.
2024-03-23: Matthias P. Braendli <matthias@mpb.li>
(v2.3.2):
This is a patch version for v2.3.1
Fix compilation issues with recent boost and compiler versions
2023-08-12: Matthias P. Braendli <matthias@mpb.li>
(v4.4.1):
Fix some compilation issues.
2023-05-09: Matthias P. Braendli <matthias@mpb.li>
(v4.4.0):
Ensure CIF count continuity on startup, and make CIF
count consistent with timestamp across restarts.
Ensure EDI output inserts ESTn tags in the order given
in the config file.
2022-10-18: Matthias P. Braendli <matthias@mpb.li>
(v4.3.0):
Add "load_entire_file" configuration setting for file inputs.
Add EDI/TCP output pre-roll burst to reduce downtime on new connections.
Support reading the mux config in JSON format.
Fix a 32-bit SId parse issue on 32-bit systems.
Improve installation instructions in INSTALL.md.
2022-04-19: Matthias P. Braendli <matthias@mpb.li>
(v4.2.1):
Fix `make dist`
2022-04-19: Matthias P. Braendli <matthias@mpb.li>
(v4.2.0):
Add FIG 0/14 FEC scheme defintion, for enhancedpacket mode subchannels.
Remove useless List Terminator for FIG0/13, and add support for Broadcast WebSite.
Add timestamps to log output.
Update manpages.
2022-03-15: Matthias P. Braendli <matthias@mpb.li>
(v4.1.0):
Improve EDI input.
Fix crash when FIG0/7 doesn't have enough space.
Fix FIG0/6 (service linking) database continuation flag.
Simplify compilation on ARM.
Rework web GUI (Thanks to Robin)
2021-06-03: Matthias P. Braendli <matthias@mpb.li>
(v4.0.0):
Incompatible change: Replace EDI packet interleaving by packet spreading (changes configuration
file format for ODR-DabMux and command line options for zmq2edi).
Add configurability for EDI UDP multicast input.
Simplify FIG 0/9, avoid sending an empty subfield list.
FIG 0/13 improvements for packet services, deprecate 'figtype' component setting which is replaced by 'user-application'.
Improvements for timestamped input.
Add --version command line option to all tools.
EDI output: make transport addressing optional.
2020-05-26: Matthias P. Braendli <matthias@mpb.li>
(v3.1.1):
Fix FIG2 segment count issue.
Handle disconnects better in EDI output.
Fix buffering issue with timestamped EDI input.
2020-04-15: Matthias P. Braendli <matthias@mpb.li>
(v3.1.0):
Initialise TIST on startup rounded to 24ms, as it was done before
v2.4.0 (see '5b1dea7').
Refresh TAI bulletin before it expires.
Set SO_REUSEADDR for TCP listening sockets (avoids some startup failures).
Add EDI input TIST delay setting, and improve EDI input stats and error handling.
Add FIG 0/7 and Alarm announcement support (Thanks to Mathias Kuntze).
Add startupcheck functionality to ODR-DabMux and ODR-ZMQ2EDI.
ZMQ2EDI will not quit anymore in case of input issues.
Handle FCT discontinuity in ZMQ2EDI, and display better statistics
which are usable by the new munin stats script doc/stats_zmq2edi_munin.py.
2019-10-30: Matthias P. Braendli <matthias@mpb.li>
(v3.0.1):
Fix compilation on older systems (like debian jessie)
2019-10-29: Matthias P. Braendli <matthias@mpb.li>
(v3.0.0):
Add EDI input with support for timestamps, which requires a change
in the configuration file format for the input specification. This
marks the beginning of a transition away from the ZMQ contribution
protocol towards the standard EDI, including EDI-over-TCP.
Move code shared with other mmbTools into a separate `common`
repository.
Change default TAI clock cache storage location to
`/var/tmp/odr-leap-seconds.cache`.
Add encoder version and uptime to stats if available (carried over
EDI, not ZMQ).
Fix nonblocking file input.
Modify ODR-zmq2edi and ODR-zmq2farsync timeout behaviour.
2019-12-20: Matthias P. Braendli <matthias@mpb.li>
(v2.4.2):
Backport the file input nonblock fix to v2.4.1.
2019-06-25: Matthias P. Braendli <matthias@mpb.li>
(v2.4.1):
Fix bug when odr-zmq2edi is used with more than one destination.
2019-06-07: Matthias P. Braendli <matthias@mpb.li>
(v2.4.0):
Add timestamp offset setting, and fix bug due to UTCO offset
not being properly applied. See doc/TIMESTAMPS.rst for more
details.
Implement FIG2 labels.
Fix bug for DAB MP2 in EEP_A.
Fix FIG0/24 for DAB+ services.
ODR-ZMQ2EDI: fix MNSC endianness swap bug.
Pull some RC changes from ODR-DabMod.
Implement EDI-over-TCP output.
2019-01-07: Matthias P. Braendli <matthias@mpb.li>
(v2.3.1):
Happy new year!
Fix TAI bulletin parsing on systems where long is 32 bit.
Add configurable URLs to download TAI clock bulletin and
rework the download logic.
Do not read TAI clock cache file from /tmp anymore, only
use /var/tmp.
2018-10-30: Matthias P. Braendli <matthias@mpb.li>
(v2.3.0):
Correct FIG0/6 output for services with different ECC.
Add support for transmitting empty Linkage Sets.
Save leap-second cache to /var/tmp, which doesn't get
cleared across reboots.
Rework audio level measurement in the statistics server to
alleviate some timing-related issues.
odr-zmq2edi: Add option to drop late packets.
2018-07-31: Matthias P. Braendli <matthias@mpb.li>
(v2.2.0):
Fix delays and FIG repetition burst on announcement switching.
Add support for services with different ECC (Signalled in FIG0/9).
Improve ODR-ZMQ2EDI statistics.
2018-05-29: Matthias P. Braendli <matthias@mpb.li>
(v2.1.2):
A couple of internal changes and fixes for
compilation warnings.
2018-03-27: Matthias P. Braendli <matthias@mpb.li>
(v2.1.1):
Fix segmentation fault in peak audio statistics
calculation.
2018-03-23: Matthias P. Braendli <matthias@mpb.li>
(v2.1.0):
Add version string to management server.
Introduce slow audio peak statistic.
Avoid doing useless copies in the RAW output.
2018-03-01: Matthias P. Braendli <matthias@mpb.li>
(v2.0.0):
Configuration file syntax changed for Frequency Information
and Other Services settings.
Statistics server changes: audio-level peak information is
measured over the last second, and not anymore since the last
request. Same for buffers, where min/max are measured over
thirty seconds.
Make nonblock available again for file inputs.
2018-02-09: Matthias P. Braendli <matthias@mpb.li>
(v1.3.3):
Add dynamic/static PTy setting to configuration.
Add UTF-8 to EBU Latin character set converter for labels.
Show TAI bulletin expiration in RC.
Stop using SUBDIRS in automake, and build the executable in ./ and not
in ./src anymore.
2018-01-23: Matthias P. Braendli <matthias@mpb.li>
(v1.3.2):
Add clock selection to RAW output.
zmq2edi: intentionnally crash after timeout.
Add command "state" to the monitoring interface and add to Munin
script.
Fix TAI bulletin download failure handling.
Improve portability for non-Linux POSIX systems, and improve
autoconf checks.
Default international-table to 1.
2017-08-23: Matthias P. Braendli <matthias@mpb.li>
(v1.3.1):
Add retords.pl script for Xymon monitoring tool.
Add odr-zmq2edi tool, and add necessary metadata to
the ZMQ output of ODR-DabMux. The configuration file
was extended in a backward-compatible way. Handling
of the TAI clock subsystem has been adapted too.
2017-06-30: Matthias P. Braendli <matthias@mpb.li>
(v1.3.0):
Add support for FIG0/24 to announce that a service is present
in another ensemble. This completes the implementation of all
service linking FIGs according to ETSI TS 103 176 Figure 1.
Allow EDI packet lengths up to 1400 bytes.
Add local cache for the leap second information downloaded from
IETF, remove download from USNO servers, as they don't give validity
information.
2017-06-05: Matthias P. Braendli <matthias@mpb.li>
(v1.2.2):
Add support for FIG0/21 "Frequency Information".
Improve EDI fragment interleaver.
Avoid stalling the multiplexer when the TCP output is used.
2017-01-29: Matthias P. Braendli <matthias@mpb.li>
(v1.2.1):
Bugfix for illegal memory access in EDI PFT layer.
Add experimental STI-D(PI, X)/RTP input.
2017-01-24: Matthias P. Braendli <matthias@mpb.li>
(v1.2.0):
Remove the libfec dependency.
Adapt several FIGs to EN 300 401 V2.1.1.
Add FIG0/6 for service linking information.
Big overhaul of all inputs.
TCP output improvements, stability and handling of multiple
connections.
Fix ZeroMQ input encryption for MPEG inputs.
Rework PRBS source and describe it better.
Remove unused bridge, SLIP, Test and nonfunctional
DMB input.
Add fragment interleaver for the EDI output.
Fix important issue when both EDI and TIST are enabled.
Enable syslog logger earlier.
2016-09-02: Matthias P. Braendli <matthias@mpb.li>
(v1.1.0):
Switch FIG0/10 to long form, the latest draft spec marks the
short form as legacy.
Add RC support for deferred triggering of announcements, see
doc/remote_control.txt
2016-07-30: Matthias P. Braendli <matthias@mpb.li>
(v1.0.0):
Remove old carousel.
Fix FIGs 0/2 and 0/8 when data services present.
Fix parsing of TAI-UTC bulletin for EDI TIST.
ZeroMQ is now a mandatory dependency because of the ManagementServer.
Minor bugfixes and improvements.
2016-03-26: Matthias P. Braendli <matthias@mpb.li>
(v0.9.0):
Enable new carousel by default.
Integrate munin script improvements.
EDI bugfix when many CU are used.
EDI: add support for PFT with FEC=0 (only fragmentation).
EDI: backward-incompatible configuration change.
EDI: transmit timestamp with TAI vs UTC correction (experimental).
Get compilation working under FreeBSD and OSX.
Add ability to specify source and TTL for UDP output.
Split example.mux into a simple and a more advanced example.
2015-11-27: Matthias P. Braendli <matthias@mpb.li>
(v0.8.1):
Fix compilation with test input.
Add PTy to remote control.
Add EDI options to configuration file for multicast settings.
2015-09-13: Matthias P. Braendli <matthias@mpb.li>
(v0.8.0):
Pad labels with spaces instead of terminating them with NUL.
Modify real-time priority.
Refactor big mux loop into separate function.
Add ability to read out full configuration tree in JSON.
Remove old command-line interface.
Fix EDI errors.
Replace TCP socket for Statistics and Management server by ZMQ
REP/REQ.
Start activities on a simple web GUI for monitoring and configuration.
Add new FIG carousel, not enabled by default.
Add utility to drive a FarSync card from a ZMQ ETI stream.
Improve FIG0/13 signalling (DG flag, CAOrg removal)
Add announcement support (FIG0/18 and 0/19)
2015-07-27: Matthias P. Braendli <matthias@mpb.li>
(v0.7.5):
Fix segmentation fault in short label check logic.
2015-07-03: Matthias P. Braendli <matthias@mpb.li>
(v0.7.4):
Allow empty component labels
Fix compilation with ZeroMQ 4.1.x
2015-04-10: Matthias P. Braendli <matthias@mpb.li>
(v0.7.3):
Security: RC only listens on localhost.
Change FIG signalisation handling for User Application Type,
which has an impact on Slideshow.
-e parameter becomes optional.
Improve error messages and documentation.
Start some activities for a web-based GUI.
2014-09-26: Matthias P. Braendli <matthias@mpb.li>
(v0.7.2):
Fix a memory leak with the ZMQ input.
Fix handling of timestamps when using ZMQ input.
Add the experimental EDI output.
Support new ZeroMQ frame format also for toolame-dab.
Update FarSync driver to latest version.
When used without configuration file, LTO defaults to auto,
TM defaults to 1.
Add protection profile option to configuration.
2014-05-20: Matthias P. Braendli <matthias@mpb.li>
(v0.7.1):
This is a bugfix release, with a minor update
to the input state server.
* odr-dabmux:
Fix -r command line option.
Correct internal allocation/deallocation mistakes.
Add "Silent" state to input states.
Little changes in munin graph script.
2014-04-25: Matthias P. Braendli <matthias@mpb.li>
(v0.7.0):
This version supports a new ZeroMQ frame format. The
old format is still used by toolame-dab, and by
older versions of fdk-aac-dabplus, and will stay
supported.
* odr-dabmux:
Add local-time-offset to remote control,
and support 'auto' setting in configuration file.
Update the munin script.
Support the new ZeroMQ framing format.
Support ZeroMQ CURVE authentication.
Make ZeroMQ buffering better configurable.
Include peak audio level in munin statistics.
2014-04-04: Matthias P. Braendli <matthias@mpb.li>
(v0.6.0):
Adds support for MOT Slideshow and DLS,
compatible with mot-encoder from
fdk-aac-dabplus
* odr-dabmux:
Add FIG0/13 signalling for MOT slideshow
Add local-time-offset and intl table options
Fix some unseen compilation warnings
Change ZMQ output format to guarantee frame
alignment (not backward compatible)
2014-02-14: Matthias P. Braendli <matthias@mpb.li>
(v0.5.0):
* odr-dabmux:
Service and component labels can now be changed on
the fly using the remote control.
ZMQ input buffer size can be changed using the RC.
Modify the RC 'list' command to simplify usage.
Clean up the startup configuration dump.
Added fault checking logic to RC that can restart
it in case of a failure.
Add doc/remote_control.txt
2014-02-12: Matthias P. Braendli <matthias@mpb.li>
(v0.4.3):
* odr-dabmux:
Add support for hexadecimal IDs in configuration file.
Add ZMQ input for toolame-dab.
2014-02-11: Matthias P. Braendli <matthias@mpb.li>
(v0.4.2)
* odr-dabmux:
Actually add zmq.hpp to Makefile.am
(v0.4.1)
* odr-dabmux:
Include zmq.hpp locally and prefer it over the
system one.
Fix wrong usage of zmq::socket_t.recv
2014-02-07: Matthias P. Braendli <matthias@mpb.li>
(v0.4.0)
* odr-dabmux:
CRC-DabMux renamed to ODR-DabMux
Version bump to 0.4.0
2014-01-31: Matthias P. Braendli <matthias@mpb.li>
(tag r12):
* crc-dabmux:
Create new object-oriented abstraction for the
inputs, with a wrapper for all existing inputs
Adapt inputZMQ to the new internal interface
Add a telnet Remote Control interface
2014-01-31: Matthias P. Braendli <matthias@mpb.li>
(tag r11):
* crc-dabmux:
Replace TCPLog by Logger that supports syslog
Add TCP statistics server
Make ZMQ input publish buffer statistics
Add Munin helper script to graph ZMQ input stats
Fix ZMQ include when inputzmq disabled
2014-01-05: Matthias P. Braendli <matthias@mpb.li>
(tag r10):
* crc-dabmux:
Add ZeroMQ input, compatible with fdk-aac-dabplus-zmq
Replace CRC-DabMux-cfg with -e option
2013-12-14: Matthias P. Braendli <matthias@mpb.li>
(tag r9):
* autotools:
Remove autogenerated files and add bootstrap
Fix faulty logic for --enable-output-zeromq
Update version generation for git
2013-11-10: Matthias P. Braendli <matthias@mpb.li>
(tag r8):
* crc-dabmux:
Some configuration parsing and logging fixes.
Replaced the C-style function dispatching for the outputs
by C++ objects with inheritance.
Added support for ZeroMQ ETI output.
ZeroMQ dependency added in configure.ac
Versioning changed to make hg revision visible
Completed READMEs and INSTALLs
2012-09-13: Matthias P. Braendli <matthias@mpb.li>
(tag r7):
* crc-dabmux/src/*:
Added shortlabel support to configuration file
Added Boost version check into autoconf
2012-08-26: Matthias P. Braendli <matthias@mpb.li>
(tag r6):
* crc-dabmux/src/DabMux.h:
Added missing file DabMux.h
2012-08-23: Matthias P. Braendli <matthias@mpb.li>
(tag r5):
* crc-dabmux/*:
Refactoring command line handling for crc-dabmux,
added configuration file parser including example.
When the program is called as CRC-DabMux-cfg, it reads
the Ensemble definition from a file rather than from
the command line. An example file is in doc/
DabMux now depends on Boost.
2012-08-17: Matthias P. Braendli <matthias@mpb.li>
(tags r4, r3, r2 and r1 were relevant to crc-dabmod in the old repository)
2011-05-24 Pascal Charest <pascal.charest@crc.ca>
* src/DabMux.cpp: Changed for more precise messages.
* src/DabMux.cpp: Added ECC support.
* src/dabInputFile.cpp: Removed unused macros, which solved unitialised bug.
* src/dabInputPacketFile.cpp: Removed unused macros, which solved unitialised bug.
2010-08-23 Pascal Charest <pascal.charest@crc.ca>
* src/DabMux.cpp: Added UDP input for data subchannel (bug).
2010-06-24 Pascal Charest <pascal.charest@crc.ca>
* src/DabMux.cpp: Added support for timestamp.
2010-06-17 Pascal Charest <pascal.charest@crc.ca>
* src/DabMux.cpp: Solved FIC date bug.
Copyright (C) 2010,2011 Her Majesty the Queen in Right of Canada
(Communications Research Center Canada)
Copyright (C) 2013,2014 Matthias P. Braendli, http://mpb.li
This file is part of ODR-DabMux.
ODR-DabMux is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
ODR-DabMux is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ODR-DabMux. If not, see <http://www.gnu.org/licenses/>.
|