mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed PMT handling in case locking the Channels list times out
This commit is contained in:
parent
9fa7de2036
commit
dffeabbacb
@ -3638,6 +3638,7 @@ Helmut Binder <cco@aon.at>
|
|||||||
for fixing generating the HashId in cEIT::cEIT()
|
for fixing generating the HashId in cEIT::cEIT()
|
||||||
for fixing a bug in handling shared PMTs, where after the first pass not all SIDs of a
|
for fixing a bug in handling shared PMTs, where after the first pass not all SIDs of a
|
||||||
PMT pid were checked any more
|
PMT pid were checked any more
|
||||||
|
for reporting a problem with PMT handling in case locking the Channels list times out
|
||||||
|
|
||||||
Ulrich Eckhardt <uli@uli-eckhardt.de>
|
Ulrich Eckhardt <uli@uli-eckhardt.de>
|
||||||
for reporting a problem with shutdown after user inactivity in case a plugin is
|
for reporting a problem with shutdown after user inactivity in case a plugin is
|
||||||
|
4
HISTORY
4
HISTORY
@ -9536,7 +9536,7 @@ Video Disk Recorder Revision History
|
|||||||
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
|
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
|
||||||
(thanks to Helmut Binder).
|
(thanks to Helmut Binder).
|
||||||
|
|
||||||
2020-12-09:
|
2020-12-12:
|
||||||
|
|
||||||
- Fixed multiple recording entries in case a recording is started during the initial
|
- Fixed multiple recording entries in case a recording is started during the initial
|
||||||
reading of the video directory (reported by Claus Muus).
|
reading of the video directory (reported by Claus Muus).
|
||||||
@ -9551,3 +9551,5 @@ Video Disk Recorder Revision History
|
|||||||
- Added initialization of cDvbFrontend::frontendInfo (thanks to Winfried Köhler).
|
- Added initialization of cDvbFrontend::frontendInfo (thanks to Winfried Köhler).
|
||||||
- Fixed a bug in handling shared PMTs, where after the first pass not all SIDs of a
|
- Fixed a bug in handling shared PMTs, where after the first pass not all SIDs of a
|
||||||
PMT pid were checked any more (thanks to Helmut Binder).
|
PMT pid were checked any more (thanks to Helmut Binder).
|
||||||
|
- Fixed PMT handling in case locking the Channels list times out (reported by Helmut
|
||||||
|
Binder).
|
||||||
|
8
pat.c
8
pat.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: pat.c 4.7 2020/12/09 21:42:26 kls Exp $
|
* $Id: pat.c 4.8 2020/12/12 10:31:52 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "pat.h"
|
#include "pat.h"
|
||||||
@ -392,9 +392,10 @@ bool cPatFilter::PmtVersionChanged(int PmtPid, int Sid, int Version, bool SetNew
|
|||||||
se->PidEntry()->SetComplete(PmtPidComplete(PmtPid));
|
se->PidEntry()->SetComplete(PmtPidComplete(PmtPid));
|
||||||
}
|
}
|
||||||
if (se->Version() != Version) {
|
if (se->Version() != Version) {
|
||||||
DBGLOG("PMT %d %2d %5d/%d %2d -> %2d", Transponder(), i, PmtPid, Sid, se->Version(), Version);
|
|
||||||
if (SetNewVersion)
|
if (SetNewVersion)
|
||||||
se->SetVersion(Version);
|
se->SetVersion(Version);
|
||||||
|
else
|
||||||
|
DBGLOG("PMT %d %2d %5d/%d %2d -> %2d", Transponder(), i, PmtPid, Sid, se->Version(), Version);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -473,7 +474,7 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
SI::PMT pmt(Data, false);
|
SI::PMT pmt(Data, false);
|
||||||
if (!pmt.CheckCRCAndParse())
|
if (!pmt.CheckCRCAndParse())
|
||||||
return;
|
return;
|
||||||
if (!PmtVersionChanged(Pid, pmt.getTableIdExtension(), pmt.getVersionNumber(), true)) {
|
if (!PmtVersionChanged(Pid, pmt.getTableIdExtension(), pmt.getVersionNumber(), false)) {
|
||||||
if (activePmt && activePmt->Complete())
|
if (activePmt && activePmt->Complete())
|
||||||
SwitchToNextPmtPid();
|
SwitchToNextPmtPid();
|
||||||
return;
|
return;
|
||||||
@ -482,6 +483,7 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
cChannels *Channels = cChannels::GetChannelsWrite(StateKey, 10);
|
cChannels *Channels = cChannels::GetChannelsWrite(StateKey, 10);
|
||||||
if (!Channels)
|
if (!Channels)
|
||||||
return;
|
return;
|
||||||
|
PmtVersionChanged(Pid, pmt.getTableIdExtension(), pmt.getVersionNumber(), true);
|
||||||
bool ChannelsModified = false;
|
bool ChannelsModified = false;
|
||||||
if (activePmt && activePmt->Complete())
|
if (activePmt && activePmt->Complete())
|
||||||
SwitchToNextPmtPid();
|
SwitchToNextPmtPid();
|
||||||
|
Loading…
Reference in New Issue
Block a user