Difference between revisions of "ODR-DabMux"

From OpenDigitalRadio
Jump to navigationJump to search
m
 
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
CRC-DabMux is the free open source [[DAB multiplexing|DAB Multiplexer]] developed by Communication Research Center (CRC) from Canada. It is a command line tool.
+
ODR-DabMux is a free open source [[DAB multiplexing|DAB Multiplexer]] initially developed by Communication Research Center (CRC) from Canada, and subsequently
 +
forked by Opendigitalradio. It is a command line tool.
  
CRC have stopped releasing new versions, and the development now continues on [http://github.com/mpbraendli GitHub] with releases available on http://mpb.li
+
The development is done publicly on [http://github.com/Opendigitalradio GitHub] with releases available as git tags. The git master branch always points to the latest release, the next branch is where development happens.
  
This page describes how to compile crc-dabmux.
+
The main communication channel is the [https://groups.google.com/forum/#!forum/crc-mmbtools CRC-mmbTools Google Group mailing list]
  
==More information==
 
  
Description can be found on http://mmbtools.crc.ca/content/view/39/65/
 
  
The last version published by CRC is [http://mmbtools.crc.ca/component/option,com_docman/task,doc_download/gid,33/ version 0.3.0.4], on which the latest developments are based.
 
  
==Build information for CRC-DABMUX-0.3.0.4-mpb==
+
==Build information for ODR-DabMux==
  
 +
Install the required dependencies according to the information in [https://github.com/Opendigitalradio/ODR-DabMux/blob/master/INSTALL.md INSTALL.md] file.
  
 +
Each time you update from the git repository (either git checkout or git pull) you should do
 +
./bootstrap.sh
 +
to re-generate the autotools scripts and generate the ./configure script
  
===Prerequisites===
 
  
You will need boost at least version 1.42. The one from your distribution is probably fine, and if you have installed GNURadio or UHD, you will already have it.
+
==Usage==
  
If you want to use the zeromq inputs or outputs, you need a recent (4.0.3 is best) version of [http://zeromq.org/ ZeroMQ]. It is probably preferred to install it from source:
+
Please follow the steps in the [http://opendigitalradio.github.io/mmbtools-doc/mmbtools.pdf guide] to get up and running.
  
wget http://download.zeromq.org/zeromq-4.0.3.tar.gz
 
cd zeromq-4.0.3
 
./configure
 
make
 
sudo make install
 
  
This will install it into /usr/local
+
===Configuration file===
 +
The full configuration can also be specified in a configuration file.
  
CRC-DabMux also depends on [http://www.ka9q.net/code/fec/ libfec from Phil Karn]. On 64-bit machines, the original libfec doesn't compile (" fec.h:267: Error: bad register name `%dil' "). A patched version that compiles on x86_64 (and even on ARM) is available [https://github.com/Opendigitalradio/ka9q-fec/archive/master.zip on GitHub (.zip)]
+
The example configuration file that is included in doc ([https://github.com/Opendigitalradio/ODR-DabMux/blob/master/doc/example.mux example.mux]) contains an example with a multiplex consisting of two services. The example file is commented, and is a good example to build your own. The [https://github.com/Opendigitalradio/ODR-DabMux/blob/master/doc/advanced.mux advanced.mux] presents more options.
  
 +
To run odr-dabmux with a configuration file, run
 +
odr-dabmux my_config.mux
  
===Compilation===
+
==Information from the ODR Archives==
Once the prerequisites are installed, do
 
./configure --with-debug-malloc=no --disable-debug --enable-input-zeromq --enable-output-zeromq
 
make
 
sudo make install
 
  
 +
Documentation and descriptions on CRC-DabMux can be found on http://mmbtools.crc.ca/content/view/39/65/
  
or, if you don't have zeromq:
+
The last version published by CRC is [http://mmbtools.crc.ca/component/option,com_docman/task,doc_download/gid,33/ version 0.3.0.4], on which the latest developments are based.
./configure --with-debug-malloc=no --disable-debug
 
make
 
sudo make install
 
 
 
then you can execute, as a test
 
crc-dabmux -h
 
 
 
When building, be careful to disable debugging, otherwise there will be lot of wasted CPU usage.
 
 
 
 
 
===Compilation from the git repository===
 
If you cloned the git repository, you might need to call
 
./bootstrap.sh
 
to re-generate the autotools scripts and generate the ./configure script
 
 
 
After that, it's the same as above
 
  
  
 
===Patch to increase page size===
 
===Patch to increase page size===
Some glitches have been noticed on some machines. They are due to underruns in the FIFO. This patch increases the buffer sizes in the mux. wrning, this patch will also increase the delay. To apply it use, the patch command. (for CRC-DabMux <=0.3.0.4)
+
Some glitches have been noticed on some machines. They are due to underruns in the FIFO. This patch increases the buffer sizes in the mux. wrning, this patch will also increase the delay. To apply it use, the patch command. (for CRC-DabMux <= 0.3.0.4)
  
 
  --- src/dabInputFifo.cpp.org 2011-09-27 10:08:35.202323204 -0400
 
  --- src/dabInputFifo.cpp.org 2011-09-27 10:08:35.202323204 -0400

Latest revision as of 09:27, 23 April 2019

ODR-DabMux is a free open source DAB Multiplexer initially developed by Communication Research Center (CRC) from Canada, and subsequently forked by Opendigitalradio. It is a command line tool.

The development is done publicly on GitHub with releases available as git tags. The git master branch always points to the latest release, the next branch is where development happens.

The main communication channel is the CRC-mmbTools Google Group mailing list



Build information for ODR-DabMux

Install the required dependencies according to the information in INSTALL.md file.

Each time you update from the git repository (either git checkout or git pull) you should do

./bootstrap.sh

to re-generate the autotools scripts and generate the ./configure script


Usage

Please follow the steps in the guide to get up and running.


Configuration file

The full configuration can also be specified in a configuration file.

The example configuration file that is included in doc (example.mux) contains an example with a multiplex consisting of two services. The example file is commented, and is a good example to build your own. The advanced.mux presents more options.

To run odr-dabmux with a configuration file, run

odr-dabmux my_config.mux

Information from the ODR Archives

Documentation and descriptions on CRC-DabMux can be found on http://mmbtools.crc.ca/content/view/39/65/

The last version published by CRC is version 0.3.0.4, on which the latest developments are based.


Patch to increase page size

Some glitches have been noticed on some machines. They are due to underruns in the FIFO. This patch increases the buffer sizes in the mux. wrning, this patch will also increase the delay. To apply it use, the patch command. (for CRC-DabMux <= 0.3.0.4)

--- src/dabInputFifo.cpp.org	2011-09-27 10:08:35.202323204 -0400
+++ src/dabInputFifo.cpp	2011-09-27 10:13:57.638315966 -0400
@@ -169,11 +169,12 @@
     if (data->buffer != NULL) {
         delete data->buffer;
     }
-    if (size == 0) {
-        size = 1024;
-    }
-    data->buffer = new unsigned char[size * 16];
     data->maxSize = size * 16;
+    int minSize = 2*getpagesize();
+    while (data->maxSize < minSize) {
+        data->maxSize += size;
+    }
+    data->buffer = new unsigned char[data->maxSize];
 #ifdef _WIN32
     ReleaseSemaphore(data->semBuffer, 1, NULL);
 #else


See the manpage for more info: