mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-02-03 09:44:01 -05:00
Deep redesign: Changed Funcube read block from 8192 to 2048 bytes to fix fluidity problem
This commit is contained in:
parent
30b51b5888
commit
f4f9a74269
@ -105,7 +105,7 @@ bool FCDInput::start(int device)
|
|||||||
|
|
||||||
applySettings(m_settings, true);
|
applySettings(m_settings, true);
|
||||||
|
|
||||||
if(!m_sampleFifo.setSize(4096*16))
|
if(!m_sampleFifo.setSize(96000*4))
|
||||||
{
|
{
|
||||||
qCritical("Could not allocate SampleFifo");
|
qCritical("Could not allocate SampleFifo");
|
||||||
return false;
|
return false;
|
||||||
|
@ -24,7 +24,7 @@ FCDThread::FCDThread(SampleFifo* sampleFifo, QObject* parent) :
|
|||||||
QThread(parent),
|
QThread(parent),
|
||||||
fcd_handle(NULL),
|
fcd_handle(NULL),
|
||||||
m_running(false),
|
m_running(false),
|
||||||
m_convertBuffer(BLOCKSIZE),
|
m_convertBuffer(FCD_BLOCKSIZE),
|
||||||
m_sampleFifo(sampleFifo)
|
m_sampleFifo(sampleFifo)
|
||||||
{
|
{
|
||||||
start();
|
start();
|
||||||
@ -48,7 +48,7 @@ void FCDThread::run()
|
|||||||
|
|
||||||
m_running = true;
|
m_running = true;
|
||||||
while(m_running) {
|
while(m_running) {
|
||||||
if ( work(BLOCKSIZE) < 0)
|
if ( work(FCD_BLOCKSIZE) < 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
CloseSource();
|
CloseSource();
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include <alsa/asoundlib.h>
|
#include <alsa/asoundlib.h>
|
||||||
|
|
||||||
#define FCDPP_RATE 192000 // FIXME: The Pro / Pro+ switch should be handled better than this!
|
#define FCDPP_RATE 192000 // FIXME: The Pro / Pro+ switch should be handled better than this!
|
||||||
#define BLOCKSIZE 8192
|
#define FCD_BLOCKSIZE (1<<11)
|
||||||
|
|
||||||
class FCDThread : public QThread {
|
class FCDThread : public QThread {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -20,13 +20,13 @@
|
|||||||
#include "rtlsdrthread.h"
|
#include "rtlsdrthread.h"
|
||||||
#include "dsp/samplefifo.h"
|
#include "dsp/samplefifo.h"
|
||||||
|
|
||||||
#define BLOCKSIZE 16384
|
#define FCD_BLOCKSIZE 16384
|
||||||
|
|
||||||
RTLSDRThread::RTLSDRThread(rtlsdr_dev_t* dev, SampleFifo* sampleFifo, QObject* parent) :
|
RTLSDRThread::RTLSDRThread(rtlsdr_dev_t* dev, SampleFifo* sampleFifo, QObject* parent) :
|
||||||
QThread(parent),
|
QThread(parent),
|
||||||
m_running(false),
|
m_running(false),
|
||||||
m_dev(dev),
|
m_dev(dev),
|
||||||
m_convertBuffer(BLOCKSIZE),
|
m_convertBuffer(FCD_BLOCKSIZE),
|
||||||
m_sampleFifo(sampleFifo),
|
m_sampleFifo(sampleFifo),
|
||||||
m_samplerate(288000),
|
m_samplerate(288000),
|
||||||
m_log2Decim(4)
|
m_log2Decim(4)
|
||||||
@ -71,7 +71,7 @@ void RTLSDRThread::run()
|
|||||||
m_startWaiter.wakeAll();
|
m_startWaiter.wakeAll();
|
||||||
|
|
||||||
while(m_running) {
|
while(m_running) {
|
||||||
if((res = rtlsdr_read_async(m_dev, &RTLSDRThread::callbackHelper, this, 32, BLOCKSIZE)) < 0) {
|
if((res = rtlsdr_read_async(m_dev, &RTLSDRThread::callbackHelper, this, 32, FCD_BLOCKSIZE)) < 0) {
|
||||||
qCritical("RTLSDRThread: async error: %s", strerror(errno));
|
qCritical("RTLSDRThread: async error: %s", strerror(errno));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
V4LThread::V4LThread(SampleFifo* sampleFifo, double frequency, QObject* parent) :
|
V4LThread::V4LThread(SampleFifo* sampleFifo, double frequency, QObject* parent) :
|
||||||
QThread(parent),
|
QThread(parent),
|
||||||
m_running(false),
|
m_running(false),
|
||||||
m_convertBuffer(BLOCKSIZE),
|
m_convertBuffer(FCD_BLOCKSIZE),
|
||||||
m_sampleFifo(sampleFifo)
|
m_sampleFifo(sampleFifo)
|
||||||
{
|
{
|
||||||
centerFreq = frequency;
|
centerFreq = frequency;
|
||||||
@ -48,7 +48,7 @@ void V4LThread::run()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
while(m_running) {
|
while(m_running) {
|
||||||
work(BLOCKSIZE);
|
work(FCD_BLOCKSIZE);
|
||||||
}
|
}
|
||||||
CloseSource();
|
CloseSource();
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
// lowest samplerate in the kernel is 1.2M, but this works better
|
// lowest samplerate in the kernel is 1.2M, but this works better
|
||||||
#define SAMPLERATE 1536000
|
#define SAMPLERATE 1536000
|
||||||
#define IF_BANDWIDTH 300000
|
#define IF_BANDWIDTH 300000
|
||||||
#define BLOCKSIZE 8192
|
#define FCD_BLOCKSIZE 8192
|
||||||
|
|
||||||
class V4LThread : public QThread {
|
class V4LThread : public QThread {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
V4LThread::V4LThread(SampleFifo* sampleFifo, double frequency, QObject* parent) :
|
V4LThread::V4LThread(SampleFifo* sampleFifo, double frequency, QObject* parent) :
|
||||||
QThread(parent),
|
QThread(parent),
|
||||||
m_running(false),
|
m_running(false),
|
||||||
m_convertBuffer(BLOCKSIZE),
|
m_convertBuffer(FCD_BLOCKSIZE),
|
||||||
m_sampleFifo(sampleFifo)
|
m_sampleFifo(sampleFifo)
|
||||||
{
|
{
|
||||||
centerFreq = frequency;
|
centerFreq = frequency;
|
||||||
@ -48,7 +48,7 @@ void V4LThread::run()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
while(m_running) {
|
while(m_running) {
|
||||||
work(BLOCKSIZE);
|
work(FCD_BLOCKSIZE);
|
||||||
}
|
}
|
||||||
CloseSource();
|
CloseSource();
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "dsp/inthalfbandfilter.h"
|
#include "dsp/inthalfbandfilter.h"
|
||||||
|
|
||||||
#define SAMPLERATE 1024000
|
#define SAMPLERATE 1024000
|
||||||
#define BLOCKSIZE 4096
|
#define FCD_BLOCKSIZE 4096
|
||||||
|
|
||||||
class V4LThread : public QThread {
|
class V4LThread : public QThread {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
Loading…
Reference in New Issue
Block a user