diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2021-06-08 14:57:26 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2021-06-08 14:57:26 +0200 |
commit | 7b1c09795897282cf6bde0e9742814494f6407a1 (patch) | |
tree | dd912d1214deaa4a9682bdbdbe92704e616f8e41 /pat.h | |
parent | 58e21d8e374206531802b64ae0e5c260e2bf6bf7 (diff) | |
download | vdr-7b1c09795897282cf6bde0e9742814494f6407a1.tar.gz vdr-7b1c09795897282cf6bde0e9742814494f6407a1.tar.bz2 |
No longer permanently looping through PMT PIDs, which caused problems with some SatIP receivers
Diffstat (limited to 'pat.h')
-rw-r--r-- | pat.h | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: pat.h 4.2 2020/06/19 12:19:15 kls Exp $ + * $Id: pat.h 5.1 2021/06/08 14:57:26 kls Exp $ */ #ifndef __PAT_H @@ -16,27 +16,33 @@ class cPmtPidEntry; class cPmtSidEntry; +class cPmtSidRequest; class cPatFilter : public cFilter { private: cMutex mutex; cTimeMs timer; int patVersion; - int sid; cPmtPidEntry *activePmt; cList<cPmtPidEntry> pmtPidList; cList<cPmtSidEntry> pmtSidList; + cList<cPmtSidRequest> pmtSidRequestList; + int source; + int transponder; cSectionSyncer sectionSyncer; + bool TransponderChanged(void); bool PmtPidComplete(int PmtPid); void PmtPidReset(int PmtPid); bool PmtVersionChanged(int PmtPid, int Sid, int Version, bool SetNewVersion = false); + int NumSidRequests(int Sid); void SwitchToNextPmtPid(void); protected: virtual void Process(u_short Pid, u_char Tid, const u_char *Data, int Length); public: cPatFilter(void); - virtual void SetStatus(bool On); - void Trigger(int Sid = -1); + void Trigger(int); // triggers reading the PMT PIDs that are currently not requested (dummy parameter for backwards compatibility, value is ignored) + void Request(int Sid); // requests permanent reading of the PMT PID for this SID + void Release(int Sid); // releases permanent reading of the PMT PID for this SID }; void GetCaDescriptors(int Source, int Transponder, int ServiceId, const int *CaSystemIds, cDynamicBuffer &Buffer, int EsPid); |