|
vdr 2.7.9
|
#include <remux.h>
Public Member Functions | |
| cPatPmtGenerator (const cChannel *Channel=NULL) | |
| void | SetVersions (int PatVersion, int PmtVersion) |
| void | SetChannel (const cChannel *Channel) |
| uchar * | GetPat (void) |
| uchar * | GetPmt (int &Index) |
Protected Member Functions | |
| int | MakeStream (uchar *Target, uchar Type, int Pid) |
| int | MakeAC3Descriptor (uchar *Target, uchar Type) |
| int | MakeSubtitlingDescriptor (uchar *Target, const char *Language, uchar SubtitlingType, uint16_t CompositionPageId, uint16_t AncillaryPageId) |
| int | MakeLanguageDescriptor (uchar *Target, const char *Language) |
| int | MakeCRC (uchar *Target, const uchar *Data, int Length) |
| void | GeneratePmtPid (const cChannel *Channel) |
| void | GeneratePat (void) |
| void | GeneratePmt (const cChannel *Channel) |
Private Member Functions | |
| void | IncCounter (int &Counter, uchar *TsPacket) |
| void | IncVersion (int &Version) |
| void | IncEsInfoLength (int Length) |
Private Attributes | |
| uchar | pat [TS_SIZE] |
| uchar | pmt [MAX_PMT_TS][TS_SIZE] |
| int | numPmtPackets |
| int | patCounter |
| int | pmtCounter |
| int | patVersion |
| int | pmtVersion |
| int | pmtPid |
| uchar * | esInfoLength |
| cPatPmtGenerator::cPatPmtGenerator | ( | const cChannel * | Channel = NULL | ) |
Definition at line 399 of file remux.c.
References esInfoLength, numPmtPackets, patCounter, patVersion, pmtCounter, pmtPid, pmtVersion, and SetChannel().
|
protected |
Generates a PAT section for later use with GetPat().
Definition at line 519 of file remux.c.
References IncVersion(), MakeCRC(), P_TSID, pat, PATPID, patVersion, pmtPid, TS_PAYLOAD_START, and TS_SYNC_BYTE.
Referenced by SetChannel().
|
protected |
Generates a PMT section for the given Channel, for later use with GetPmt().
Definition at line 548 of file remux.c.
References cChannel::Alang(), cChannel::AncillaryPageId(), cChannel::Apid(), cChannel::Atype(), cChannel::CompositionPageId(), cChannel::Dlang(), cChannel::Dpid(), cChannel::Dtype(), IncVersion(), MakeAC3Descriptor(), MakeCRC(), MakeLanguageDescriptor(), MakeStream(), MakeSubtitlingDescriptor(), MAX_SECTION_SIZE, numPmtPackets, pmt, pmtPid, pmtVersion, cChannel::Ppid(), cChannel::Slang(), cChannel::Spid(), cChannel::SubtitlingType(), TS_PAYLOAD_START, TS_SIZE, TS_SYNC_BYTE, cChannel::Vpid(), and cChannel::Vtype().
Referenced by SetChannel().
|
protected |
Generates a PMT pid that doesn't collide with any of the actual pids of the Channel.
Definition at line 504 of file remux.c.
References cChannel::Apids(), cChannel::Dpids(), MAXPID, P_PMT_PID, pmtPid, cChannel::Ppid(), SETPID, SETPIDS, cChannel::Spids(), cChannel::Tpid(), and cChannel::Vpid().
Referenced by SetChannel().
| uchar * cPatPmtGenerator::GetPat | ( | void | ) |
Returns a pointer to the PAT section, which consists of exactly one TS packet.
Definition at line 632 of file remux.c.
References IncCounter(), pat, and patCounter.
| uchar * cPatPmtGenerator::GetPmt | ( | int & | Index | ) |
Returns a pointer to the Index'th TS packet of the PMT section.
Index must be initialized to 0 and will be incremented by each call to GetPmt(). Returns NULL if all packets of the PMT section have been fetched.
Definition at line 638 of file remux.c.
References IncCounter(), numPmtPackets, pmt, and pmtCounter.
|
private |
|
private |
Definition at line 422 of file remux.c.
References esInfoLength.
Referenced by MakeAC3Descriptor(), MakeLanguageDescriptor(), and MakeSubtitlingDescriptor().
|
private |
Definition at line 416 of file remux.c.
Referenced by GeneratePat(), and GeneratePmt().
Definition at line 489 of file remux.c.
References SI::CRC32::crc32().
Referenced by GeneratePat(), and GeneratePmt().
|
protected |
Definition at line 470 of file remux.c.
References IncEsInfoLength(), and SI::ISO639LanguageDescriptorTag.
Referenced by GeneratePmt().
|
protected |
Definition at line 453 of file remux.c.
References IncEsInfoLength(), and SI::SubtitlingDescriptorTag.
Referenced by GeneratePmt().
| void cPatPmtGenerator::SetChannel | ( | const cChannel * | Channel | ) |
Sets the Channel for which the PAT/PMT shall be generated.
Definition at line 623 of file remux.c.
References GeneratePat(), GeneratePmt(), and GeneratePmtPid().
Referenced by cPatPmtGenerator().
| void cPatPmtGenerator::SetVersions | ( | int | PatVersion, |
| int | PmtVersion ) |
Sets the version numbers for the generated PAT and PMT, in case this generator is used to, e.g., continue a previously interrupted recording (in which case the numbers given should be derived from the PAT/PMT versions last used in the existing recording, incremented by 1.
If the given numbers exceed the allowed range of 0..31, the higher bits will automatically be cleared. SetVersions() needs to be called before SetChannel() in order to have an effect from the very start.
Definition at line 617 of file remux.c.
References patVersion, and pmtVersion.
|
private |
Definition at line 314 of file remux.h.
Referenced by cPatPmtGenerator(), IncEsInfoLength(), and MakeStream().
|
private |
Definition at line 308 of file remux.h.
Referenced by cPatPmtGenerator(), GeneratePmt(), and GetPmt().
Definition at line 306 of file remux.h.
Referenced by GeneratePat(), and GetPat().
|
private |
Definition at line 309 of file remux.h.
Referenced by cPatPmtGenerator(), and GetPat().
|
private |
Definition at line 311 of file remux.h.
Referenced by cPatPmtGenerator(), GeneratePat(), and SetVersions().
|
private |
Definition at line 307 of file remux.h.
Referenced by GeneratePmt(), and GetPmt().
|
private |
Definition at line 310 of file remux.h.
Referenced by cPatPmtGenerator(), and GetPmt().
|
private |
Definition at line 313 of file remux.h.
Referenced by cPatPmtGenerator(), GeneratePat(), GeneratePmt(), and GeneratePmtPid().
|
private |
Definition at line 312 of file remux.h.
Referenced by cPatPmtGenerator(), GeneratePmt(), and SetVersions().