vdr
2.2.0
|
#include "remux.h"
#include "device.h"
#include "libsi/si.h"
#include "libsi/section.h"
#include "libsi/descriptor.h"
#include "recording.h"
#include "shutdown.h"
#include "tools.h"
Go to the source code of this file.
Classes | |
class | cFrameParser |
class | cAudioParser |
class | cMpeg2Parser |
class | cH264Parser |
Macros | |
#define | dbgpatpmt(a...) if (DebugPatPmt) fprintf(stderr, a) |
#define | dbgframes(a...) if (DebugFrames) fprintf(stderr, a) |
#define | MAX_TS_PACKETS_FOR_VIDEO_FRAME_DETECTION 6 |
#define | WRN_TS_PACKETS_FOR_VIDEO_FRAME_DETECTION (MAX_TS_PACKETS_FOR_VIDEO_FRAME_DETECTION / 2) |
#define | WRN_TS_PACKETS_FOR_FRAME_DETECTOR (MIN_TS_PACKETS_FOR_FRAME_DETECTOR / 2) |
#define | EMPTY_SCANNER (0xFFFFFFFF) |
#define | VIDEO_STREAM_S 0xE0 |
#define | P_TSID 0x8008 |
#define | P_PMT_PID 0x0084 |
#define | MAXPID 0x2000 |
#define | SETPID(p) { if ((p) >= 0 && (p) < MAXPID) Used[p] = true; } |
#define | SETPIDS(l) { const int *p = l; while (*p) { SETPID(*p); p++; } } |
#define | MAXPESLENGTH 0xFFF0 |
Functions | |
ePesHeader | AnalyzePesHeader (const uchar *Data, int Count, int &PesPayloadOffset, bool *ContinuationHeader) |
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) |
void | PesSetPts (uchar *p, int64_t Pts) |
void | PesSetDts (uchar *p, int64_t Dts) |
int64_t | PtsDiff (int64_t Pts1, int64_t Pts2) |
void | TsExtendAdaptionField (unsigned char *Packet, int ToLength) |
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) |
static int | CmpUint32 (const void *p1, const void *p2) |
Variables | |
static bool | DebugPatPmt = false |
static bool | DebugFrames = false |
#define dbgframes | ( | a... | ) | if (DebugFrames) fprintf(stderr, a) |
Definition at line 24 of file remux.c.
Referenced by cFrameDetector::Analyze(), cAudioParser::Parse(), cMpeg2Parser::Parse(), cH264Parser::Parse(), cH264Parser::ParseAccessUnitDelimiter(), cH264Parser::ParseSequenceParameterSet(), and cH264Parser::ParseSliceHeader().
#define dbgpatpmt | ( | a... | ) | if (DebugPatPmt) fprintf(stderr, a) |
Definition at line 23 of file remux.c.
Referenced by cPatPmtParser::ParsePat(), and cPatPmtParser::ParsePmt().
#define EMPTY_SCANNER (0xFFFFFFFF) |
Definition at line 30 of file remux.c.
Referenced by cH264Parser::cH264Parser(), cMpeg2Parser::cMpeg2Parser(), cTsPayload::Find(), cMpeg2Parser::Parse(), and cH264Parser::Parse().
#define MAX_TS_PACKETS_FOR_VIDEO_FRAME_DETECTION 6 |
Definition at line 26 of file remux.c.
Referenced by cTsPayload::GetByte().
#define MAXPESLENGTH 0xFFF0 |
Definition at line 1057 of file remux.c.
Referenced by cTsToPes::GetPes().
#define MAXPID 0x2000 |
Definition at line 510 of file remux.c.
Referenced by cPacketStorage::cPacketStorage(), cPatPmtGenerator::GeneratePmtPid(), cCuttingThread::GetPendingPackets(), and cPacketStorage::~cPacketStorage().
#define P_PMT_PID 0x0084 |
Definition at line 509 of file remux.c.
Referenced by cPatPmtGenerator::GeneratePmtPid().
#define P_TSID 0x8008 |
Definition at line 508 of file remux.c.
Referenced by cPatPmtGenerator::GeneratePat().
#define SETPID | ( | p | ) | { if ((p) >= 0 && (p) < MAXPID) Used[p] = true; } |
Referenced by cPatPmtGenerator::GeneratePmtPid().
#define SETPIDS | ( | l | ) | { const int *p = l; while (*p) { SETPID(*p); p++; } } |
Referenced by cPatPmtGenerator::GeneratePmtPid().
#define VIDEO_STREAM_S 0xE0 |
Definition at line 98 of file remux.c.
Referenced by cRemux::SetBrokenLink().
#define WRN_TS_PACKETS_FOR_FRAME_DETECTOR (MIN_TS_PACKETS_FOR_FRAME_DETECTOR / 2) |
Definition at line 28 of file remux.c.
Referenced by cTsPayload::Statistics().
#define WRN_TS_PACKETS_FOR_VIDEO_FRAME_DETECTION (MAX_TS_PACKETS_FOR_VIDEO_FRAME_DETECTION / 2) |
Definition at line 27 of file remux.c.
Referenced by cTsPayload::Statistics().
ePesHeader AnalyzePesHeader | ( | const uchar * | Data, |
int | Count, | ||
int & | PesPayloadOffset, | ||
bool * | ContinuationHeader | ||
) |
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 | ||
) |
|
static |
Definition at line 1537 of file remux.c.
Referenced by cFrameDetector::Analyze().
void PesDump | ( | const char * | Name, |
const u_char * | Data, | ||
int | Length | ||
) |
void PesSetDts | ( | uchar * | p, |
int64_t | Dts | ||
) |
Definition at line 212 of file remux.c.
Referenced by PesGetDts(), and TsSetDts().
void PesSetPts | ( | uchar * | p, |
int64_t | Pts | ||
) |
Definition at line 203 of file remux.c.
Referenced by PesGetDts(), and TsSetPts().
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(), cCuttingThread::GetPendingPackets(), and PtsAdd().
void TsDump | ( | const char * | Name, |
const u_char * | Data, | ||
int | Length | ||
) |
void TsExtendAdaptionField | ( | unsigned char * | Packet, |
int | ToLength | ||
) |
Definition at line 346 of file remux.c.
References TS_ADAPT_FIELD_EXISTS, TS_PAYLOAD_EXISTS, TS_SIZE, and TsPayloadOffset().
Referenced by cNaluDumper::ProcessTSPacket(), and TsGetPcr().
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(), and TsGetPcr().
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(), cDvbPlayer::Goto(), and TsGetPcr().
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(), and TsGetPcr().
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(), and TsGetPcr().
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(), and TsGetPcr().
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(), and TsGetPcr().