ODR-DabMux
(22 intermediate revisions by 2 users not shown) |
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
Contents |
[edit] 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
[edit] Usage
Please follow the steps in the guide to get up and running.
[edit] 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
[edit] 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.
[edit] 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: