From e5ff24157af141fce8e5487d53ceb4ca597c10f6 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Fri, 3 Jan 2014 21:38:33 +0100 Subject: documentation updates --- INSTALL | 22 ++++++--- README | 4 +- doc/DabMux.1 | 13 ++++- doc/example.config | 141 ----------------------------------------------------- doc/example.mux | 141 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/utils.cpp | 4 +- 6 files changed, 171 insertions(+), 154 deletions(-) delete mode 100644 doc/example.config create mode 100644 doc/example.mux diff --git a/INSTALL b/INSTALL index e8c14c9..d5fafd3 100644 --- a/INSTALL +++ b/INSTALL @@ -1,18 +1,17 @@ Required dependencies: ====================== - * libfec from Phil Karn: http://www.ka9q.net/code/fec/ - * Boost 1.41 or later - * Optional ZeroMQ http://www.zeromq.org + * libfec from Phil Karn, with compatibility patch: + https://github.com/Opendigitalradio/ka9q-fec + * Boost 1.48 or later + * Optional ZeroMQ 4 from http://www.zeromq.org Use --disable-output-zeromq if you don't have it Simple install procedure using tarball release: =============================================== - % wget http://www.ka9q.net/code/fec/fec-3.0.1.tar.bz2 - # Download libfec - % tar xjf fec-3.0.1.tar.bz2 # Unpack the library source - % cd fec-3.0.1 # Change to the library directory + % git clone https://github.com/Opendigitalradio/ka9q-fec.git + % cd ka9q-fec % ./configure # Run the configure script % make # Build the library [as root] @@ -41,3 +40,12 @@ Advanced install procedure: The configure script can be launch with a variety of options, launch the following command for a complete list: % ./configure --help + +Notes about libfec +================== +The original libfec version from + http://www.ka9q.net/code/fec/fec-3.0.1.tar.bz2 +does not compile on x86_64 nor on ARM. That is the reason why the patched +version is suggested. + +On x86 systems, the original version can also be used. diff --git a/README b/README index b00b383..0dab2e5 100644 --- a/README +++ b/README @@ -3,7 +3,7 @@ LICENSING Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Her Majesty the Queen in Right of Canada (Communications Research Center Canada) -Copyright (C) 2013 +Copyright (C) 2013, 2014 Matthias P. Braendli, http://mpb.li This file is part of CRC-DabMux. @@ -30,7 +30,7 @@ ETSI EN 300 401. This version has been modified, and contains additional features compared to the official one: -- configuration file support, see doc/example.config +- configuration file support, see doc/example.mux - timestamping support required for SFN - a ZeroMQ ETI output that can be used with CRC-DABMOD - a ZeroMQ dabplus input that can be used with fdk-aac-dabplus-zmq diff --git a/doc/DabMux.1 b/doc/DabMux.1 index a20e845..f56cddb 100644 --- a/doc/DabMux.1 +++ b/doc/DabMux.1 @@ -2,11 +2,18 @@ .\" groff -t -man -Tascii DabMux.1 .\" groff -t -man DabMux.1 > DabMux.ps .\" -.TH CRC-DABMUX 1 "2006-2010" "\(co Communications Research Centre Canada" "User Manual" +.TH CRC-DABMUX 1 "2006-2014" "\(co Communications Research Centre Canada and Matthias P. Braendli" "User Manual" .SH NAME crc-dabmux \- A software DAB multiplexer .SH SYNOPSIS +crc-dabmux can be used in two ways: either with command line options, or with an external configuration file. +It is not possible to use both simultaneously. +.SS External Configuration File: +.B crc-dabmux -e config-file.mux + +An example configuration file with explanations is located in doc/ +.SS Configuration Through Command-Line Arguments: .B crc-dabmux .BI [ ensemble ] .BI [ "subchannel1 subchannel2 ..." ] @@ -580,5 +587,7 @@ ETSI: TS 102 427 V1.1.1 (July 2005). .I Digital Audio Broadcasting (DAB); .I Data Broadcasting - MPEG-2 TS streaming -.SH AUTHOR +.SH AUTHORS Pascal Charest + +Matthias P. Braendli diff --git a/doc/example.config b/doc/example.config deleted file mode 100644 index 127d37a..0000000 --- a/doc/example.config +++ /dev/null @@ -1,141 +0,0 @@ -; This is the official configuration file example that -; serves as documentation for the config file reader. -; -; As you can see, comments are defined by semicolons. -; -; The format is called INFO format, and defined by boost property_tree: -; http://www.boost.org/doc/libs/1_41_0/doc/html/boost_propertytree/parsers.html#boost_propertytree.parsers.info_parser - -; 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) - dabmode 2 - - ; the number of ETI frames to generate (set to 0 to get an unlimited number) - nbframes 10 - - - ; boolean fileds can accept either false or true as values: - - ; Enable TCPLog on port 12222 - tcplog false - - ; Write the SCCA field useful for the Factum ETI analyser - writescca false - - ; Enable timestamp definition necessary for SFN - ; This also enables time encoding using the MNSC. - tist false -} - -; Some ensemble parameters -ensemble { - id 20479 - ecc 1249 ; Extended Country Code (decimal) - label "TuxMux" - shortlabel "Tux" -} - -; Definition of DAB services -services { - ; Each service has it's own unique identifier, that is - ; only used throughout the configuration file - funk { - label "Funk" - shortlabel "Fu" - pty 0 - language 0 - ; also supports id - } - luschtig { - label "Luschtig" - ; pty, language, shortlabel and id can be omitted, and will take default values - } - rick { - label "rick" - shortlabel "rick" - } - -} - -; The subchannels are defined in the corresponding section. -; supported types are : audio, bridge, data, enhancedpacket, -; dabplus, dmb, packet, test -subchannels { - funk { - type audio - inputfile "funk.mp2" - nonblock false - bitrate 128 - id 10 - protection 5 - } - luschtig { - type audio - inputfile "luschtig.mp2" - nonblock false - bitrate 128 - id 3 - ;protection 5 - } - rick { - type dabplus - inputfile "rick.dabp" - nonblock false - bitrate 96 - id 1 - protection 1 - } - - rick2 { - type dabplus - ; for dabplus types, you can use the ZeroMQ input (if compiled in) - ; with the following configuration: - inputfile "tcp://localhost:9000" - nonblock false - bitrate 96 - id 1 - protection 1 - } -} - -; For now, each component links one service to one subchannel -components { - ; the component unique identifiers are not used anywhere, but - ; are useful to disambiguate different components. - funky { - label funk - shortlabel fu - service funk - subchannel funk - } - - luschtigy { - label luschtig - shortlabel lu - service luschtig - subchannel luschtig - } - - ricky { - label "rick" - shortlabel "rick" - service rick - subchannel rick - } -} - -; A list of outputs, in the format -; unique_id "uri" -outputs { - foobar "fifo:///dev/stdout?type=raw" - -; ZeroMQ output example - ; zmq "zmq+tcp://*:8080" -} diff --git a/doc/example.mux b/doc/example.mux new file mode 100644 index 0000000..127d37a --- /dev/null +++ b/doc/example.mux @@ -0,0 +1,141 @@ +; This is the official configuration file example that +; serves as documentation for the config file reader. +; +; As you can see, comments are defined by semicolons. +; +; The format is called INFO format, and defined by boost property_tree: +; http://www.boost.org/doc/libs/1_41_0/doc/html/boost_propertytree/parsers.html#boost_propertytree.parsers.info_parser + +; 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) + dabmode 2 + + ; the number of ETI frames to generate (set to 0 to get an unlimited number) + nbframes 10 + + + ; boolean fileds can accept either false or true as values: + + ; Enable TCPLog on port 12222 + tcplog false + + ; Write the SCCA field useful for the Factum ETI analyser + writescca false + + ; Enable timestamp definition necessary for SFN + ; This also enables time encoding using the MNSC. + tist false +} + +; Some ensemble parameters +ensemble { + id 20479 + ecc 1249 ; Extended Country Code (decimal) + label "TuxMux" + shortlabel "Tux" +} + +; Definition of DAB services +services { + ; Each service has it's own unique identifier, that is + ; only used throughout the configuration file + funk { + label "Funk" + shortlabel "Fu" + pty 0 + language 0 + ; also supports id + } + luschtig { + label "Luschtig" + ; pty, language, shortlabel and id can be omitted, and will take default values + } + rick { + label "rick" + shortlabel "rick" + } + +} + +; The subchannels are defined in the corresponding section. +; supported types are : audio, bridge, data, enhancedpacket, +; dabplus, dmb, packet, test +subchannels { + funk { + type audio + inputfile "funk.mp2" + nonblock false + bitrate 128 + id 10 + protection 5 + } + luschtig { + type audio + inputfile "luschtig.mp2" + nonblock false + bitrate 128 + id 3 + ;protection 5 + } + rick { + type dabplus + inputfile "rick.dabp" + nonblock false + bitrate 96 + id 1 + protection 1 + } + + rick2 { + type dabplus + ; for dabplus types, you can use the ZeroMQ input (if compiled in) + ; with the following configuration: + inputfile "tcp://localhost:9000" + nonblock false + bitrate 96 + id 1 + protection 1 + } +} + +; For now, each component links one service to one subchannel +components { + ; the component unique identifiers are not used anywhere, but + ; are useful to disambiguate different components. + funky { + label funk + shortlabel fu + service funk + subchannel funk + } + + luschtigy { + label luschtig + shortlabel lu + service luschtig + subchannel luschtig + } + + ricky { + label "rick" + shortlabel "rick" + service rick + subchannel rick + } +} + +; A list of outputs, in the format +; unique_id "uri" +outputs { + foobar "fifo:///dev/stdout?type=raw" + +; ZeroMQ output example + ; zmq "zmq+tcp://*:8080" +} diff --git a/src/utils.cpp b/src/utils.cpp index 705d0cb..64a9bd1 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -3,7 +3,7 @@ 2011, 2012 Her Majesty the Queen in Right of Canada (Communications Research Center Canada) - Copyright (C) 2013, + Copyright (C) 2013,2014 Matthias P. Braendli, http://mpb.li, matthias.braendli@mpb.li */ /* @@ -53,7 +53,7 @@ void header_message() "Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012\n" "Her Majesty the Queen in Right of Canada,\n" "(Communications Research Centre Canada) All rights reserved.\n\n" - "Copyright (C) 2013\nMatthias P. Braendli, http://mpb.li\n\n"); + "Copyright (C) 2013,2014\nMatthias P. Braendli, http://mpb.li\n\n"); etiLog.printHeader(TcpLog::INFO, "Input URLs supported:"); #if defined(HAVE_INPUT_PRBS) etiLog.printHeader(TcpLog::INFO, " prbs"); -- cgit v1.2.3