summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2015-09-13 18:53:06 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2015-09-13 19:11:19 +0200
commit4a0515e01ab51dfc42889bbd2d3ce33fdb7c18ca (patch)
treec468e436b6857ee6ab6d80bf65fdc1802f7c9a5b
parentcd6956880b8a7300d7d73c1afb973ca73683644d (diff)
downloaddabmux-0.8.0.tar.gz
dabmux-0.8.0.tar.bz2
dabmux-0.8.0.zip
Prepare release v0.8.0v0.8.0
-rw-r--r--ChangeLog16
-rw-r--r--INSTALL.md12
-rw-r--r--README.md39
-rw-r--r--configure.ac4
-rw-r--r--doc/README.md43
-rw-r--r--doc/example.mux3
-rw-r--r--doc/remote_control.txt4
-rw-r--r--gui/README.md4
-rw-r--r--src/MuxElements.cpp2
9 files changed, 95 insertions, 32 deletions
diff --git a/ChangeLog b/ChangeLog
index 5e7430e..b9b9b88 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,22 @@
This file contains information about the changes done to
the ODR-DabMux in this repository
+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.
diff --git a/INSTALL.md b/INSTALL.md
index 73a3471..6f1fedb 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -28,7 +28,7 @@ Install odr-dabmux
% tar xjf odr-dabmux-x.y.z.tar.bz2 # Unpack the source
% cd odr-dabmux-x.y.z # Change to the source directory
- % ./configure --enable-input-zeromq --enable-output-zeromq
+ % ./configure
# Run the configure script
% make # Build ODR-DabMux
[ as root ]
@@ -37,12 +37,14 @@ Install odr-dabmux
Nearly as simple install procedure using repository:
====================================================
-The code in the repository is more recent than the latest
-release and could be less stable, but already have new
-features.
+The *master* branch in the repository always points to the
+latest release. If you are looking for a new feature or bug-fix
+that did not yet make its way into a release, you can clone the
+*next* branch from the repository.
-* Download and install fec as above
+* Download and install the dependencies as above
* Clone the git repository
+* Switch to the *next* branch
* Bootstrap autotools: <pre>% ./bootstrap.sh</pre>
* Then use ./configure as above
diff --git a/README.md b/README.md
index 88b3bf4..d237977 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,29 @@
Overview
========
-*ODR-DabMux* is a fork of CRC-DabMux, which was developed by the Communications
-Research Center Canada. It has been forked by the
+ODR-DabMux is a *DAB (Digital Audio Broadcasting) multiplexer* compliant to
+ETSI EN 300 401. It is the continuation of the work started by which was
+developed by the Communications Research Center Canada on CRC-DabMux, and
+is now pursued in the
[Opendigitalradio project](http://opendigitalradio.org).
-ODR-DabMux is a *DAB (Digital Audio Broadcasting) multiplexer* compliant to
-ETSI EN 300 401.
-
-In addition to the features of CRC-DabMux, this fork contains:
-
-- configuration file support, see doc/example.mux
-- timestamping support required for SFN
-- a ZeroMQ ETI output that can be used with ODR-DabMod
-- a ZeroMQ dabplus input that can be used with fdk-aac-dabplus
- and toolame-dab, and supports CURVE authentication
-- supports logging to syslog
-- supports ZMQ input monitoring with munin tool
-- includes a Telnet Remote Control for setting/getting parameters
- (can change subchannel and component labels, and ZMQ input buffer
- parameters)
-- an experimental EDI output
+ODR-DabMux is part of the ODR-mmbTools tool set. More information about the
+ODR-mmbTools is available in the *guide*, available on the
+[Opendigitalradio mmbTools page](http://www.opendigitalradio.org/mmbtools).
+
+Features of ODR-DabMux:
+- Standards-compliant DAB multiplexer
+- Configuration file, see doc/example.mux
+- Timestamping support required for SFN
+- ZeroMQ ETI output that can be used with ODR-DabMod
+- ZeroMQ input that can be used with FDK-AAC-DABplus
+ and Toolame-DAB, and supports CURVE authentication
+- Logging to syslog
+- Monitoring using munin tool
+- Includes a Telnet and ZMQ Remote Control for setting/getting parameters
+- EDI output
+- Something that will one day become a nice GUI for configuration,
+ see gui/README.md
The src/ directory contains the source code of ODR-DabMux.
diff --git a/configure.ac b/configure.ac
index bdc7328..265b853 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@
# along with ODR-DabMux. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.61)
-AC_INIT([ODR-DabMux], [0.7.5], [matthias.braendli@mpb.li])
+AC_INIT([ODR-DabMux], [0.8.0], [matthias.braendli@mpb.li])
AC_CONFIG_AUX_DIR([build-aux])
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE([-Wall subdir-objects foreign])
@@ -56,7 +56,7 @@ AX_CXX_COMPILE_STDCXX_11(noext,mandatory)
# Checks for libraries.
AC_CHECK_LIB([pthread], [pthread_create], [], AC_MSG_ERROR([libpthread is required]))
-AX_BOOST_BASE([1.41.0], [], AC_MSG_ERROR([BOOST 1.41 or later is required]))
+AX_BOOST_BASE([1.48.0], [], AC_MSG_ERROR([BOOST 1.48 or later is required]))
# we need to check for libm before checking for fec
AC_CHECK_LIB([m], [sin])
diff --git a/doc/README.md b/doc/README.md
new file mode 100644
index 0000000..b35d77d
--- /dev/null
+++ b/doc/README.md
@@ -0,0 +1,43 @@
+Description
+===========
+ODR-DabMux is a software multiplexer that generates an ETI stream from audio
+and data streams. Because of its software based architecture, many typical DAB
+services can be generated and multiplexed on a single PC platform with live or
+pre-recorded sources.
+
+A DAB multiplex configuration is composed of one ensemble. An ensemble is the
+entity that receivers tune to and process. An ensemble contains several
+services. A service is the listener-selectable output. Each service contains
+one mandatory service component which is called primary component. An audio
+primary component define a program service while a data primary component
+define a data service. Service can contain additional components which are
+called secondary components. Maximum total number of components is 12 for
+program services and 11 for data services. A service component is a link to one
+subchannel (or Fast Information Data Channel). A subchannel is the physical
+space used within the common interleaved frame.
+
+ __________________________________________________
+ ENSEMBLE | ODR-Ensemble |
+ |__________________________________________________|
+ | | |
+ | | |
+ _______V______ _______V______ _______V______
+ SERVICES | ODR-Service1 | | ODR-Service2 | | ODR-Service3 |
+ |______________| |______________| |______________|
+ | | | | |______ |
+ | | | | | |
+ __V__ __V__ __V__ __V__ __V__ __V__
+ SERVICE | SC1 | | SC2 | | SC3 | | SC4 | | SC5 | | SC6 |
+ COMPONENTS |_____| |_____| |_____| |_____| |_____| |_____|
+ | | _____| | | ____|
+ | | | | | |
+ _________________ __V________V__V______________V________V___V_______
+ | MCI | SI | FIDC | | SubCh1 | SubCh9 | ... | SubCh3 | SubCh60 | ... |
+ |_____|____|______| |________|________|_______|________|_________|_____|
+ Fast Information Ch. Main Service Channel
+ COMMON INTERLEAVED FRAME
+
+Configuration
+=============
+The configuration is given in a file, please see the example in doc/example.mux
+
diff --git a/doc/example.mux b/doc/example.mux
index 1141006..4f4a2bc 100644
--- a/doc/example.mux
+++ b/doc/example.mux
@@ -9,9 +9,6 @@
; It consists of six mandatory sections, whose relative order in this
; file are of no importance.
-; In case of questions or ambiguities, the documentation for the
-; command-line configuration interface still mostly applies.
-
; The general section defines global multiplex parameters.
general {
; the DAB Transmission mode (values 1-4 accepted)
diff --git a/doc/remote_control.txt b/doc/remote_control.txt
index 35d0e1d..ff2fed9 100644
--- a/doc/remote_control.txt
+++ b/doc/remote_control.txt
@@ -2,7 +2,9 @@ Telnet Remote Control
=====================
ODR-DabMux can be configured to set up a simple telnet remote control that can
-be used to modify some parameters without restarting the multiplexer.
+be used to modify some parameters without restarting the multiplexer. The same
+functionality available through telnet is also available over a ZeroMQ REQ/REP
+socket, to make automation easier.
The server only listens on localhost for security reasons. Remote access should
be done using a VPN or SSH port forwarding.
diff --git a/gui/README.md b/gui/README.md
index 985efa5..06869e9 100644
--- a/gui/README.md
+++ b/gui/README.md
@@ -12,8 +12,8 @@ impressed.
Usage
-----
-Launch ODR-DabMux with your preferred multiplex, and enable the statsserver
-(which will soon be renamed) in the configuration file to port 12720.
+Launch ODR-DabMux with your preferred multiplex, and enable the statistics and
+management server in the configuration file to port 12720.
Start the gui/odr-dabmux-gui.py script on the same machine
diff --git a/src/MuxElements.cpp b/src/MuxElements.cpp
index 60056e4..be0906e 100644
--- a/src/MuxElements.cpp
+++ b/src/MuxElements.cpp
@@ -49,7 +49,7 @@ std::string AnnouncementCluster::tostring() const
{
stringstream ss;
ss << "cluster id(" << (int)cluster_id;
- ss << "flags 0x" << boost::format("%04x") % flags;
+ ss << ", flags 0x" << boost::format("%04x") % flags;
ss << ", subchannel " << subchanneluid;
if (m_active) {
ss << " *";