aboutsummaryrefslogtreecommitdiffstats
path: root/doc/example.mux
diff options
context:
space:
mode:
Diffstat (limited to 'doc/example.mux')
-rw-r--r--doc/example.mux118
1 files changed, 71 insertions, 47 deletions
diff --git a/doc/example.mux b/doc/example.mux
index 6c2bc18..cf02467 100644
--- a/doc/example.mux
+++ b/doc/example.mux
@@ -5,7 +5,7 @@
;
; It contains two services, one DAB and one DAB+, and also shows
; both the file input useful for offline processing, and the
-; ZeroMQ input useful in a 24/7 scenario.
+; EDI input useful in a 24/7 scenario.
; More information about the usage of the tools is available
; in the guide, which can be found on the
@@ -65,6 +65,12 @@ general {
; If the port is zero, or the line commented, the server
; is not started.
managementport 12720
+
+ ; At startup, run the command and abort if is it not returning 0.
+ ; This may be a script. Useful for checking if the NTP client on your
+ ; system has had time to setup the clock.
+ ;startupcheck "chronyc waitsync 10 0.01"
+ ;startupcheck "ntp-wait -fv"
}
remotecontrol {
@@ -161,40 +167,71 @@ subchannels {
sub-fu {
; This is our DAB programme, using a file input
type audio
- inputfile "funk.mp2"
bitrate 128
id 10
protection 3
+
+ inputfile "funk.mp2"
}
- sub-ri {
- ; This is our DAB+ programme, using a ZeroMQ
- type dabplus
- ; Accepts connections to port 9000 from any interface.
- ; Use ODR-AudioEnc as encoder
- inputfile "tcp://*:9000"
+ sub-bla {
+ type audio
bitrate 96
id 1
- protection 3
-
- ; ZMQ specific options, mandatory:
+ protection 1
- ; Maximum size of input buffer, in AAC frames (24ms)
- ; when this buffer size is reached, some frames will be
- ; discarded to get the size again below this value.
- ; As the present implementation discards entire AAC superframes,
- ; (5 frames = 120ms) the effect will clearly be audible.
- zmq-buffer 40
+ ; for audio and dabplus, EDI input is available. It supports TCP server and UDP
+ inputproto edi
+ ; Accepts connection to port 9001 from any interface
+ inputuri "tcp://0.0.0.0:9001"
- ; At startup or after an underrun, the buffer is filled to this
- ; amount of AAC frames before streaming starts.
- zmq-prebuffering 20
+ ; Two buffer-management types are available: prebuffering and timestamped.
+ ; prebuffering will accumulate a few frames before it starts streaming, and each
+ ; time there is a buffer underrun (similar to how the ZMQ input works)
+ ;
+ ; timestamped takes into account the TIST inside EDI and inserts the encoded
+ ; audio frame into the ETI frame with the same timestamp
+ buffer-management prebuffering
; In an ideal scenario, where the input rate exactly corresponds
; to the rate at which the frames are consumed by dabmux, you
- ; see the buffer level staying around the zmq-prebuffering value.
+ ; see the buffer level staying around the prebuffering value.
; Network latency jitter can make it temporarily go lower or higher.
; Encoder clock drift will make the buffer either slowly fill or
; empty, which will create intermittent glitches.
+
+ ; Maximum size of input buffer, in frames (24ms)
+ ; when this buffer size is reached, some frames will be
+ ; discarded to get the size again below this value.
+ buffer 40
+
+ ; At startup or after an underrun, the buffer is filled to this
+ ; amount of frames before streaming starts.
+ prebuffering 20
+ }
+ sub-ri {
+ ; This is our DAB+ programme, using a ZeroMQ input
+ type dabplus
+ bitrate 96
+ id 1
+ protection 3
+
+ ; Accepts connections to port 9000 from any interface.
+ ; Use ODR-AudioEnc as encoder, accepts only connection
+ ; from the local machine.
+ inputproto edi
+ inputuri "tcp://127.0.0.1:9000"
+
+ buffer-management timestamped
+
+ ; When using timestamped, the prebuffering is without effect.
+ ; The buffer setting however still dictates the maximum buffer size, to
+ ; avoid runaway memory usage in case of issues.
+ buffer 500
+ ; 500 * 24ms = 12 seconds
+
+ ; Specify the additional delay in milliseconds to add to the TIST. Positive values
+ ; mean the content will be inserted later.
+ tist-delay 10
}
}
@@ -223,33 +260,19 @@ outputs {
; Output RAW ETI NI to standard output
stdout "fifo:///dev/stdout?type=raw"
- ; ZeroMQ output example, new configuration format. Several
- ; zeromq blocks can be added here.
- ; This output does not back-pressure the multiplexer.
- zeromq {
- ; Listen on all interfaces, on port 9100
- endpoint "tcp://*:9100"
-
- ; Transmit backward compatible metadata containing
- ; EDI time and UTC offset when TIST is enabled.
- ;
- ; If TIST is enabled, requires leap-second information (see example.mux)
- ;
- ; WARNING! requires ODR-DabMux to be compiled with
- ; cURL support, and this will enable leap second download
- ; as for the EDI output!
- allowmetadata true
+ edi {
+ ; Example EDI-over-TCP output
+ ; If TIST is enabled, requires leap-second information
+ destinations {
+ example_tcp {
+ protocol tcp
+ listenport 13000
+ }
+ }
}
- ; Output ETI-over-TCP. This is like piping a RAW ETI NI data stream
- ; into a TCP socket, except that the output can handle simultaneous
- ; connections.
- ; 0.0.0.0 means "listen on all interfaces"
- ; This output does not back-pressure the multiplexer.
- ;tcp "tcp://0.0.0.0:9200"
-
; Throttle output to real-time (one ETI frame every 24ms)
- ;throttle "simul://"
+ throttle "simul://"
; Important! For real-time operation, you need to have exactly one
; output that applies back-pressure to ODR-DabMux, otherwise it will run
@@ -258,7 +281,8 @@ outputs {
; For an output to a pipe, the data consumer at the other end of the pipe
; will dictate the multiplexing rate to ODR-DabMux.
;
- ; If you use the zmq+tcp:// or the tcp:// output,
- ; you must also enable a simul:// output!
+ ; If you use the EDI output, you must also enable a simul:// output!
+
+ ; More options are given in doc/advanced.mux
}