ODR-DabMux
m |
Revision as of 10:59, 31 January 2014
CRC-DabMux is the free open source DAB Multiplexer developed by Communication Research Center (CRC) from Canada. It is a command line tool.
CRC have stopped releasing new versions, and the development now continues on GitHub with releases available on http://mpb.li
Contents |
More information
Description 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.
Build information for CRC-DABMUX-0.3.0.4-mpb
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.
If you want to use the zeromq inputs or outputs, you need a recent (4.0.3 is best) version of ZeroMQ. It is probably preferred to install it from source:
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
CRC-DabMux also depends on 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 on GitHub (.zip)
Compilation
Once the prerequisites are installed, do
./configure --with-debug-malloc=no --disable-debug --enable-input-zeromq --enable-output-zeromq make sudo make install
or, if you don't have zeromq:
./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
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: