vdr 2.6.9
|
#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 |
class | cH265Parser |
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) |
int | TsSync (const uchar *Data, int Length, const char *File, const char *Function, int Line) |
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 | 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 |
const char * | ScanTypeChars = "-pi" |
const char * | AspectRatioTexts [] |
#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(), cH265Parser::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(), cH264Parser::Parse(), and cH265Parser::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 1073 of file remux.c.
Referenced by cTsToPes::GetPes().
#define MAXPID 0x2000 |
Definition at line 464 of file remux.c.
Referenced by cPacketStorage::cPacketStorage(), cCuttingThread::GetPendingPackets(), and cPacketStorage::~cPacketStorage().
#define P_PMT_PID 0x0084 |
Definition at line 463 of file remux.c.
Referenced by cPatPmtGenerator::GeneratePmtPid().
#define P_TSID 0x8008 |
Definition at line 462 of file remux.c.
Referenced by cPatPmtGenerator::GeneratePat().
#define SETPID | ( | p | ) | { if ((p) >= 0 && (p) < MAXPID) Used[p] = true; } |
#define SETPIDS | ( | l | ) | { const int *p = l; while (*p) { SETPID(*p); p++; } } |
#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 PesPayloadOffset(), phInvalid, phMPEG1, phMPEG2, and phNeedMoreData.
Referenced by cRemux::SetBrokenLink().
void BlockDump | ( | const char * | Name, |
const u_char * | Data, | ||
int | Length ) |
|
static |
Definition at line 1963 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 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().
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().
void TsDump | ( | const char * | Name, |
const u_char * | Data, | ||
int | Length ) |
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().
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().
void TsHidePayload | ( | uchar * | p | ) |
Definition at line 121 of file remux.c.
References TS_ADAPT_FIELD_EXISTS, and TS_SIZE.
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().
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, | ||
const char * | Function, | ||
int | Line ) |
Definition at line 147 of file remux.c.
References esyslog, TS_SIZE, and TS_SYNC_BYTE.
const char* AspectRatioTexts[] |
Definition at line 1937 of file remux.c.
Referenced by cRecordingInfo::AspectRatioText(), cMpeg2Parser::Parse(), cH264Parser::ParseSequenceParameterSet(), cH265Parser::ParseSequenceParameterSet(), cRecordingInfo::Read(), and cRecordingInfo::Write().
const char* ScanTypeChars = "-pi" |
Definition at line 1936 of file remux.c.
Referenced by cMpeg2Parser::Parse(), cH264Parser::ParseSequenceParameterSet(), cH265Parser::ParseSequenceParameterSet(), cRecordingInfo::Read(), cRecordingInfo::ScanTypeChar(), and cRecordingInfo::Write().