gr-osmosdr/lib/soapy
Anton Blanchard 49f9b2df2a I'm using an Airspy HF+ Discovery with the Soapy driver. Whenever I turn AGC off it stops receiving samples.
On closer inspection, switching AGC off results in samples stalling for
an extended period (hundreds of milliseconds). As such, we hit the
timeout in SoapyAirspyHF::readStream() and return SOAPY_SDR_TIMEOUT
(-1).

Things go wrong at this point. It takes a long time before readStream()
is called again, presumably because we returned 0 from work(). By this
time our buffers have overflown, readStream() returns SOAPY_SDR_OVERFLOW
(-2) and work() returns 0. We loop forever, continually overflowing
buffers.

Fix this by looping in soapy_source_c::work() when ->readStream returns
SOAPY_SDR_OVERFLOW so that we consume the buffers straight away.

Signed-off-by: Anton Blanchard <anton at ozlabs.org>

Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-08-02 23:50:59 +02:00
..
CMakeLists.txt cmake: Go back CMake min ver. 3.8 by removing need for CMP0079 2020-08-02 22:17:05 +02:00
soapy_common.cc soapy: support step size in gain ranges 2017-02-02 11:33:34 -08:00
soapy_common.h soapy: support step size in gain ranges 2017-02-02 11:33:34 -08:00
soapy_sink_c.cc soapy - correct constant for frequency correction 2017-04-21 11:29:30 -07:00
soapy_sink_c.h soapy: fixes from last commit w/ field test 2015-02-16 21:04:05 -08:00
soapy_source_c.cc I'm using an Airspy HF+ Discovery with the Soapy driver. Whenever I turn AGC off it stops receiving samples. 2020-08-02 23:50:59 +02:00
soapy_source_c.h soapy: fixes from last commit w/ field test 2015-02-16 21:04:05 -08:00