This change removes all usage of boost::mutex,
boost::mutex::scoped_lock, boost::unique_lock, and
boost::condition_variable. It also removes usage of boost::shared_ptr
and boost::weak_ptr outside of block definitions (which must continue to
use Boost until GNU Radio 3.9).
Signed-off-by: Eric Wild <ewild@sysmocom.de>
CMake 3.13 is not present in older (~2 years old)
Linux distributions and GNU Radio requires min CMake
version 3.8.
All that is needed in order to avoid bumping CMake version
is to not use 'target_link_libraries' in subdirectories.
Here this is done by creating a list of needed
libraries and adding them for linking at the end (like
it was done in gr-osmosdr before porting to GNU Radio 3.8).
One thing that is lost here is 'PRIVATE' statement in case
of FCD libraries linking.
Signed-off-by: Eric Wild <ewild@sysmocom.de>
The _lut is being indexed by I + Q (16 bits = 65536 entries), however
both samples can be processed independently, resulting in 8-bit LUT.
Saves a bit of RAM and CPU cache.
When size of output buffer was larger than size of input buffer,
uderflow occured because no check on number of avalilable data was done.
This also improves buffer filling for large output buffers, fill output
until anny input is available.
folowing rtl-sdr commit 89f73b183f2dac9c0dd75beca4cf2f77f20c4a36
So far we had 32 * 256KB which was a bit overkill, 15 are more than
enough.
15 was chosen instead of 16 because at least on Linux there seems to be
a system-wide limit of 63 transfers (when they are 256KB large), so 4
dongles can be used on a single machine without lowering the default
transfer number.
Several tests have shown that this is the
highest sample rate where no samples
are being dropped on rtl devices.
Signed-off-by: Steve Markgraf <steve@steve-m.de>
received from Juha Vierinen:
A student here noticed that there is dc bias even with the rafael tuner.
We looked into this issue and found that using 127.4f instead of 127.5f
removes this bias. I assume this is associated with a bug in the digital
downconversion of the RTL chip. This change fixes the problem.
This can be used to enable the direct sampling mode
of an rtlsdr stick, e.g.:
For input 1 (In-phase ADC):
rtl=0,direct_samp=1
For input 2 (Quadrature ADC):
rtl=0,direct_samp=2
Signed-off-by: Steve Markgraf <steve@steve-m.de>