vdr  1.7.27
Public Member Functions | Protected Member Functions | Private Attributes
cPatPmtParser Class Reference

#include <remux.h>

List of all members.

Public Member Functions

 cPatPmtParser (bool UpdatePrimaryDevice=false)
void Reset (void)
void ParsePat (const uchar *Data, int Length)
void ParsePmt (const uchar *Data, int Length)
bool GetVersions (int &PatVersion, int &PmtVersion) const
int PmtPid (void) const
int Vpid (void) const
int Ppid (void) const
int Vtype (void) const
int Tpid (void)
const int * Apids (void) const
const int * Dpids (void) const
const int * Spids (void) const
int Apid (int i) const
int Dpid (int i) const
int Spid (int i) const
int Atype (int i) const
int Dtype (int i) const
const char * Alang (int i) const
const char * Dlang (int i) const
const char * Slang (int i) const
uchar SubtitlingType (int i) const
uint16_t CompositionPageId (int i) const
uint16_t AncillaryPageId (int i) const
const tTeletextSubtitlePageTeletextSubtitlePages () const
int TotalTeletextSubtitlePages () const
 cPatPmtParser (bool UpdatePrimaryDevice=false)
void Reset (void)
void ParsePat (const uchar *Data, int Length)
void ParsePmt (const uchar *Data, int Length)
bool GetVersions (int &PatVersion, int &PmtVersion) const
int PmtPid (void) const
int Vpid (void) const
int Ppid (void) const
int Vtype (void) const
int Tpid (void)
const int * Apids (void) const
const int * Dpids (void) const
const int * Spids (void) const
int Apid (int i) const
int Dpid (int i) const
int Spid (int i) const
int Atype (int i) const
int Dtype (int i) const
const char * Alang (int i) const
const char * Dlang (int i) const
const char * Slang (int i) const
uchar SubtitlingType (int i) const
uint16_t CompositionPageId (int i) const
uint16_t AncillaryPageId (int i) const
const tTeletextSubtitlePageTeletextSubtitlePages () const
int TotalTeletextSubtitlePages () const

Protected Member Functions

int SectionLength (const uchar *Data, int Length)
int SectionLength (const uchar *Data, int Length)

Private Attributes

uchar pmt [MAX_SECTION_SIZE]
int pmtSize
int patVersion
int pmtVersion
int pmtPid
int vpid
int ppid
int vtype
int tpid
int apids [MAXAPIDS+1]
int atypes [MAXAPIDS+1]
char alangs [MAXAPIDS][MAXLANGCODE2]
int dpids [MAXDPIDS+1]
int dtypes [MAXDPIDS+1]
char dlangs [MAXDPIDS][MAXLANGCODE2]
int spids [MAXSPIDS+1]
char slangs [MAXSPIDS][MAXLANGCODE2]
uchar subtitlingTypes [MAXSPIDS]
uint16_t compositionPageIds [MAXSPIDS]
uint16_t ancillaryPageIds [MAXSPIDS]
bool updatePrimaryDevice
int totalTtxtSubtitlePages
tTeletextSubtitlePage teletextSubtitlePages [MAXTXTPAGES]

Detailed Description

Definition at line 213 of file include/vdr/remux.h.


Constructor & Destructor Documentation

cPatPmtParser::cPatPmtParser ( bool  UpdatePrimaryDevice = false)

Definition at line 429 of file remux.c.

References Reset(), and updatePrimaryDevice.

cPatPmtParser::cPatPmtParser ( bool  UpdatePrimaryDevice = false)

Member Function Documentation

const char* cPatPmtParser::Alang ( int  i) const [inline]

Definition at line 281 of file include/vdr/remux.h.

References alangs, and MAXAPIDS.

const char* cPatPmtParser::Alang ( int  i) const [inline]

Definition at line 281 of file remux.h.

References alangs, and MAXAPIDS.

uint16_t cPatPmtParser::AncillaryPageId ( int  i) const [inline]

Definition at line 286 of file include/vdr/remux.h.

References ancillaryPageIds, and MAXSPIDS.

uint16_t cPatPmtParser::AncillaryPageId ( int  i) const [inline]

Definition at line 286 of file remux.h.

References ancillaryPageIds, and MAXSPIDS.

int cPatPmtParser::Apid ( int  i) const [inline]

Definition at line 276 of file include/vdr/remux.h.

References apids, and MAXAPIDS.

Referenced by cDvbHdFfDevice::PlayTsAudio().

int cPatPmtParser::Apid ( int  i) const [inline]

Definition at line 276 of file remux.h.

References apids, and MAXAPIDS.

const int* cPatPmtParser::Apids ( void  ) const [inline]

Definition at line 273 of file remux.h.

References apids.

const int* cPatPmtParser::Apids ( void  ) const [inline]

Definition at line 273 of file include/vdr/remux.h.

References apids.

int cPatPmtParser::Atype ( int  i) const [inline]

Definition at line 279 of file include/vdr/remux.h.

References atypes, and MAXAPIDS.

Referenced by cDvbHdFfDevice::PlayTsAudio().

int cPatPmtParser::Atype ( int  i) const [inline]

Definition at line 279 of file remux.h.

References atypes, and MAXAPIDS.

uint16_t cPatPmtParser::CompositionPageId ( int  i) const [inline]

Definition at line 285 of file include/vdr/remux.h.

References compositionPageIds, and MAXSPIDS.

uint16_t cPatPmtParser::CompositionPageId ( int  i) const [inline]

Definition at line 285 of file remux.h.

References compositionPageIds, and MAXSPIDS.

const char* cPatPmtParser::Dlang ( int  i) const [inline]

Definition at line 282 of file include/vdr/remux.h.

References dlangs, and MAXDPIDS.

const char* cPatPmtParser::Dlang ( int  i) const [inline]

Definition at line 282 of file remux.h.

References dlangs, and MAXDPIDS.

int cPatPmtParser::Dpid ( int  i) const [inline]

Definition at line 277 of file remux.h.

References dpids, and MAXDPIDS.

int cPatPmtParser::Dpid ( int  i) const [inline]

Definition at line 277 of file include/vdr/remux.h.

References dpids, and MAXDPIDS.

Referenced by cDvbHdFfDevice::PlayTsAudio().

const int* cPatPmtParser::Dpids ( void  ) const [inline]

Definition at line 274 of file remux.h.

References dpids.

const int* cPatPmtParser::Dpids ( void  ) const [inline]

Definition at line 274 of file include/vdr/remux.h.

References dpids.

int cPatPmtParser::Dtype ( int  i) const [inline]

Definition at line 280 of file include/vdr/remux.h.

References dtypes, and MAXDPIDS.

Referenced by cDvbHdFfDevice::PlayTsAudio().

int cPatPmtParser::Dtype ( int  i) const [inline]

Definition at line 280 of file remux.h.

References dtypes, and MAXDPIDS.

bool cPatPmtParser::GetVersions ( int &  PatVersion,
int &  PmtVersion 
) const

Returns true if a valid PAT/PMT has been parsed and stores the current version numbers in the given variables.

Definition at line 693 of file remux.c.

References patVersion, and pmtVersion.

Referenced by cFileName::GetLastPatPmtVersions().

bool cPatPmtParser::GetVersions ( int &  PatVersion,
int &  PmtVersion 
) const

Returns true if a valid PAT/PMT has been parsed and stores the current version numbers in the given variables.

void cPatPmtParser::ParsePat ( const uchar Data,
int  Length 
)
void cPatPmtParser::ParsePat ( const uchar Data,
int  Length 
)

Parses the PAT data from the single TS packet in Data.

Length is always TS_SIZE.

void cPatPmtParser::ParsePmt ( const uchar Data,
int  Length 
)

Parses the PMT data from the single TS packet in Data.

Length is always TS_SIZE. The PMT may consist of several TS packets, which are delivered to the parser through several subsequent calls to ParsePmt(). The whole PMT data will be processed once the last packet has been received.

Definition at line 474 of file remux.c.

References SI::AC3DescriptorTag, alangs, ancillaryPageIds, apids, atypes, SI::CRCSection::CheckCRCAndParse(), cDevice::ClrAvailableTracks(), compositionPageIds, dbgpatpmt, dlangs, dpids, dtypes, SI::EnhancedAC3DescriptorTag, cDevice::EnsureAudioTrack(), cDevice::EnsureSubtitleTrack(), esyslog, SI::SubtitlingDescriptor::Subtitling::getAncillaryPageId(), SI::SubtitlingDescriptor::Subtitling::getCompositionPageId(), SI::NumberedSection::getCurrentNextIndicator(), SI::Descriptor::getDescriptorTag(), SI::NumberedSection::getLastSectionNumber(), SI::StructureLoop< T >::getNext(), SI::DescriptorLoop::getNext(), SI::PMT::getPCRPid(), SI::PMT::Stream::getPid(), SI::NumberedSection::getSectionNumber(), SI::PMT::getServiceId(), SI::PMT::Stream::getStreamType(), SI::SubtitlingDescriptor::Subtitling::getSubtitlingType(), SI::TeletextDescriptor::Teletext::getTeletextMagazineNumber(), SI::TeletextDescriptor::Teletext::getTeletextPageNumber(), SI::TeletextDescriptor::Teletext::getTeletextType(), SI::NumberedSection::getVersionNumber(), I18nNormalizeLanguageCode(), SI::ISO639LanguageDescriptorTag, SI::TeletextDescriptor::Teletext::languageCode, SI::SubtitlingDescriptor::Subtitling::languageCode, SI::ISO639LanguageDescriptor::languageCode, SI::ISO639LanguageDescriptor::Language::languageCode, SI::ISO639LanguageDescriptor::languageLoop, MAXAPIDS, MAXDPIDS, MAXLANGCODE1, MAXSPIDS, MAXTXTPAGES, pmt, pmtSize, pmtVersion, ppid, cDevice::PrimaryDevice(), SectionLength(), cDevice::SetAvailableTrack(), Setup, slangs, spids, SI::PMT::Stream::streamDescriptors, SI::PMT::streamLoop, strn0cpy(), SI::SubtitlingDescriptorTag, SI::SubtitlingDescriptor::subtitlingLoop, subtitlingTypes, SI::TeletextDescriptorTag, SI::TeletextDescriptor::teletextLoop, teletextSubtitlePages, totalTtxtSubtitlePages, tpid, TsPayloadOffset(), TsPayloadStart(), ttAudio, ttDolby, ttSubtitle, tTeletextSubtitlePage::ttxtMagazine, tTeletextSubtitlePage::ttxtPage, tTeletextSubtitlePage::ttxtType, updatePrimaryDevice, cSetup::UseDolbyDigital, vpid, and vtype.

Referenced by cIndexFileGenerator::Action(), cFileName::GetLastPatPmtVersions(), cDevice::PlayTs(), and cDevice::StillPicture().

void cPatPmtParser::ParsePmt ( const uchar Data,
int  Length 
)

Parses the PMT data from the single TS packet in Data.

Length is always TS_SIZE. The PMT may consist of several TS packets, which are delivered to the parser through several subsequent calls to ParsePmt(). The whole PMT data will be processed once the last packet has been received.

int cPatPmtParser::PmtPid ( void  ) const [inline]

Returns the PMT pid as defined by the current PAT.

If no PAT has been received yet, -1 will be returned.

Definition at line 258 of file remux.h.

References pmtPid.

int cPatPmtParser::PmtPid ( void  ) const [inline]

Returns the PMT pid as defined by the current PAT.

If no PAT has been received yet, -1 will be returned.

Definition at line 258 of file include/vdr/remux.h.

References pmtPid.

Referenced by cIndexFileGenerator::Action(), cFileName::GetLastPatPmtVersions(), cDevice::PlayTs(), and cDevice::StillPicture().

int cPatPmtParser::Ppid ( void  ) const [inline]

Returns the PCR pid as defined by the current PMT, or 0 if no PCR pid has been detected, yet.

Definition at line 264 of file include/vdr/remux.h.

References ppid.

Referenced by cDevice::PlayTs().

int cPatPmtParser::Ppid ( void  ) const [inline]

Returns the PCR pid as defined by the current PMT, or 0 if no PCR pid has been detected, yet.

Definition at line 264 of file remux.h.

References ppid.

void cPatPmtParser::Reset ( void  )

Resets the parser.

This function must be called whenever a new stream is parsed.

Definition at line 435 of file remux.c.

References patVersion, pmtPid, pmtSize, pmtVersion, ppid, tpid, vpid, and vtype.

Referenced by cDevice::AttachPlayer(), cPatPmtParser(), and cDevice::Detach().

void cPatPmtParser::Reset ( void  )

Resets the parser.

This function must be called whenever a new stream is parsed.

int cPatPmtParser::SectionLength ( const uchar Data,
int  Length 
) [inline, protected]

Definition at line 239 of file include/vdr/remux.h.

Referenced by ParsePmt().

int cPatPmtParser::SectionLength ( const uchar Data,
int  Length 
) [inline, protected]

Definition at line 239 of file remux.h.

const char* cPatPmtParser::Slang ( int  i) const [inline]

Definition at line 283 of file remux.h.

References MAXSPIDS, and slangs.

const char* cPatPmtParser::Slang ( int  i) const [inline]

Definition at line 283 of file include/vdr/remux.h.

References MAXSPIDS, and slangs.

int cPatPmtParser::Spid ( int  i) const [inline]

Definition at line 278 of file remux.h.

References MAXSPIDS, and spids.

int cPatPmtParser::Spid ( int  i) const [inline]

Definition at line 278 of file include/vdr/remux.h.

References MAXSPIDS, and spids.

const int* cPatPmtParser::Spids ( void  ) const [inline]

Definition at line 275 of file include/vdr/remux.h.

References spids.

const int* cPatPmtParser::Spids ( void  ) const [inline]

Definition at line 275 of file remux.h.

References spids.

uchar cPatPmtParser::SubtitlingType ( int  i) const [inline]

Definition at line 284 of file include/vdr/remux.h.

References MAXSPIDS, and subtitlingTypes.

uchar cPatPmtParser::SubtitlingType ( int  i) const [inline]

Definition at line 284 of file remux.h.

References MAXSPIDS, and subtitlingTypes.

Definition at line 287 of file remux.h.

References teletextSubtitlePages.

Definition at line 287 of file include/vdr/remux.h.

References teletextSubtitlePages.

Referenced by cDevice::PlayTs().

Definition at line 288 of file include/vdr/remux.h.

References totalTtxtSubtitlePages.

Referenced by cDevice::PlayTs().

Definition at line 288 of file remux.h.

References totalTtxtSubtitlePages.

int cPatPmtParser::Tpid ( void  ) [inline]

Returns the teletext pid as defined by the current PMT, or 0 if no teletext pid has been detected, yet.

Definition at line 270 of file remux.h.

References tpid.

int cPatPmtParser::Tpid ( void  ) [inline]

Returns the teletext pid as defined by the current PMT, or 0 if no teletext pid has been detected, yet.

Definition at line 270 of file include/vdr/remux.h.

References tpid.

Referenced by cDevice::PlayTs().

int cPatPmtParser::Vpid ( void  ) const [inline]

Returns the video pid as defined by the current PMT, or 0 if no video pid has been detected, yet.

Definition at line 261 of file include/vdr/remux.h.

References vpid.

Referenced by cIndexFileGenerator::Action(), cDevice::PlayTs(), and cDevice::StillPicture().

int cPatPmtParser::Vpid ( void  ) const [inline]

Returns the video pid as defined by the current PMT, or 0 if no video pid has been detected, yet.

Definition at line 261 of file remux.h.

References vpid.

int cPatPmtParser::Vtype ( void  ) const [inline]

Returns the video stream type as defined by the current PMT, or 0 if no video stream type has been detected, yet.

Definition at line 267 of file remux.h.

References vtype.

int cPatPmtParser::Vtype ( void  ) const [inline]

Returns the video stream type as defined by the current PMT, or 0 if no video stream type has been detected, yet.

Definition at line 267 of file include/vdr/remux.h.

References vtype.

Referenced by cIndexFileGenerator::Action().


Member Data Documentation

char cPatPmtParser::alangs [private]

Definition at line 226 of file include/vdr/remux.h.

Referenced by Alang(), and ParsePmt().

uint16_t cPatPmtParser::ancillaryPageIds [private]

Definition at line 234 of file include/vdr/remux.h.

Referenced by AncillaryPageId(), and ParsePmt().

int cPatPmtParser::apids [private]

Definition at line 224 of file include/vdr/remux.h.

Referenced by Apid(), Apids(), and ParsePmt().

int cPatPmtParser::atypes [private]

Definition at line 225 of file include/vdr/remux.h.

Referenced by Atype(), and ParsePmt().

Definition at line 233 of file include/vdr/remux.h.

Referenced by CompositionPageId(), and ParsePmt().

char cPatPmtParser::dlangs [private]

Definition at line 229 of file include/vdr/remux.h.

Referenced by Dlang(), and ParsePmt().

int cPatPmtParser::dpids [private]

Definition at line 227 of file include/vdr/remux.h.

Referenced by Dpid(), Dpids(), and ParsePmt().

int cPatPmtParser::dtypes [private]

Definition at line 228 of file include/vdr/remux.h.

Referenced by Dtype(), and ParsePmt().

Definition at line 217 of file include/vdr/remux.h.

Referenced by GetVersions(), ParsePat(), and Reset().

Definition at line 215 of file include/vdr/remux.h.

Referenced by ParsePmt().

int cPatPmtParser::pmtPid [private]

Definition at line 219 of file include/vdr/remux.h.

Referenced by ParsePat(), PmtPid(), and Reset().

int cPatPmtParser::pmtSize [private]

Definition at line 216 of file include/vdr/remux.h.

Referenced by ParsePmt(), and Reset().

Definition at line 218 of file include/vdr/remux.h.

Referenced by GetVersions(), ParsePmt(), and Reset().

int cPatPmtParser::ppid [private]

Definition at line 221 of file include/vdr/remux.h.

Referenced by ParsePmt(), Ppid(), and Reset().

char cPatPmtParser::slangs [private]

Definition at line 231 of file include/vdr/remux.h.

Referenced by ParsePmt(), and Slang().

int cPatPmtParser::spids [private]

Definition at line 230 of file include/vdr/remux.h.

Referenced by ParsePmt(), Spid(), and Spids().

Definition at line 232 of file include/vdr/remux.h.

Referenced by ParsePmt(), and SubtitlingType().

Definition at line 237 of file include/vdr/remux.h.

Referenced by ParsePmt(), and TeletextSubtitlePages().

Definition at line 236 of file include/vdr/remux.h.

Referenced by ParsePmt(), and TotalTeletextSubtitlePages().

int cPatPmtParser::tpid [private]

Definition at line 223 of file include/vdr/remux.h.

Referenced by ParsePmt(), Reset(), and Tpid().

Definition at line 235 of file include/vdr/remux.h.

Referenced by cPatPmtParser(), and ParsePmt().

int cPatPmtParser::vpid [private]

Definition at line 220 of file include/vdr/remux.h.

Referenced by ParsePmt(), Reset(), and Vpid().

int cPatPmtParser::vtype [private]

Definition at line 222 of file include/vdr/remux.h.

Referenced by ParsePmt(), Reset(), and Vtype().


The documentation for this class was generated from the following files: