Improved Tx source channels FIFO processing
There was a long lasting problem where the multi threading in source channels was not effective while for Rx the channel sinks are really running concurrently. This fix should largely improve fluidity when using multiple or even a single source channel.
- Single channel: the device sink FIFO is directly connected to the source channel but signals are used for read and write so the device and channel threads can effectively run concurrently.
- Multiple channel: the device sink engine hosts the channel mixing process. It uses the channels FIFOs again relying on signals so the channels can run concurrently. Then the mixed signal is written to the device sink FIFO. This mixing process is inevitable and has no equivalent on the Rx side. Hence there could still be a performance hit on some systems. Therefore the warning message when adding more than one source is maintained. The situation should be significantly improved though.
DSD demodulator: lower the audio high pass frequency cutoff
You will need version 1.7.4 of dsdcc to support this with the default mbelib support. A Butterworth filter with -3 dB cutoff at 240 Hz is used instead of the Chebyshev with a -3 dB cutoff at 480 Hz used previously. Both are 2 pole IIR filters..
Other changes and fixes
- Bug fixes on NFM, WFM modulators and UDP sink plugins that were introduced in previous revision
- Code fix on BFM demodulator that makes the compiler use less resources. This makes the BFM plugin compilable on a Rpi3 host.
- LimeSDR: use qDebug() differently so that it fixes a compilation issue on openSUSE builds with Qt 5.10