diff options
authorMatthias P. Braendli <matthias.braendli@mpb.li>2014-02-14 22:12:40 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2014-02-14 22:12:40 +0100
commit4bf51d695e9193f9b39cfca469df22fcded0f800 (patch)
parent18ac7c4644add4db18bcb7cd7cb3560cffe846b3 (diff)
Release 0.5.0v0.5.0
3 files changed, 120 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 0c7be54..11a9c12 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,18 @@
This file contains information about the changes done to
the ODR-DabMux in this repository
+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>
* odr-dabmux:
@@ -14,7 +26,7 @@ the ODR-DabMux in this repository
* odr-dabmux:
Include zmq.hpp locally and prefer it over the
- system one.
+ system one.
Fix wrong usage of zmq::socket_t.recv
2014-02-07: Matthias P. Braendli <matthias@mpb.li>
@@ -27,7 +39,7 @@ the ODR-DabMux in this repository
(tag r12):
* crc-dabmux:
Create new object-oriented abstraction for the
- inputs, with a wrapper for all existing inputs
+ inputs, with a wrapper for all existing inputs
Adapt inputZMQ to the new internal interface
Add a telnet Remote Control interface
@@ -58,7 +70,7 @@ the ODR-DabMux in this repository
* crc-dabmux:
Some configuration parsing and logging fixes.
Replaced the C-style function dispatching for the outputs
- by C++ objects with inheritance.
+ by C++ objects with inheritance.
Added support for ZeroMQ ETI output.
ZeroMQ dependency added in configure.ac
Versioning changed to make hg revision visible
@@ -79,10 +91,10 @@ the ODR-DabMux in this repository
(tag r5):
* crc-dabmux/*:
Refactoring command line handling for crc-dabmux,
- added configuration file parser including example.
+ 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/
+ 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>
diff --git a/configure.ac b/configure.ac
index 0af2805..fba1416 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@
# along with ODR-DabMux. If not, see <http://www.gnu.org/licenses/>.
-AC_INIT([ODR-DabMux], [0.4.3], [matthias.braendli@mpb.li])
+AC_INIT([ODR-DabMux], [0.5.0], [matthias.braendli@mpb.li])
AM_INIT_AUTOMAKE([-Wall subdir-objects])
diff --git a/doc/remote_control.txt b/doc/remote_control.txt
new file mode 100644
index 0000000..35d0e1d
--- /dev/null
+++ b/doc/remote_control.txt
@@ -0,0 +1,101 @@
+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.
+The server only listens on localhost for security reasons. Remote access should
+be done using a VPN or SSH port forwarding.
+The principle is that parts of ODR-DabMux which have modifiable parameters
+register themselves as remote-controllable modules, and also register
+parameters. Each parameter has a value, that can be read/written using the
+get/set commands.
+The interface is quite simple, and supports the following commands:
+ > help
+ list
+ * Lists the modules that are loaded and their parameters
+ show MODULE
+ * Lists all parameters and their values from module MODULE
+ * Gets the value for the specified PARAMETER from module MODULE
+ * Sets the value for the PARAMETER ofr module MODULE
+ quit
+ * Terminate this session
+In this example, there is one service whose unique id (set in the configuration
+file) is 'srv-fb', one subchannel with uid 'sub-fb' and one component 'comp-fb'.
+The command 'list' will show all exported parameters, and a small description:
+ > list
+ srv-fb
+ label : Label and shortlabel [label,short]
+ sub-fb
+ buffer : Size of the input buffer [aac superframes]
+ enable : If the input is enabled. Set to zero to empty the buffer.
+ comp-fb
+ label : Label and shortlabel [label,short]
+The indication in square brackets can help you understand the format of the
+values, or the units used. e.g. for AAC subchannels, the 'buffer' parameter
+has values that are counted in number of AAC superframes. It is implicit that a
+number is meant.
+In contrast to this, the 'label' parameters of both services and components take
+a "label,short-label" pair, separated by a comma.
+Binary values accept the value 0 as false, and 1 as true.
+Remarks concerning specific modules
+ZMQ input
+The ZMQ input (both for MPEG and AAC+) export a 'buffer' parameter which
+defines how many frames must be in the buffer *before* the input starts
+If you increase the size of the buffer, it will not fill up by itself (unless
+there is a clock drift between the mux and the encoder).
+In order to force the buffer to fill up, disable the input by setting 'enable'
+to 0, and, once the buffer is empty, re-enable it. It will fill to the desired
+Labels (Components and Services)
+The restrictions on short-labels, namely that they can only consist of letters
+appearing in the labels, and that they must be maximum 8 characters long, are
+verified by the 'label' parameters.
+If you try to set an invalid label/short-label combination, you will get an
+error, and the label is unchanged:
+ > set comp-fb label Programme1,prog1
+ comp-fb short label prog1 is not subset of label 'Programme1'
+ > set comp-fb label Programme1,Programme
+ comp-fb short label Programme is too long (max 8 characters)
+In addition to adding more configurable features to the RC, it will
+be necessary to add the ability to set several parameters at once,
+That's already somewhat of an issue with the labels. (How do you set a label
+that contains a comma ? Right now you cannot.)