vdr 2.7.3
|
#include <pat.h>
Public Member Functions | |
cPatFilter (void) | |
virtual void | SetStatus (bool On) |
void | Trigger (int=0) |
void | Request (int Sid) |
void | Release (int Sid) |
![]() | |
cListObject (void) | |
virtual | ~cListObject () |
virtual int | Compare (const cListObject &ListObject) const |
void | Append (cListObject *Object) |
void | Insert (cListObject *Object) |
void | Unlink (void) |
int | Index (void) const |
cListObject * | Prev (void) const |
cListObject * | Next (void) const |
Protected Member Functions | |
virtual void | Process (u_short Pid, u_char Tid, const u_char *Data, int Length) |
![]() | |
cFilter (void) | |
cFilter (u_short Pid, u_char Tid, u_char Mask=0xFF) | |
virtual | ~cFilter () |
int | Source (void) |
int | Transponder (void) |
const cChannel * | Channel (void) |
bool | Matches (u_short Pid, u_char Tid) |
void | Set (u_short Pid, u_char Tid, u_char Mask=0xFF) |
void | Add (u_short Pid, u_char Tid, u_char Mask=0xFF, bool Sticky=false) |
void | Del (u_short Pid, u_char Tid, u_char Mask=0xFF) |
Private Member Functions | |
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) |
Private Attributes | |
cMutex | mutex |
cTimeMs | timer |
int | patVersion |
cPmtPidEntry * | activePmt |
cList< cPmtPidEntry > | pmtPidList |
cList< cPmtSidEntry > | pmtSidList |
cList< cPmtSidRequest > | pmtSidRequestList |
int | source |
int | transponder |
cSectionSyncer | sectionSyncer |
cPatFilter::cPatFilter | ( | void | ) |
Definition at line 365 of file pat.c.
References activePmt, patVersion, cFilter::Set(), source, and transponder.
|
private |
Definition at line 455 of file pat.c.
References pmtSidRequestList.
Referenced by PmtVersionChanged(), and Process().
|
private |
|
private |
|
private |
Definition at line 483 of file pat.c.
References DBGLOG, NumSidRequests(), PmtPidComplete(), pmtSidList, and cFilter::Transponder().
Referenced by Process().
|
protectedvirtual |
Processes the data delivered to this filter.
Pid and Tid is one of the combinations added to this filter by a previous call to Add(), Data is a pointer to Length bytes of data. This function will be called from the section handler's thread, so it has to use proper locking mechanisms in case it accesses any global data. It is guaranteed that if several cFilters are attached to the same cSectionHandler, only one of them has its Process() function called at any given time. It is allowed that more than one cFilter are set up to receive the same Pid/Tid. The Process() function must return as soon as possible.
Implements cFilter.
Definition at line 522 of file pat.c.
References SI::AC3DescriptorTag, activePmt, cFilter::Add(), cCaDescriptors::AddCaDescriptor(), SI::PAT::associationLoop, CaDescriptorHandler, SI::CaDescriptorTag, cCaDescriptors::CaIds(), cFilter::Channel(), SI::CRCSection::CheckCRCAndParse(), SI::PMT::commonDescriptors, DBGLOG, cFilter::Del(), SI::EnhancedAC3DescriptorTag, SI::SubtitlingDescriptor::Subtitling::getAncillaryPageId(), cChannels::GetByServiceID(), cChannels::GetChannelsWrite(), SI::SubtitlingDescriptor::Subtitling::getCompositionPageId(), SI::Descriptor::getDescriptorTag(), SI::RegistrationDescriptor::getFormatIdentifier(), SI::NumberedSection::getLastSectionNumber(), SI::DescriptorLoop::getNext(), SI::PMT::getPCRPid(), SI::PAT::Association::getPid(), SI::PMT::Stream::getPid(), SI::NumberedSection::getSectionNumber(), SI::PAT::Association::getServiceId(), SI::PMT::getServiceId(), SI::PMT::Stream::getStreamType(), SI::SubtitlingDescriptor::Subtitling::getSubtitlingType(), SI::NumberedSection::getTableIdExtension(), SI::NumberedSection::getVersionNumber(), I18nNormalizeLanguageCode(), cPmtPidEntry::Inc(), SI::PAT::Association::isNITPid(), SI::ISO639LanguageDescriptorTag, SI::ISO639LanguageDescriptor::Language::languageCode, SI::ISO639LanguageDescriptor::languageCode, SI::SubtitlingDescriptor::Subtitling::languageCode, SI::ISO639LanguageDescriptor::languageLoop, MAXAPIDS, MAXDPIDS, MAXLANGCODE1, MAXLANGCODE2, MAXSPIDS, mutex, NumSidRequests(), patVersion, cPmtPidEntry::Pid(), PMT_SCAN_TIMEOUT, pmtPidList, pmtSidList, PmtVersionChanged(), SI::RegistrationDescriptorTag, cStateKey::Remove(), sectionSyncer, SetStatus(), Setup, cFilter::Source(), STANDARD_ANSISCTE, SI::PMT::Stream::streamDescriptors, SI::PMT::streamLoop, strn0cpy(), SI::SubtitlingDescriptorTag, SI::SubtitlingDescriptor::subtitlingLoop, SwitchToNextPmtPid(), SI::TableIdPAT, SI::TableIdPMT, SI::TeletextDescriptorTag, timer, cFilter::Transponder(), and TransponderChanged().
void cPatFilter::Release | ( | int | Sid | ) |
Definition at line 431 of file pat.c.
References cPmtPidEntry::Count(), DBGLOG, cPmtPidEntry::Dec(), mutex, cPmtPidEntry::Pid(), pmtSidList, and pmtSidRequestList.
void cPatFilter::Request | ( | int | Sid | ) |
Definition at line 408 of file pat.c.
References cPmtPidEntry::Count(), DBGLOG, cPmtPidEntry::Inc(), mutex, cPmtPidEntry::Pid(), pmtSidList, and pmtSidRequestList.
|
virtual |
Turns this filter on or off, depending on the value of On.
If the filter is turned off, any filter data that has been added without the Sticky parameter set to 'true' will be automatically deleted. Those parameters that have been added with Sticky set to 'true' will be automatically reused when SetStatus(true) is called.
Reimplemented from cFilter.
Definition at line 374 of file pat.c.
References activePmt, DBGLOG, mutex, PMT_SCAN_TIMEOUT, pmtPidList, cFilter::SetStatus(), and timer.
Referenced by Process().
|
private |
Definition at line 504 of file pat.c.
References activePmt, cFilter::Add(), cFilter::Del(), PMT_SCAN_TIMEOUT, pmtPidList, PmtPidReset(), SI::TableIdPMT, and timer.
Referenced by Process().
|
private |
Definition at line 389 of file pat.c.
References DBGLOG, cFilter::Source(), source, cFilter::Transponder(), and transponder.
Referenced by Process().
void cPatFilter::Trigger | ( | int | = 0 | ) |
Definition at line 400 of file pat.c.
References DBGLOG, mutex, patVersion, and sectionSyncer.
|
private |
Definition at line 26 of file pat.h.
Referenced by cPatFilter(), Process(), SetStatus(), and SwitchToNextPmtPid().
|
private |
|
private |
Definition at line 25 of file pat.h.
Referenced by cPatFilter(), Process(), and Trigger().
|
private |
Definition at line 27 of file pat.h.
Referenced by Process(), SetStatus(), and SwitchToNextPmtPid().
|
private |
Definition at line 28 of file pat.h.
Referenced by PmtPidComplete(), PmtPidReset(), PmtVersionChanged(), Process(), Release(), and Request().
|
private |
Definition at line 29 of file pat.h.
Referenced by NumSidRequests(), Release(), and Request().
|
private |
|
private |
Definition at line 30 of file pat.h.
Referenced by cPatFilter(), and TransponderChanged().
|
private |
Definition at line 24 of file pat.h.
Referenced by Process(), SetStatus(), and SwitchToNextPmtPid().
|
private |
Definition at line 31 of file pat.h.
Referenced by cPatFilter(), and TransponderChanged().