vdr
2.4.0
|
Go to the source code of this file.
Classes | |
class | cRemux |
class | cTsPayload |
class | cPatPmtGenerator |
class | cPatPmtParser |
class | cEitGenerator |
class | cTsToPes |
class | cFrameDetector |
class | cNaluDumper |
struct | cNaluDumper::sPayloadInfo |
class | cNaluStreamProcessor |
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 | CATPID 0x0001 |
#define | EITPID 0x0012 |
#define | MAXPID 0x2000 |
#define | PTSTICKS 90000 |
#define | PCRFACTOR 300 |
#define | MAX33BIT 0x00000001FFFFFFFFLL |
#define | MAX27MHZ ((MAX33BIT + 1) * PCRFACTOR - 1) |
#define | TS_SYNC(Data, Length) (*Data == TS_SYNC_BYTE ? 0 : TsSync(Data, Length, __FILE__, __FUNCTION__, __LINE__)) |
#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 |
#define | PATCH_NALUDUMP 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 | TsSetPayload (const uchar *p) |
bool | TsHasAdaptationField (const uchar *p) |
bool | TsPayloadStart (const uchar *p) |
bool | TsError (const uchar *p) |
int | TsPid (const uchar *p) |
void | TsSetPid (uchar *p, int Pid) |
bool | TsIsScrambled (const uchar *p) |
uchar | TsContinuityCounter (const uchar *p) |
void | TsSetContinuityCounter (uchar *p, uchar Counter) |
int | TsPayloadOffset (const uchar *p) |
int | TsGetPayload (const uchar **p) |
int64_t | TsGetPcr (const uchar *p) |
void | TsHidePayload (uchar *p) |
void | TsSetPcr (uchar *p, int64_t Pcr) |
int | TsSync (const uchar *Data, int Length, const char *File=NULL, const char *Function=NULL, int Line=0) |
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) |
void | TsExtendAdaptionField (unsigned char *Packet, int ToLength) |
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) |
#define MAX_PMT_TS (MAX_SECTION_SIZE / TS_SIZE + 1) |
#define TS_SYNC | ( | Data, | |
Length | |||
) | (*Data == TS_SYNC_BYTE ? 0 : TsSync(Data, Length, __FILE__, __FUNCTION__, __LINE__)) |
enum ePesHeader |
ePesHeader AnalyzePesHeader | ( | const uchar * | Data, |
int | Count, | ||
int & | PesPayloadOffset, | ||
bool * | ContinuationHeader = NULL |
||
) |
Definition at line 32 of file remux.c.
References PesPayloadOffset(), 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 208 of file remux.h.
Referenced by TsGetDts().
|
inline |
Definition at line 199 of file remux.h.
Referenced by cDvbPlayer::Action(), cFrameDetector::Analyze(), cDvbSubtitleConverter::Convert(), cDvbSubtitleConverter::ConvertFragments(), cDvbPlayer::Goto(), and TsGetPts().
|
inline |
Definition at line 194 of file remux.h.
Referenced by TsGetDts(), and TsSetDts().
|
inline |
Definition at line 174 of file remux.h.
Referenced by cTsToPes::GetPes().
|
inline |
Definition at line 189 of file remux.h.
Referenced by cDvbPlayer::Action(), cFrameDetector::Analyze(), cDvbSubtitleConverter::Convert(), cDvbSubtitleConverter::ConvertFragments(), TsGetPts(), and TsSetPts().
|
inline |
Definition at line 179 of file remux.h.
Referenced by cTsToPes::GetPes(), and cDevice::PlayPes().
|
inline |
Definition at line 169 of file remux.h.
Referenced by cTsToPes::GetPes().
|
inline |
Definition at line 184 of file remux.h.
Referenced by AnalyzePesHeader(), cDvbSubtitleConverter::Convert(), cDvbSubtitleConverter::ConvertFragments(), cRemux::SetBrokenLink(), and cTsPayload::SkipPesHeader().
void PesSetDts | ( | uchar * | p, |
int64_t | Dts | ||
) |
Definition at line 225 of file remux.c.
Referenced by TsSetDts().
void PesSetPts | ( | uchar * | p, |
int64_t | Pts | ||
) |
Definition at line 216 of file remux.c.
Referenced by TsSetPts().
|
inline |
Adds the given PTS values, taking into account the 33bit wrap around.
Definition at line 222 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 234 of file remux.c.
References MAX33BIT.
Referenced by cCuttingThread::FixFrame(), and cCuttingThread::GetPendingPackets().
Definition at line 103 of file remux.h.
References TS_CONT_CNT_MASK.
Referenced by cCuttingThread::FixFrame(), and cNaluDumper::ProcessTSPacket().
void TsDump | ( | const char * | Name, |
const u_char * | Data, | ||
int | Length | ||
) |
|
inline |
void TsExtendAdaptionField | ( | unsigned char * | Packet, |
int | ToLength | ||
) |
Definition at line 359 of file remux.c.
References TS_ADAPT_FIELD_EXISTS, TS_PAYLOAD_EXISTS, TS_SIZE, and TsPayloadOffset().
Referenced by cNaluDumper::ProcessTSPacket().
int64_t TsGetDts | ( | const uchar * | p, |
int | l | ||
) |
Definition at line 173 of file remux.c.
References PesGetDts(), PesHasDts(), TS_SIZE, TsGetPayload(), and TsPayloadStart().
Referenced by cCuttingThread::FixFrame().
|
inline |
Definition at line 119 of file remux.h.
References TS_SIZE, TsHasPayload(), and TsPayloadOffset().
Referenced by cTsToPes::PutTs(), TsGetDts(), TsGetPts(), TsSetDts(), and TsSetPts().
|
inline |
Definition at line 129 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 160 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 72 of file remux.h.
References TS_ADAPT_FIELD_EXISTS.
Referenced by cNaluDumper::ProcessTSPacket(), TsGetPcr(), TsPayloadOffset(), and TsSetPcr().
|
inline |
Definition at line 62 of file remux.h.
References TS_PAYLOAD_EXISTS.
Referenced by cFrameDetector::Analyze(), cCuttingThread::FixFrame(), cTsPayload::GetByte(), cDevice::PlayTs(), cNaluDumper::ProcessTSPacket(), 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 98 of file remux.h.
References TS_SCRAMBLING_CONTROL.
Referenced by cDevice::Action(), cFrameDetector::Analyze(), and cCaActivationReceiver::Receive().
|
inline |
Definition at line 113 of file remux.h.
References TS_SIZE, and TsHasAdaptationField().
Referenced by cFrameDetector::Analyze(), cTsPayload::GetByte(), cPatPmtParser::ParsePat(), cPatPmtParser::ParsePmt(), cDevice::PlayTs(), cNaluDumper::ProcessTSPacket(), cTsPayload::SkipPesHeader(), TsExtendAdaptionField(), and TsGetPayload().
|
inline |
Definition at line 77 of file remux.h.
References TS_PAYLOAD_START.
Referenced by cFrameDetector::Analyze(), cTsPayload::AtPayloadStart(), cTsPayload::GetByte(), cAudioParser::Parse(), cMpeg2Parser::Parse(), cH264Parser::Parse(), cH265Parser::Parse(), cPatPmtParser::ParsePmt(), cDevice::PlayTsVideo(), cNaluDumper::ProcessTSPacket(), cTsToPes::PutTs(), cCaPidReceiver::Receive(), cDevice::StillPicture(), TsGetDts(), TsGetPts(), TsSetDts(), and TsSetPts().
|
inline |
Definition at line 87 of file remux.h.
References TS_PID_MASK_HI.
Referenced by cDevice::Action(), cIndexFileGenerator::Action(), cFrameDetector::Analyze(), cMpeg2Fixer::cMpeg2Fixer(), cMtdCamSlot::Decrypt(), cCuttingThread::FixFrame(), cNaluStreamProcessor::GetBuffer(), cTsPayload::GetByte(), cFileName::GetLastPatPmtVersions(), cCuttingThread::GetPendingPackets(), cPatPmtParser::ParsePatPmt(), cDevice::PlayTs(), cDvbHdFfDevice::PlayTsAudio(), cDvbHdFfDevice::PlayTsVideo(), cMtdHandler::Put(), cCaPidReceiver::Receive(), cTsPayload::Setup(), and cDevice::StillPicture().
Definition at line 108 of file remux.h.
References TS_CONT_CNT_MASK.
Referenced by cCuttingThread::FixFrame(), and cNaluDumper::ProcessTSPacket().
void TsSetDts | ( | uchar * | p, |
int | l, | ||
int64_t | Dts | ||
) |
Definition at line 200 of file remux.c.
References PesHasDts(), PesSetDts(), TS_SIZE, TsGetPayload(), and TsPayloadStart().
Referenced by cCuttingThread::FixFrame().
|
inline |
Definition at line 67 of file remux.h.
References TS_PAYLOAD_EXISTS.
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().
|
inline |
Definition at line 92 of file remux.h.
References TS_PID_MASK_HI.
Referenced by cMtdCamSlot::Decrypt().
void TsSetPts | ( | uchar * | p, |
int | l, | ||
int64_t | Pts | ||
) |
Definition at line 186 of file remux.c.
References PesHasPts(), PesSetPts(), TS_SIZE, TsGetPayload(), and TsPayloadStart().
Referenced by cCuttingThread::FixFrame().