vdr
1.7.27
|
#include <remux.h>
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 tTeletextSubtitlePage * | TeletextSubtitlePages () 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 tTeletextSubtitlePage * | TeletextSubtitlePages () 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] |
Definition at line 213 of file include/vdr/remux.h.
cPatPmtParser::cPatPmtParser | ( | bool | UpdatePrimaryDevice = false | ) |
Definition at line 429 of file remux.c.
References Reset(), and updatePrimaryDevice.
cPatPmtParser::cPatPmtParser | ( | bool | UpdatePrimaryDevice = false | ) |
const char* cPatPmtParser::Alang | ( | int | i | ) | const [inline] |
Definition at line 281 of file include/vdr/remux.h.
const char* cPatPmtParser::Alang | ( | int | i | ) | const [inline] |
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] |
const int* cPatPmtParser::Apids | ( | void | ) | const [inline] |
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] |
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.
const char* cPatPmtParser::Dlang | ( | int | i | ) | const [inline] |
int cPatPmtParser::Dpid | ( | int | i | ) | const [inline] |
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] |
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] |
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 | ||
) |
Parses the PAT data from the single TS packet in Data.
Length is always TS_SIZE.
Definition at line 445 of file remux.c.
References SI::PAT::associationLoop, SI::CRCSection::CheckCRCAndParse(), dbgpatpmt, esyslog, SI::NumberedSection::getCurrentNextIndicator(), SI::NumberedSection::getLastSectionNumber(), SI::StructureLoop< T >::getNext(), SI::PAT::Association::getPid(), SI::NumberedSection::getSectionNumber(), SI::PAT::Association::getServiceId(), SI::PAT::getTransportStreamId(), SI::NumberedSection::getVersionNumber(), SI::PAT::Association::isNITPid(), patVersion, pmtPid, and TsPayloadOffset().
Referenced by cIndexFileGenerator::Action(), cFileName::GetLastPatPmtVersions(), cDevice::PlayTs(), and cDevice::StillPicture().
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] |
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] |
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] |
const char* cPatPmtParser::Slang | ( | int | i | ) | const [inline] |
const char* cPatPmtParser::Slang | ( | int | i | ) | const [inline] |
Definition at line 283 of file include/vdr/remux.h.
int cPatPmtParser::Spid | ( | int | i | ) | const [inline] |
int cPatPmtParser::Spid | ( | int | i | ) | const [inline] |
Definition at line 278 of file include/vdr/remux.h.
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] |
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.
const tTeletextSubtitlePage* cPatPmtParser::TeletextSubtitlePages | ( | ) | const [inline] |
Definition at line 287 of file remux.h.
References teletextSubtitlePages.
const tTeletextSubtitlePage* cPatPmtParser::TeletextSubtitlePages | ( | ) | const [inline] |
Definition at line 287 of file include/vdr/remux.h.
References teletextSubtitlePages.
Referenced by cDevice::PlayTs().
int cPatPmtParser::TotalTeletextSubtitlePages | ( | ) | const [inline] |
Definition at line 288 of file include/vdr/remux.h.
References totalTtxtSubtitlePages.
Referenced by cDevice::PlayTs().
int cPatPmtParser::TotalTeletextSubtitlePages | ( | ) | const [inline] |
Definition at line 288 of file remux.h.
References totalTtxtSubtitlePages.
int cPatPmtParser::Tpid | ( | void | ) | [inline] |
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] |
int cPatPmtParser::Vtype | ( | void | ) | const [inline] |
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().
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().
uint16_t cPatPmtParser::compositionPageIds [private] |
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().
int cPatPmtParser::patVersion [private] |
Definition at line 217 of file include/vdr/remux.h.
Referenced by GetVersions(), ParsePat(), and Reset().
uchar cPatPmtParser::pmt [private] |
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().
int cPatPmtParser::pmtVersion [private] |
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().
uchar cPatPmtParser::subtitlingTypes [private] |
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().
int cPatPmtParser::totalTtxtSubtitlePages [private] |
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().
bool cPatPmtParser::updatePrimaryDevice [private] |
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().