From 2612d6793edb16cdd172fe29e31c49e4817e1357 Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 19 Jul 2022 17:42:24 +0200 Subject: [PATCH] DATV demod: use non blocking read in ldpctool to fix issue in PR #1345 --- plugins/channelrx/demoddatv/leansdr/dvbs2.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/channelrx/demoddatv/leansdr/dvbs2.h b/plugins/channelrx/demoddatv/leansdr/dvbs2.h index 210c2b380..6aed0bfc2 100644 --- a/plugins/channelrx/demoddatv/leansdr/dvbs2.h +++ b/plugins/channelrx/demoddatv/leansdr/dvbs2.h @@ -3827,10 +3827,16 @@ struct s2_fecdec_helper : runnable const s2_pls *pls = &job->pls; int iosize = (pls->framebits() / 8) * sizeof(ldpc_buf[0]); - // Blocking read - do we need to return faster? - // If so, call m_worker->dataAvailable() - QByteArray data = job->h->m_worker->data(); - memcpy(ldpc_buf, data.data(), data.size()); + // Non blocking read - will do the next time if no adata is available + if (job->h->m_worker->dataAvailable()) + { + QByteArray data = job->h->m_worker->data(); + memcpy(ldpc_buf, data.data(), data.size()); + } + else + { + return; + } --job->h->b_out; // Decode BCH.