vdr
2.7.6
|
Go to the source code of this file.
Classes | |
class | cRemux |
class | cTsPayload |
class | cPatPmtGenerator |
class | cPatPmtParser |
class | cEitGenerator |
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 | 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 |
Enumerations | |
enum | ePesHeader { phNeedMoreData = -1 , phInvalid = 0 , phMPEG1 = 1 , phMPEG2 = 2 } |
enum | eScanType { stUnknown = 0 , stProgressive = 1 , stInterlaced = 2 , stMax } |
enum | eAspectRatio { arUnknown = 0 , ar_1_1 = 1 , ar_4_3 = 2 , ar_16_9 = 3 , ar_2_21_1 = 4 , arMax } |
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) |
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) |
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) |
Variables | |
const char * | ScanTypeChars |
const char * | AspectRatioTexts [] |
#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 eAspectRatio |
enum ePesHeader |
enum eScanType |
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 202 of file remux.h.
Referenced by TsGetDts().
|
inline |
Definition at line 193 of file remux.h.
Referenced by cDvbPlayer::Action(), cFrameDetector::Analyze(), cDvbSubtitleConverter::Convert(), cDvbSubtitleConverter::ConvertFragments(), cDvbPlayer::Goto(), and TsGetPts().
|
inline |
Definition at line 188 of file remux.h.
Referenced by TsGetDts(), and TsSetDts().
|
inline |
Definition at line 168 of file remux.h.
Referenced by cTsToPes::GetPes().
|
inline |
Definition at line 183 of file remux.h.
Referenced by cDvbPlayer::Action(), cFrameDetector::Analyze(), cDvbSubtitleConverter::Convert(), cDvbSubtitleConverter::ConvertFragments(), TsGetPts(), and TsSetPts().
|
inline |
Definition at line 173 of file remux.h.
Referenced by cTsToPes::GetPes(), and cDevice::PlayPes().
|
inline |
Definition at line 163 of file remux.h.
Referenced by cTsToPes::GetPes().
|
inline |
Definition at line 178 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 216 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 cFrameChecker::CheckFrame(), cCuttingThread::FixFrame(), and cCuttingThread::GetPendingPackets().
Definition at line 98 of file remux.h.
References TS_CONT_CNT_MASK.
Referenced by cTsChecker::CheckTs(), and cCuttingThread::FixFrame().
void TsDump | ( | const char * | Name, |
const u_char * | Data, | ||
int | Length | ||
) |
|
inline |
Definition at line 77 of file remux.h.
References TS_ERROR.
Referenced by cTsChecker::CheckTs(), cTsPayload::GetByte(), and cTsToPes::PutTs().
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 114 of file remux.h.
References TS_SIZE, TsHasPayload(), and TsPayloadOffset().
Referenced by cTsToPes::PutTs(), TsGetDts(), TsGetPts(), TsSetDts(), and TsSetPts().
|
inline |
Definition at line 124 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(), cFrameChecker::CheckFrame(), cCuttingThread::FixFrame(), cCuttingThread::GetPendingPackets(), and cDvbPlayer::Goto().
|
inline |
Definition at line 67 of file remux.h.
References TS_ADAPT_FIELD_EXISTS.
Referenced by TsGetPcr(), TsPayloadOffset(), and TsSetPcr().
|
inline |
Definition at line 62 of file remux.h.
References TS_PAYLOAD_EXISTS.
Referenced by cFrameDetector::Analyze(), cTsChecker::CheckTs(), 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 93 of file remux.h.
References TS_SCRAMBLING_CONTROL.
Referenced by cDevice::Action(), cFrameDetector::Analyze(), cTsChecker::CheckTs(), and cCaActivationReceiver::Receive().
|
inline |
Definition at line 108 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 72 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(), cTsToPes::PutTs(), cCaPidReceiver::Receive(), cDevice::StillPicture(), TsGetDts(), TsGetPts(), TsSetDts(), and TsSetPts().
|
inline |
Definition at line 82 of file remux.h.
References TS_PID_MASK_HI.
Referenced by cDevice::Action(), cIndexFileGenerator::Action(), cFrameDetector::Analyze(), cTsPayload::AtPayloadStart(), cTsChecker::CheckTs(), cMpeg2Fixer::cMpeg2Fixer(), cMtdCamSlot::Decrypt(), cCuttingThread::FixFrame(), 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 103 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 200 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().
|
inline |
Definition at line 87 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().
int TsSync | ( | const uchar * | Data, |
int | Length, | ||
const char * | File = NULL , |
||
const char * | Function = NULL , |
||
int | Line = 0 |
||
) |
Definition at line 147 of file remux.c.
References esyslog, TS_SIZE, and TS_SYNC_BYTE.
|
extern |
Definition at line 2096 of file remux.c.
Referenced by cRecordingInfo::AspectRatioText(), cMpeg2Parser::Parse(), cH264Parser::ParseSequenceParameterSet(), cH265Parser::ParseSequenceParameterSet(), cRecordingInfo::Read(), and cRecordingInfo::Write().
|
extern |
Definition at line 2095 of file remux.c.
Referenced by cMpeg2Parser::Parse(), cH264Parser::ParseSequenceParameterSet(), cH265Parser::ParseSequenceParameterSet(), cRecordingInfo::Read(), cRecordingInfo::ScanTypeChar(), and cRecordingInfo::Write().