mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-09-28 15:56:33 -04:00
DATV demod: small optimizations (2)
This commit is contained in:
parent
d70f431ec2
commit
03e29e9a1d
@ -46,6 +46,7 @@ DATVDemod::DATVDemod(DeviceAPI *deviceAPI) :
|
|||||||
{
|
{
|
||||||
qDebug("DATVDemod::DATVDemod");
|
qDebug("DATVDemod::DATVDemod");
|
||||||
setObjectName(m_channelId);
|
setObjectName(m_channelId);
|
||||||
|
m_thread.setObjectName("bbDATVDemod");
|
||||||
m_basebandSink = new DATVDemodBaseband();
|
m_basebandSink = new DATVDemodBaseband();
|
||||||
m_basebandSink->moveToThread(&m_thread);
|
m_basebandSink->moveToThread(&m_thread);
|
||||||
|
|
||||||
|
@ -95,6 +95,7 @@ void DATVDemodSink::SetVideoRender(DATVideoRender *screen)
|
|||||||
m_videoRender = screen;
|
m_videoRender = screen;
|
||||||
m_videoRender->setAudioFIFO(&m_audioFifo);
|
m_videoRender->setAudioFIFO(&m_audioFifo);
|
||||||
m_videoThread = new DATVideoRenderThread(m_videoRender, m_videoStream);
|
m_videoThread = new DATVideoRenderThread(m_videoRender, m_videoStream);
|
||||||
|
m_videoThread->setObjectName("vtDATVDemodSink");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DATVDemodSink::audioActive()
|
bool DATVDemodSink::audioActive()
|
||||||
@ -630,7 +631,7 @@ void DATVDemodSink::InitDATVFramework()
|
|||||||
|
|
||||||
//***************
|
//***************
|
||||||
p_rawiq = new leansdr::pipebuf<leansdr::cf32>(m_objScheduler, "rawiq", BUF_BASEBAND);
|
p_rawiq = new leansdr::pipebuf<leansdr::cf32>(m_objScheduler, "rawiq", BUF_BASEBAND);
|
||||||
p_rawiq_writer = new leansdr::pipewriter<leansdr::cf32>(*p_rawiq);
|
p_rawiq_writer = new leansdr::pipewriter<leansdr::cf32>(*p_rawiq, m_RawIQMinWrite);
|
||||||
p_preprocessed = p_rawiq;
|
p_preprocessed = p_rawiq;
|
||||||
|
|
||||||
// NOTCH FILTER
|
// NOTCH FILTER
|
||||||
@ -961,7 +962,7 @@ void DATVDemodSink::InitDATVS2Framework()
|
|||||||
|
|
||||||
//***************
|
//***************
|
||||||
p_rawiq = new leansdr::pipebuf<leansdr::cf32>(m_objScheduler, "rawiq", BUF_BASEBAND);
|
p_rawiq = new leansdr::pipebuf<leansdr::cf32>(m_objScheduler, "rawiq", BUF_BASEBAND);
|
||||||
p_rawiq_writer = new leansdr::pipewriter<leansdr::cf32>(*p_rawiq);
|
p_rawiq_writer = new leansdr::pipewriter<leansdr::cf32>(*p_rawiq, m_RawIQMinWrite);
|
||||||
p_preprocessed = p_rawiq;
|
p_preprocessed = p_rawiq;
|
||||||
|
|
||||||
// NOTCH FILTER
|
// NOTCH FILTER
|
||||||
@ -1148,7 +1149,7 @@ void DATVDemodSink::InitDATVS2Framework()
|
|||||||
p_verrcount)
|
p_verrcount)
|
||||||
;
|
;
|
||||||
leansdr::s2_fecdec_helper<leansdr::llr_t, leansdr::llr_sb> *fecdec = (leansdr::s2_fecdec_helper<leansdr::llr_t, leansdr::llr_sb> *) r_fecdechelper;
|
leansdr::s2_fecdec_helper<leansdr::llr_t, leansdr::llr_sb> *fecdec = (leansdr::s2_fecdec_helper<leansdr::llr_t, leansdr::llr_sb> *) r_fecdechelper;
|
||||||
const int nhelpers = 6;
|
const int nhelpers = 2;
|
||||||
fecdec->nhelpers = nhelpers;
|
fecdec->nhelpers = nhelpers;
|
||||||
fecdec->must_buffer = false;
|
fecdec->must_buffer = false;
|
||||||
fecdec->max_trials = m_settings.m_softLDPCMaxTrials;
|
fecdec->max_trials = m_settings.m_softLDPCMaxTrials;
|
||||||
@ -1324,7 +1325,7 @@ void DATVDemodSink::feed(const SampleVector::const_iterator& begin, const Sample
|
|||||||
m_objScheduler->step();
|
m_objScheduler->step();
|
||||||
|
|
||||||
m_lngReadIQ = 0;
|
m_lngReadIQ = 0;
|
||||||
p_rawiq_writer->reset();
|
p_rawiq_writer->reset(m_RawIQMinWrite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,6 +219,7 @@ private:
|
|||||||
leansdr::pipebuf<leansdr::cf32> *p_rawiq;
|
leansdr::pipebuf<leansdr::cf32> *p_rawiq;
|
||||||
leansdr::pipewriter<leansdr::cf32> *p_rawiq_writer;
|
leansdr::pipewriter<leansdr::cf32> *p_rawiq_writer;
|
||||||
leansdr::pipebuf<leansdr::cf32> *p_preprocessed;
|
leansdr::pipebuf<leansdr::cf32> *p_preprocessed;
|
||||||
|
static const int m_RawIQMinWrite = 1;
|
||||||
|
|
||||||
// NOTCH FILTER
|
// NOTCH FILTER
|
||||||
leansdr::auto_notch<leansdr::f32> *r_auto_notch;
|
leansdr::auto_notch<leansdr::f32> *r_auto_notch;
|
||||||
|
@ -3397,7 +3397,7 @@ struct s2_fecdec_helper : runnable
|
|||||||
p->procs = new helper_instance[nhelpers];
|
p->procs = new helper_instance[nhelpers];
|
||||||
|
|
||||||
for (int i = 0; i < nhelpers; ++i) {
|
for (int i = 0; i < nhelpers; ++i) {
|
||||||
spawn_helper(&p->procs[i], pls);
|
spawn_helper(&p->procs[i], pls, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
p->nprocs = nhelpers;
|
p->nprocs = nhelpers;
|
||||||
@ -3449,7 +3449,7 @@ struct s2_fecdec_helper : runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Spawn a helper process.
|
// Spawn a helper process.
|
||||||
void spawn_helper(helper_instance *h, const s2_pls *pls)
|
void spawn_helper(helper_instance *h, const s2_pls *pls, imt)
|
||||||
{
|
{
|
||||||
if (sch->debug) {
|
if (sch->debug) {
|
||||||
fprintf(stderr, "Spawning LDPC helper: modcod=%d sf=%d\n", pls->modcod, pls->sf);
|
fprintf(stderr, "Spawning LDPC helper: modcod=%d sf=%d\n", pls->modcod, pls->sf);
|
||||||
@ -3639,7 +3639,7 @@ struct s2_fecdec_helper : runnable
|
|||||||
pipebuf<int> *_errcount = nullptr
|
pipebuf<int> *_errcount = nullptr
|
||||||
) :
|
) :
|
||||||
runnable(sch, "S2 fecdec io"),
|
runnable(sch, "S2 fecdec io"),
|
||||||
batch_size(16),
|
batch_size(32),
|
||||||
nhelpers(1),
|
nhelpers(1),
|
||||||
must_buffer(false),
|
must_buffer(false),
|
||||||
max_trials(8),
|
max_trials(8),
|
||||||
@ -3771,7 +3771,7 @@ struct s2_fecdec_helper : runnable
|
|||||||
p->procs = new helper_instance[nhelpers];
|
p->procs = new helper_instance[nhelpers];
|
||||||
|
|
||||||
for (int i = 0; i < nhelpers; ++i) {
|
for (int i = 0; i < nhelpers; ++i) {
|
||||||
spawn_helper(&p->procs[i], pls);
|
spawn_helper(&p->procs[i], pls, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
p->nprocs = nhelpers;
|
p->nprocs = nhelpers;
|
||||||
@ -3813,10 +3813,11 @@ struct s2_fecdec_helper : runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Spawn a helper thread.
|
// Spawn a helper thread.
|
||||||
void spawn_helper(helper_instance *h, const s2_pls *pls)
|
void spawn_helper(helper_instance *h, const s2_pls *pls, int helper_index)
|
||||||
{
|
{
|
||||||
qDebug() << "s2_fecdec_helper: Spawning LDPC thread: modcod=" << pls->modcod << " sf=" << pls->sf;
|
qDebug() << "s2_fecdec_helper: Spawning LDPC thread: modcod=" << pls->modcod << " sf=" << pls->sf;
|
||||||
h->m_thread = new QThread();
|
h->m_thread = new QThread();
|
||||||
|
h->m_thread->setObjectName(QString("ldpcDVBS2_%1").arg(helper_index));
|
||||||
h->m_worker = new LDPCWorker(pls->modcod, max_trials, batch_size, pls->sf);
|
h->m_worker = new LDPCWorker(pls->modcod, max_trials, batch_size, pls->sf);
|
||||||
h->m_worker->moveToThread(h->m_thread);
|
h->m_worker->moveToThread(h->m_thread);
|
||||||
h->batch_size = batch_size;
|
h->batch_size = batch_size;
|
||||||
|
Loading…
Reference in New Issue
Block a user