RX-Stream after SetFrequency()

I have some issues regarding the RX stream after the LO is set to a new frequency. More specifically, I implemented a for-loop to capture data at several frequencies and noticed that the captured data does not correspond to the expected results. After using the lime::RFStream::Stop() and lime::RFStream::Start() methods at the beginning of each loop iteration, the system works just fine. Unfortunately, these methods are quite time-consuming. I suspect that this behavior has to do with internal buffer handling. The issue was reproduced with an identical setup.

I’m using an XTRX v3 in SISO mode (only RX-A enabled).

Pseudo Code:

config_stream_and_device()
for freq in frequencies :
Stream->Stop() //needed to capture properly
Stream->Start() //needed to capture properly
XTRX->SetFrequency(freq)
Stream->StreamRx()
readRXBuffer()

You can change LO while streaming, but because the data streaming is buffered you won’t be able to know at which time data from the new LO will appear. So you need to Stop() to clear internal buffers, then you can be guaranteed that the next received data will be with just the new LO.