vdr
2.0.6
|
Go to the source code of this file.
Classes | |
class | cRemux |
class | cTsPayload |
class | cPatPmtGenerator |
class | cPatPmtParser |
class | cTsToPes |
class | cFrameDetector |
Macros | |
#define | TS_SYNC_BYTE 0x47 |
#define | TS_SIZE 188 |
#define | TS_ERROR 0x80 |
#define | TS_PAYLOAD_START 0x40 |
#define | TS_TRANSPORT_PRIORITY 0x20 |
#define | TS_PID_MASK_HI 0x1F |
#define | TS_SCRAMBLING_CONTROL 0xC0 |
#define | TS_ADAPT_FIELD_EXISTS 0x20 |
#define | TS_PAYLOAD_EXISTS 0x10 |
#define | TS_CONT_CNT_MASK 0x0F |
#define | TS_ADAPT_DISCONT 0x80 |
#define | TS_ADAPT_RANDOM_ACC 0x40 |
#define | TS_ADAPT_ELEM_PRIO 0x20 |
#define | TS_ADAPT_PCR 0x10 |
#define | TS_ADAPT_OPCR 0x08 |
#define | TS_ADAPT_SPLICING 0x04 |
#define | TS_ADAPT_TP_PRIVATE 0x02 |
#define | TS_ADAPT_EXTENSION 0x01 |
#define | PATPID 0x0000 |
#define | MAXPID 0x2000 |
#define | PTSTICKS 90000 |
#define | PCRFACTOR 300 |
#define | MAX33BIT 0x00000001FFFFFFFFLL |
#define | MAX27MHZ ((MAX33BIT + 1) * PCRFACTOR - 1) |
#define | MAX_SECTION_SIZE 4096 |
#define | MAX_PMT_TS (MAX_SECTION_SIZE / TS_SIZE + 1) |
#define | MAX_PMT_PIDS 32 |
#define | MIN_TS_PACKETS_FOR_FRAME_DETECTOR 100 |
Enumerations | |
enum | ePesHeader { phNeedMoreData = -1, phInvalid = 0, phMPEG1 = 1, phMPEG2 = 2 } |
Functions | |
ePesHeader | AnalyzePesHeader (const uchar *Data, int Count, int &PesPayloadOffset, bool *ContinuationHeader=NULL) |
bool | TsHasPayload (const uchar *p) |
bool | TsHasAdaptationField (const uchar *p) |
bool | TsPayloadStart (const uchar *p) |
bool | TsError (const uchar *p) |
int | TsPid (const uchar *p) |
bool | TsIsScrambled (const uchar *p) |
uchar | TsGetContinuityCounter (const uchar *p) |
void | TsSetContinuityCounter (uchar *p, uchar Counter) |
int | TsPayloadOffset (const uchar *p) |
int | TsGetPayload (const uchar **p) |
int | TsContinuityCounter (const uchar *p) |
int64_t | TsGetPcr (const uchar *p) |
void | TsHidePayload (uchar *p) |
void | TsSetPcr (uchar *p, int64_t Pcr) |
int64_t | TsGetPts (const uchar *p, int l) |
int64_t | TsGetDts (const uchar *p, int l) |
void | TsSetPts (uchar *p, int l, int64_t Pts) |
void | TsSetDts (uchar *p, int l, int64_t Dts) |
bool | PesLongEnough (int Length) |
bool | PesHasLength (const uchar *p) |
int | PesLength (const uchar *p) |
int | PesPayloadOffset (const uchar *p) |
bool | PesHasPts (const uchar *p) |
bool | PesHasDts (const uchar *p) |
int64_t | PesGetPts (const uchar *p) |
int64_t | PesGetDts (const uchar *p) |
void | PesSetPts (uchar *p, int64_t Pts) |
void | PesSetDts (uchar *p, int64_t Dts) |
int64_t | PtsAdd (int64_t Pts1, int64_t Pts2) |
int64_t | PtsDiff (int64_t Pts1, int64_t Pts2) |
void | BlockDump (const char *Name, const u_char *Data, int Length) |
void | TsDump (const char *Name, const u_char *Data, int Length) |
void | PesDump (const char *Name, const u_char *Data, int Length) |
Definition at line 58 of file remux.h.
Referenced by cCuttingThread::FixFrame().
#define MAX33BIT 0x00000001FFFFFFFFLL |
Definition at line 57 of file remux.h.
Referenced by cCuttingThread::FixFrame(), PtsAdd(), and PtsDiff().
#define MAX_PMT_PIDS 32 |
Definition at line 339 of file remux.h.
Referenced by cPatPmtParser::ParsePat().
#define MAX_PMT_TS (MAX_SECTION_SIZE / TS_SIZE + 1) |
#define MAX_SECTION_SIZE 4096 |
Definition at line 283 of file remux.h.
Referenced by cPatPmtGenerator::GeneratePmt().
#define MIN_TS_PACKETS_FOR_FRAME_DETECTOR 100 |
Definition at line 472 of file remux.h.
Referenced by cIndexFileGenerator::Action(), cFrameDetector::Analyze(), and cRecorder::cRecorder().
#define PATPID 0x0000 |
Definition at line 52 of file remux.h.
Referenced by cIndexFileGenerator::Action(), cFrameDetector::Analyze(), cCuttingThread::FixFrame(), cPatPmtGenerator::GeneratePat(), cTsPayload::GetByte(), cFileName::GetLastPatPmtVersions(), cCuttingThread::GetPendingPackets(), cPatPmtParser::ParsePatPmt(), cDevice::PlayTs(), and cDevice::StillPicture().
#define PCRFACTOR 300 |
Definition at line 56 of file remux.h.
Referenced by cCuttingThread::FixFrame(), TsGetPcr(), and TsSetPcr().
#define PTSTICKS 90000 |
Definition at line 55 of file remux.h.
Referenced by cFrameDetector::Analyze(), and cCuttingThread::cCuttingThread().
#define TS_ADAPT_FIELD_EXISTS 0x20 |
Definition at line 40 of file remux.h.
Referenced by TsHasAdaptationField(), and TsHidePayload().
#define TS_ADAPT_PCR 0x10 |
Definition at line 46 of file remux.h.
Referenced by TsGetPcr(), and TsSetPcr().
#define TS_CONT_CNT_MASK 0x0F |
Definition at line 42 of file remux.h.
Referenced by cCuttingThread::FixFrame(), TsContinuityCounter(), TsGetContinuityCounter(), and TsSetContinuityCounter().
#define TS_PAYLOAD_EXISTS 0x10 |
Definition at line 41 of file remux.h.
Referenced by TsHasPayload(), and TsHidePayload().
#define TS_PAYLOAD_START 0x40 |
Definition at line 36 of file remux.h.
Referenced by cPatPmtGenerator::GeneratePat(), cPatPmtGenerator::GeneratePmt(), TsHidePayload(), and TsPayloadStart().
#define TS_SCRAMBLING_CONTROL 0xC0 |
Definition at line 39 of file remux.h.
Referenced by cDevice::Action(), and TsIsScrambled().
#define TS_SIZE 188 |
Definition at line 34 of file remux.h.
Referenced by cRecorder::Action(), cDevice::Action(), cIndexFileGenerator::Action(), cTransfer::Activate(), cFrameDetector::Analyze(), cTsPayload::AtTsStart(), cMpeg2Fixer::cMpeg2Fixer(), cRecorder::cRecorder(), cTSBuffer::cTSBuffer(), cCuttingThread::FixFrame(), cPatPmtGenerator::GeneratePmt(), cTSBuffer::Get(), cTsPayload::GetByte(), cFileName::GetLastPatPmtVersions(), cCuttingThread::GetPendingPackets(), cAudioParser::Parse(), cMpeg2Parser::Parse(), cPatPmtParser::ParsePatPmt(), cDevice::PlayTs(), cDvbSdFfDevice::StillPicture(), cDvbHdFfDevice::StillPicture(), cDevice::StillPicture(), TsGetDts(), TsGetPayload(), TsGetPts(), TsHidePayload(), TsPayloadOffset(), TsSetDts(), TsSetPts(), and cTsPayload::Used().
#define TS_SYNC_BYTE 0x47 |
Definition at line 33 of file remux.h.
Referenced by cFrameDetector::Analyze(), cCuttingThread::FixFrame(), cPatPmtGenerator::GeneratePat(), cPatPmtGenerator::GeneratePmt(), cTSBuffer::Get(), cTsPayload::GetByte(), cFileName::GetLastPatPmtVersions(), cCuttingThread::GetPendingPackets(), cPatPmtParser::ParsePatPmt(), and cDevice::PlayTs().
enum ePesHeader |
ePesHeader AnalyzePesHeader | ( | const uchar * | Data, |
int | Count, | ||
int & | PesPayloadOffset, | ||
bool * | ContinuationHeader = NULL |
||
) |
Definition at line 32 of file remux.c.
References phInvalid, phMPEG1, phMPEG2, and phNeedMoreData.
Referenced by cRemux::SetBrokenLink().
void BlockDump | ( | const char * | Name, |
const u_char * | Data, | ||
int | Length | ||
) |
void PesDump | ( | const char * | Name, |
const u_char * | Data, | ||
int | Length | ||
) |
|
inline |
Definition at line 190 of file remux.h.
Referenced by TsGetDts().
|
inline |
Definition at line 181 of file remux.h.
Referenced by cDvbPlayer::Action(), cFrameDetector::Analyze(), cDvbSubtitleConverter::Convert(), cDvbSubtitleConverter::ConvertFragments(), cDvbPlayer::Goto(), and TsGetPts().
|
inline |
Definition at line 176 of file remux.h.
Referenced by TsGetDts(), and TsSetDts().
|
inline |
Definition at line 156 of file remux.h.
Referenced by cTsToPes::GetPes().
|
inline |
Definition at line 171 of file remux.h.
Referenced by cFrameDetector::Analyze(), cDvbSubtitleConverter::ConvertFragments(), TsGetPts(), and TsSetPts().
|
inline |
Definition at line 161 of file remux.h.
Referenced by cTsToPes::GetPes(), and cDevice::PlayPes().
|
inline |
Definition at line 151 of file remux.h.
Referenced by cTsToPes::GetPes().
|
inline |
Definition at line 166 of file remux.h.
Referenced by cDvbSubtitleConverter::Convert(), cDvbSubtitleConverter::ConvertFragments(), cRemux::SetBrokenLink(), and cTsPayload::SkipPesHeader().
void PesSetDts | ( | uchar * | p, |
int64_t | Dts | ||
) |
Definition at line 212 of file remux.c.
Referenced by TsSetDts().
void PesSetPts | ( | uchar * | p, |
int64_t | Pts | ||
) |
Definition at line 203 of file remux.c.
Referenced by TsSetPts().
|
inline |
Adds the given PTS values, taking into account the 33bit wrap around.
Definition at line 204 of file remux.h.
References MAX33BIT.
Referenced by cCuttingThread::FixFrame().
int64_t PtsDiff | ( | int64_t | Pts1, |
int64_t | Pts2 | ||
) |
Returns the difference between two PTS values.
The result of Pts2 - Pts1 is the actual number of 90kHz time ticks that pass from Pts1 to Pts2, properly taking into account the 33bit wrap around. If Pts2 is "before" Pts1, the result is negative.
Definition at line 221 of file remux.c.
References MAX33BIT.
Referenced by cCuttingThread::FixFrame(), and cCuttingThread::GetPendingPackets().
|
inline |
Definition at line 116 of file remux.h.
References TS_CONT_CNT_MASK.
void TsDump | ( | const char * | Name, |
const u_char * | Data, | ||
int | Length | ||
) |
|
inline |
Definition at line 90 of file remux.h.
References TS_CONT_CNT_MASK.
Referenced by cCuttingThread::FixFrame().
int64_t TsGetDts | ( | const uchar * | p, |
int | l | ||
) |
Definition at line 160 of file remux.c.
References PesGetDts(), PesHasDts(), TS_SIZE, TsGetPayload(), and TsPayloadStart().
Referenced by cCuttingThread::FixFrame().
|
inline |
Definition at line 106 of file remux.h.
References TS_SIZE, TsHasPayload(), and TsPayloadOffset().
Referenced by cTsToPes::PutTs(), TsGetDts(), TsGetPts(), TsSetDts(), and TsSetPts().
|
inline |
Definition at line 121 of file remux.h.
References PCRFACTOR, TS_ADAPT_PCR, and TsHasAdaptationField().
Referenced by cCuttingThread::FixFrame().
int64_t TsGetPts | ( | const uchar * | p, |
int | l | ||
) |
Definition at line 147 of file remux.c.
References PesGetPts(), PesHasPts(), TS_SIZE, TsGetPayload(), and TsPayloadStart().
Referenced by cDvbPlayer::Action(), cCuttingThread::FixFrame(), cCuttingThread::GetPendingPackets(), and cDvbPlayer::Goto().
|
inline |
Definition at line 65 of file remux.h.
References TS_ADAPT_FIELD_EXISTS.
Referenced by TsGetPcr(), TsPayloadOffset(), and TsSetPcr().
|
inline |
Definition at line 60 of file remux.h.
References TS_PAYLOAD_EXISTS.
Referenced by cFrameDetector::Analyze(), cCuttingThread::FixFrame(), cTsPayload::GetByte(), cDevice::PlayTs(), and TsGetPayload().
void TsHidePayload | ( | uchar * | p | ) |
Definition at line 121 of file remux.c.
References TS_ADAPT_FIELD_EXISTS, TS_PAYLOAD_EXISTS, TS_PAYLOAD_START, and TS_SIZE.
Referenced by cCuttingThread::FixFrame().
|
inline |
Definition at line 85 of file remux.h.
References TS_SCRAMBLING_CONTROL.
Referenced by cFrameDetector::Analyze().
|
inline |
Definition at line 100 of file remux.h.
References TS_SIZE, and TsHasAdaptationField().
Referenced by cFrameDetector::Analyze(), cTsPayload::GetByte(), cPatPmtParser::ParsePat(), cPatPmtParser::ParsePmt(), cDevice::PlayTs(), cTsPayload::SkipPesHeader(), and TsGetPayload().
|
inline |
Definition at line 70 of file remux.h.
References TS_PAYLOAD_START.
Referenced by cFrameDetector::Analyze(), cTsPayload::AtPayloadStart(), cTsPayload::GetByte(), cAudioParser::Parse(), cMpeg2Parser::Parse(), cH264Parser::Parse(), cPatPmtParser::ParsePmt(), cDevice::PlayTsVideo(), cTsToPes::PutTs(), cDevice::StillPicture(), TsGetDts(), TsGetPts(), TsSetDts(), and TsSetPts().
|
inline |
Definition at line 80 of file remux.h.
References TS_PID_MASK_HI.
Referenced by cDevice::Action(), cIndexFileGenerator::Action(), cFrameDetector::Analyze(), cMpeg2Fixer::cMpeg2Fixer(), cCuttingThread::FixFrame(), cTsPayload::GetByte(), cFileName::GetLastPatPmtVersions(), cCuttingThread::GetPendingPackets(), cPatPmtParser::ParsePatPmt(), cDevice::PlayTs(), cDvbHdFfDevice::PlayTsAudio(), cDvbHdFfDevice::PlayTsVideo(), cTsPayload::Setup(), and cDevice::StillPicture().
Definition at line 95 of file remux.h.
References TS_CONT_CNT_MASK.
Referenced by cCuttingThread::FixFrame().
void TsSetDts | ( | uchar * | p, |
int | l, | ||
int64_t | Dts | ||
) |
Definition at line 187 of file remux.c.
References PesHasDts(), PesSetDts(), TS_SIZE, TsGetPayload(), and TsPayloadStart().
Referenced by cCuttingThread::FixFrame().
void TsSetPcr | ( | uchar * | p, |
int64_t | Pcr | ||
) |
Definition at line 131 of file remux.c.
References PCRFACTOR, TS_ADAPT_PCR, and TsHasAdaptationField().
Referenced by cCuttingThread::FixFrame().
void TsSetPts | ( | uchar * | p, |
int | l, | ||
int64_t | Pts | ||
) |
Definition at line 173 of file remux.c.
References PesHasPts(), PesSetPts(), TS_SIZE, TsGetPayload(), and TsPayloadStart().
Referenced by cCuttingThread::FixFrame().