vdr  2.4.1
pat.h
Go to the documentation of this file.
1 /*
2  * pat.h: PAT section filter
3  *
4  * See the main source file 'vdr.c' for copyright information and
5  * how to reach the author.
6  *
7  * $Id: pat.h 4.1 2016/12/23 14:03:24 kls Exp $
8  */
9 
10 #ifndef __PAT_H
11 #define __PAT_H
12 
13 #include <stdint.h>
14 #include "filter.h"
15 #include "thread.h"
16 
17 #define MAXPMTENTRIES 64
18 
19 class cPatFilter : public cFilter {
20 private:
24  int pmtIndex;
28  int sid;
29  int GetPmtPid(int Index) { return pmtId[Index] & 0x0000FFFF; }
30  int MakePmtId(int PmtPid, int Sid) { return PmtPid | (Sid << 16); }
31  bool PmtVersionChanged(int PmtPid, int Sid, int Version, bool SetNewVersion = false);
32  void SwitchToNextPmtPid(void);
33 protected:
34  virtual void Process(u_short Pid, u_char Tid, const u_char *Data, int Length);
35 public:
36  cPatFilter(void);
37  virtual void SetStatus(bool On);
38  void Trigger(int Sid = -1);
39  };
40 
41 void GetCaDescriptors(int Source, int Transponder, int ServiceId, const int *CaSystemIds, cDynamicBuffer &Buffer, int EsPid);
47 
48 int GetCaPids(int Source, int Transponder, int ServiceId, const int *CaSystemIds, int BufSize, int *Pids);
56 
57 int GetPmtPid(int Source, int Transponder, int ServiceId);
59 
60 #endif //__PAT_H
cFilter
Definition: filter.h:49
cPatFilter::pmtIndex
int pmtIndex
Definition: pat.h:24
filter.h
cListObject::Index
int Index(void) const
Definition: tools.c:2072
GetPmtPid
int GetPmtPid(int Source, int Transponder, int ServiceId)
Gets the Pid of the PMT in which the CA descriptors for this channel are defined.
Definition: pat.c:278
cPatFilter::GetPmtPid
int GetPmtPid(int Index)
Definition: pat.h:29
cPatFilter
Definition: pat.h:19
cPatFilter::timer
cTimeMs timer
Definition: pat.h:22
cPatFilter::patVersion
int patVersion
Definition: pat.h:23
SI::u_char
unsigned char u_char
Definition: headers.h:38
GetCaDescriptors
void GetCaDescriptors(int Source, int Transponder, int ServiceId, const int *CaSystemIds, cDynamicBuffer &Buffer, int EsPid)
Gets all CA descriptors for a given channel.
Definition: pat.c:268
cPatFilter::Trigger
void Trigger(int Sid=-1)
Definition: pat.c:306
cPatFilter::PmtVersionChanged
bool PmtVersionChanged(int PmtPid, int Sid, int Version, bool SetNewVersion=false)
Definition: pat.c:318
cMutex
Definition: thread.h:67
GetCaPids
int GetCaPids(int Source, int Transponder, int ServiceId, const int *CaSystemIds, int BufSize, int *Pids)
Gets all CA pids for a given channel.
Definition: pat.c:273
cPatFilter::pmtId
int pmtId[MAXPMTENTRIES]
Definition: pat.h:25
cPatFilter::numPmtEntries
int numPmtEntries
Definition: pat.h:27
cTimeMs
Definition: tools.h:369
cPatFilter::SwitchToNextPmtPid
void SwitchToNextPmtPid(void)
Definition: pat.c:336
cPatFilter::pmtVersion
int pmtVersion[MAXPMTENTRIES]
Definition: pat.h:26
cPatFilter::MakePmtId
int MakePmtId(int PmtPid, int Sid)
Definition: pat.h:30
MAXPMTENTRIES
#define MAXPMTENTRIES
Definition: pat.h:17
cPatFilter::cPatFilter
cPatFilter(void)
Definition: pat.c:292
cPatFilter::mutex
cMutex mutex
Definition: pat.h:21
cPatFilter::SetStatus
virtual void SetStatus(bool On)
Turns this filter on or off, depending on the value of On.
Definition: pat.c:298
cDynamicBuffer
Definition: tools.h:826
cPatFilter::Process
virtual void Process(u_short Pid, u_char Tid, const u_char *Data, int Length)
Processes the data delivered to this filter.
Definition: pat.c:345
cPatFilter::sid
int sid
Definition: pat.h:28
thread.h