diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-09-23 19:12:24 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-09-23 19:12:24 +0200 |
commit | b4a452791dd37c12a2f59579586433055a7eaa02 (patch) | |
tree | edf85967eb1d9244aced02cc13432800c0c353c7 | |
parent | b82ddef37e15d6b0ad4f7d00afa30539086ba15c (diff) | |
download | dabmux-b4a452791dd37c12a2f59579586433055a7eaa02.tar.gz dabmux-b4a452791dd37c12a2f59579586433055a7eaa02.tar.bz2 dabmux-b4a452791dd37c12a2f59579586433055a7eaa02.zip |
Rework example mux files to prefer EDI
-rw-r--r-- | doc/advanced.mux | 76 | ||||
-rw-r--r-- | doc/example.mux | 82 |
2 files changed, 82 insertions, 76 deletions
diff --git a/doc/advanced.mux b/doc/advanced.mux index 24a6333..fba94ad 100644 --- a/doc/advanced.mux +++ b/doc/advanced.mux @@ -180,7 +180,7 @@ subchannels { protection 4 ; example file input - inputproto zmq + inputproto file inputuri "funk.mp2" nonblock false } @@ -203,9 +203,9 @@ subchannels { protection 1 ; example file input ;inputuri "rick.dabp" + ; example zmq input: ; Accepts connections to port 9000 from any interface. - ; Use ODR-AudioEnc as encoder inputproto zmq inputuri "tcp://*:9000" @@ -337,25 +337,10 @@ components { } } -; A list of outputs, in the format -; unique-id "uri" outputs { ; The unique-id can be used by the remote control or the statistics server ; to identify the output - ;supported output types for file and fifo outputs are - ; raw, framed and streamed - ; - ; Please see doc/dab_output_formats.txt - stdout "fifo:///dev/stdout?type=raw" - - ; Legacy format for ZeroMQ output example. See example.mux - ; for newer format. - ;zmq "zmq+tcp://*:9100" - - ; Throttle output to real-time (one ETI frame every 24ms) - ;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 ; at the highest possible rate on your system! @@ -365,10 +350,16 @@ outputs { ; ; If you use the zmq or EDI outputs, you must also enable a simul:// output! - ; The edi output has a different syntax + ;supported output types for file and fifo outputs are + ; raw, framed and streamed + ; + ; Please see doc/dab_output_formats.txt + ;stdout "fifo:///dev/stdout?type=raw" + + ; Throttle output to real-time (one ETI frame every 24ms) + throttle "simul://" + edi { - ; EDI uses the UDP protocol. This implementation of EDI does not support - ; EDI Packet Resend. ; If TIST is enabled, requires leap-second information (see example.mux) destinations { ; The names you give to the destinations have no meaning, @@ -412,12 +403,16 @@ outputs { ; The destination port cannot be set independently for ; different outputs because it is encoded in the transport ; header of the PFT layer. + ; Necessary when using UDP, optional when only using TCP. port 12000 ; Enable the PFT subsystem. If false, AFPackets are sent. - enable_pft true + ; PFT is not necessary when using TCP. + enable_pft false - ; How many lost fragments can be recovered by Reed-Solomon + ; How many lost fragments can be recovered by Reed-Solomon. + ; Requires enable_pft true. + ; ; If set to 0, the PFT subsystem will only do Fragmentation and ; Transport, but no Reed Solomon. ; See ETSI TS 102 821, Clause 7 "PFT Layer", Figure 10. ODR-DabMux @@ -432,11 +427,11 @@ outputs { ; to nearest multiple of 24ms. Set to 0 to disable the interleaver. interleave 0 - ; Length of a RS chunk, can be overriden + ; Length of a RS chunk, can be overridden ;default=207 ;chunk_len 207 - ; Save the packets sent over ethernet to the file ./edi.debug + ; Save the packets sent over Ethernet to the file ./edi.debug dump false ; show more debugging info @@ -450,8 +445,36 @@ outputs { } ; Other outputs: - ; TCP listen on port - ;net "tcp://host:port" + + ; 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 + ;} + + ; Legacy format for ZeroMQ output example. See example.mux + ; for newer format. + ;zmq "zmq+tcp://*:9100" + + ; 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. Not suitable for SFN use because timestamps are incomplete. + ; 0.0.0.0 means "listen on all interfaces" + ; This output does not back-pressure the multiplexer. + ;tcp "tcp://0.0.0.0:9200" + ; UDP send to host:port, simple example for unicast ;net_udp "udp://host:port" ; example with source and TTL specification for multicast @@ -466,5 +489,4 @@ outputs { ; external clock frequency in Hz. ; Example: ;farsync "raw://sync0?clocking=master&extsyncclock=10000000" - } diff --git a/doc/example.mux b/doc/example.mux index 3c24c37..be45344 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 @@ -186,13 +186,20 @@ subchannels { ; audio frame into the ETI frame with the same timestamp buffer-management prebuffering - ; Maximum size of input buffer, in AAC frames (24ms) + ; 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 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 AAC frames before streaming starts. + ; amount of frames before streaming starts. prebuffering 20 } sub-ri { @@ -203,28 +210,18 @@ subchannels { protection 3 ; Accepts connections to port 9000 from any interface. - ; Use ODR-AudioEnc as encoder - inputproto zmq - inputuri "tcp://*:9000" - ; ZMQ specific options, mandatory: - - ; 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 + ; Use ODR-AudioEnc as encoder, accepts only connection + ; from the local machine. + inputproto edi + inputuri "tcp://127.0.0.1:9000" - ; At startup or after an underrun, the buffer is filled to this - ; amount of AAC frames before streaming starts. - zmq-prebuffering 20 + buffer-management timestamped - ; 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. - ; 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. + ; 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 } } @@ -253,33 +250,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 @@ -288,7 +271,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 } |