DATV demod: small optimizations (2)

This commit is contained in:
f4exb 2023-03-30 11:22:19 +02:00
parent d70f431ec2
commit 03e29e9a1d
4 changed files with 13 additions and 9 deletions

View File

@ -46,6 +46,7 @@ DATVDemod::DATVDemod(DeviceAPI *deviceAPI) :
{
qDebug("DATVDemod::DATVDemod");
setObjectName(m_channelId);
m_thread.setObjectName("bbDATVDemod");
m_basebandSink = new DATVDemodBaseband();
m_basebandSink->moveToThread(&m_thread);

View File

@ -95,6 +95,7 @@ void DATVDemodSink::SetVideoRender(DATVideoRender *screen)
m_videoRender = screen;
m_videoRender->setAudioFIFO(&m_audioFifo);
m_videoThread = new DATVideoRenderThread(m_videoRender, m_videoStream);
m_videoThread->setObjectName("vtDATVDemodSink");
}
bool DATVDemodSink::audioActive()
@ -630,7 +631,7 @@ void DATVDemodSink::InitDATVFramework()
//***************
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;
// NOTCH FILTER
@ -961,7 +962,7 @@ void DATVDemodSink::InitDATVS2Framework()
//***************
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;
// NOTCH FILTER
@ -1148,7 +1149,7 @@ void DATVDemodSink::InitDATVS2Framework()
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;
const int nhelpers = 6;
const int nhelpers = 2;
fecdec->nhelpers = nhelpers;
fecdec->must_buffer = false;
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_lngReadIQ = 0;
p_rawiq_writer->reset();
p_rawiq_writer->reset(m_RawIQMinWrite);
}
}
}

View File

@ -219,6 +219,7 @@ private:
leansdr::pipebuf<leansdr::cf32> *p_rawiq;
leansdr::pipewriter<leansdr::cf32> *p_rawiq_writer;
leansdr::pipebuf<leansdr::cf32> *p_preprocessed;
static const int m_RawIQMinWrite = 1;
// NOTCH FILTER
leansdr::auto_notch<leansdr::f32> *r_auto_notch;

View File

@ -3397,7 +3397,7 @@ struct s2_fecdec_helper : runnable
p->procs = new helper_instance[nhelpers];
for (int i = 0; i < nhelpers; ++i) {
spawn_helper(&p->procs[i], pls);
spawn_helper(&p->procs[i], pls, i);
}
p->nprocs = nhelpers;
@ -3449,7 +3449,7 @@ struct s2_fecdec_helper : runnable
}
// 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) {
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
) :
runnable(sch, "S2 fecdec io"),
batch_size(16),
batch_size(32),
nhelpers(1),
must_buffer(false),
max_trials(8),
@ -3771,7 +3771,7 @@ struct s2_fecdec_helper : runnable
p->procs = new helper_instance[nhelpers];
for (int i = 0; i < nhelpers; ++i) {
spawn_helper(&p->procs[i], pls);
spawn_helper(&p->procs[i], pls, i);
}
p->nprocs = nhelpers;
@ -3813,10 +3813,11 @@ struct s2_fecdec_helper : runnable
}
// 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;
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->moveToThread(h->m_thread);
h->batch_size = batch_size;