[mythtv-commits] Ticket #13391: Incorrect "Timed out" message with DVB-T channelscan
MythTV
noreply at mythtv.org
Mon Jan 28 13:55:52 UTC 2019
#13391: Incorrect "Timed out" message with DVB-T channelscan
-------------------------------------+-------------------------------------
Reporter: Klaas de Waal | Owner: (none)
Type: Patch - Bug Fix | Status: new
Priority: minor | Milestone: needs_triage
Component: MythTV - Channel | Version: Master Head
Scanner | Keywords: DVB DVB-T NIT timeout
Severity: medium | channelscan
Ticket locked: 0 |
-------------------------------------+-------------------------------------
A channelscan with mythtv-setup of the local DVB-T signal gives sometimes
"Timed out" messages:
{{{
2019-01-26 23:33:07.357716 I ChannelScanSM(/dev/dvb/adapter1/frontend0):
Transport ID 2244 -- Timed out, 19 possible channels
}}}
The problem is that the "Timed out" messages are also given sometimes when
a transport is scanned correct.\\
The code for this is found in channelscan_sm.cpp, function
ChannelScanSM::UpdateChannelInfo().\\
The "Timed out" message depends on the following comparison:
{{{
if ((m_timer.elapsed() > (int)m_channelTimeout))
}}}
However, the scanning code allows for larger timeout times if there are
DVB (or ATSC/MPEG) tables needed, as documented in lines 68-75 of
channelscan_sm.cpp:
{{{
/// SDT's should be sent every 2 seconds and NIT's every
/// 10 seconds, so lets wait at least 30 seconds, in
/// case of bad transmitter or lost packets.
const uint ChannelScanSM::kDVBTableTimeout = 30 * 1000;
/// No logic here, lets just wait at least 10 seconds.
const uint ChannelScanSM::kATSCTableTimeout = 10 * 1000;
/// No logic here, lets just wait at least 15 seconds.
const uint ChannelScanSM::kMPEGTableTimeout = 15 * 1000;
}}}
In my DVB-T signal, Digitenne in The Netherlands, the NIT is repeated
every 8 seconds. The value of m_channelTimeout is 7 seconds (see also
ticket #13380) so this causes a "Timed out" message once in a while even
when the scan is correct.\\
The larger timeout values in case of DVB tables are implemented in
function HasTimedOut() which is called from
ChannelScanSM::HandleActiveScan to decide if the scan has timed out.\\
The attached patch replaces the comparison with a call to this function:
{{{
@ -984,7 +984,7 @@ bool ChannelScanSM::UpdateChannelInfo(bool
wait_until_complete)
}
SignalMonitor *sm = GetSignalMonitor();
- if ((m_timer.elapsed() > (int)m_channelTimeout))
+ if (HasTimedOut())
{
msg_tr = (cchan_cnt) ?
QObject::tr("%1 possible channels").arg(cchan_cnt) :
}}}
This patch has been tested with the local DVB-T and DVB-C signals.
--
Ticket URL: <https://code.mythtv.org/trac/ticket/13391>
MythTV <http://www.mythtv.org>
MythTV Media Center
More information about the mythtv-commits
mailing list