From 03e29e9a1de1aeffa687e313e876c2d640e1f5b3 Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 30 Mar 2023 11:22:19 +0200 Subject: [PATCH] DATV demod: small optimizations (2) --- plugins/channelrx/demoddatv/datvdemod.cpp | 1 + plugins/channelrx/demoddatv/datvdemodsink.cpp | 9 +++++---- plugins/channelrx/demoddatv/datvdemodsink.h | 1 + plugins/channelrx/demoddatv/leansdr/dvbs2.h | 11 ++++++----- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/plugins/channelrx/demoddatv/datvdemod.cpp b/plugins/channelrx/demoddatv/datvdemod.cpp index b2f7c68fb..4dd10e1c3 100644 --- a/plugins/channelrx/demoddatv/datvdemod.cpp +++ b/plugins/channelrx/demoddatv/datvdemod.cpp @@ -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); diff --git a/plugins/channelrx/demoddatv/datvdemodsink.cpp b/plugins/channelrx/demoddatv/datvdemodsink.cpp index 1b878be9e..1bc9855cc 100644 --- a/plugins/channelrx/demoddatv/datvdemodsink.cpp +++ b/plugins/channelrx/demoddatv/datvdemodsink.cpp @@ -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(m_objScheduler, "rawiq", BUF_BASEBAND); - p_rawiq_writer = new leansdr::pipewriter(*p_rawiq); + p_rawiq_writer = new leansdr::pipewriter(*p_rawiq, m_RawIQMinWrite); p_preprocessed = p_rawiq; // NOTCH FILTER @@ -961,7 +962,7 @@ void DATVDemodSink::InitDATVS2Framework() //*************** p_rawiq = new leansdr::pipebuf(m_objScheduler, "rawiq", BUF_BASEBAND); - p_rawiq_writer = new leansdr::pipewriter(*p_rawiq); + p_rawiq_writer = new leansdr::pipewriter(*p_rawiq, m_RawIQMinWrite); p_preprocessed = p_rawiq; // NOTCH FILTER @@ -1148,7 +1149,7 @@ void DATVDemodSink::InitDATVS2Framework() p_verrcount) ; leansdr::s2_fecdec_helper *fecdec = (leansdr::s2_fecdec_helper *) 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); } } } diff --git a/plugins/channelrx/demoddatv/datvdemodsink.h b/plugins/channelrx/demoddatv/datvdemodsink.h index a4f697efb..5a6a79b43 100644 --- a/plugins/channelrx/demoddatv/datvdemodsink.h +++ b/plugins/channelrx/demoddatv/datvdemodsink.h @@ -219,6 +219,7 @@ private: leansdr::pipebuf *p_rawiq; leansdr::pipewriter *p_rawiq_writer; leansdr::pipebuf *p_preprocessed; + static const int m_RawIQMinWrite = 1; // NOTCH FILTER leansdr::auto_notch *r_auto_notch; diff --git a/plugins/channelrx/demoddatv/leansdr/dvbs2.h b/plugins/channelrx/demoddatv/leansdr/dvbs2.h index 8c6541f74..f025860af 100644 --- a/plugins/channelrx/demoddatv/leansdr/dvbs2.h +++ b/plugins/channelrx/demoddatv/leansdr/dvbs2.h @@ -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 *_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;