vdr  1.7.27
Classes | Defines | Enumerations | Functions
remux.h File Reference
#include "channels.h"
#include "tools.h"

Go to the source code of this file.

Classes

class  cRemux
class  cPatPmtGenerator
class  cPatPmtParser
class  cTsToPes
class  cFrameDetector

Defines

#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 MAX_SECTION_SIZE   4096
#define MAX_PMT_TS   (MAX_SECTION_SIZE / TS_SIZE + 1)
#define MIN_TS_PACKETS_FOR_FRAME_DETECTOR   5

Enumerations

enum  ePesHeader {
  phNeedMoreData = -1, phInvalid = 0, phMPEG1 = 1, phMPEG2 = 2,
  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)
int TsPayloadOffset (const uchar *p)
int TsGetPayload (const uchar **p)
int TsContinuityCounter (const uchar *p)
int TsGetAdaptationField (const uchar *p)
int64_t TsGetPts (const uchar *p, int l)
void TsSetTeiOnBrokenPackets (uchar *p, int l)
bool PesLongEnough (int Length)
bool PesHasLength (const uchar *p)
int PesLength (const uchar *p)
int PesPayloadOffset (const uchar *p)
bool PesHasPts (const uchar *p)
int64_t PesGetPts (const uchar *p)
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 Documentation

#define MAX_PMT_TS   (MAX_SECTION_SIZE / TS_SIZE + 1)

Definition at line 157 of file include/vdr/remux.h.

#define MAX_SECTION_SIZE   4096

Definition at line 156 of file include/vdr/remux.h.

Referenced by cPatPmtGenerator::GeneratePmt().

#define MAXPID   0x2000

Definition at line 53 of file include/vdr/remux.h.

#define PATPID   0x0000
#define TS_ADAPT_DISCONT   0x80

Definition at line 43 of file include/vdr/remux.h.

#define TS_ADAPT_ELEM_PRIO   0x20

Definition at line 45 of file include/vdr/remux.h.

#define TS_ADAPT_EXTENSION   0x01

Definition at line 50 of file include/vdr/remux.h.

#define TS_ADAPT_FIELD_EXISTS   0x20

Definition at line 40 of file include/vdr/remux.h.

Referenced by TsHasAdaptationField().

#define TS_ADAPT_OPCR   0x08

Definition at line 47 of file include/vdr/remux.h.

#define TS_ADAPT_PCR   0x10

Definition at line 46 of file include/vdr/remux.h.

#define TS_ADAPT_RANDOM_ACC   0x40

Definition at line 44 of file include/vdr/remux.h.

#define TS_ADAPT_SPLICING   0x04

Definition at line 48 of file include/vdr/remux.h.

#define TS_ADAPT_TP_PRIVATE   0x02

Definition at line 49 of file include/vdr/remux.h.

#define TS_CONT_CNT_MASK   0x0F

Definition at line 42 of file include/vdr/remux.h.

Referenced by TsContinuityCounter().

#define TS_ERROR   0x80

Definition at line 35 of file include/vdr/remux.h.

Referenced by TsError(), and TsSetTeiOnBrokenPackets().

#define TS_PAYLOAD_EXISTS   0x10

Definition at line 41 of file include/vdr/remux.h.

Referenced by TsHasPayload().

#define TS_PAYLOAD_START   0x40
#define TS_PID_MASK_HI   0x1F

Definition at line 38 of file include/vdr/remux.h.

Referenced by TsPid().

#define TS_SCRAMBLING_CONTROL   0xC0

Definition at line 39 of file include/vdr/remux.h.

Referenced by cDevice::Action(), and TsIsScrambled().

#define TS_SIZE   188
#define TS_SYNC_BYTE   0x47
#define TS_TRANSPORT_PRIORITY   0x20

Definition at line 37 of file include/vdr/remux.h.


Enumeration Type Documentation

enum ePesHeader
Enumerator:
phNeedMoreData 
phInvalid 
phMPEG1 
phMPEG2 
phNeedMoreData 
phInvalid 
phMPEG1 
phMPEG2 

Definition at line 16 of file include/vdr/remux.h.


Function Documentation

ePesHeader AnalyzePesHeader ( const uchar Data,
int  Count,
int &  PesPayloadOffset,
bool *  ContinuationHeader = NULL 
)

Definition at line 26 of file remux.c.

Referenced by cRemux::SetBrokenLink().

void BlockDump ( const char *  Name,
const u_char *  Data,
int  Length 
)

Definition at line 806 of file remux.c.

void PesDump ( const char *  Name,
const u_char *  Data,
int  Length 
)

Definition at line 832 of file remux.c.

int64_t PesGetPts ( const uchar p) [inline]
bool PesHasLength ( const uchar p) [inline]

Definition at line 125 of file include/vdr/remux.h.

Referenced by cTsToPes::GetPes().

bool PesHasPts ( const uchar p) [inline]
int PesLength ( const uchar p) [inline]

Definition at line 130 of file include/vdr/remux.h.

Referenced by cTsToPes::GetPes(), and cDevice::PlayPes().

bool PesLongEnough ( int  Length) [inline]

Definition at line 120 of file include/vdr/remux.h.

Referenced by cTsToPes::GetPes().

int PesPayloadOffset ( const uchar p) [inline]
int TsContinuityCounter ( const uchar p) [inline]

Definition at line 101 of file include/vdr/remux.h.

References TS_CONT_CNT_MASK.

void TsDump ( const char *  Name,
const u_char *  Data,
int  Length 
)

Definition at line 817 of file remux.c.

Referenced by PesDump().

bool TsError ( const uchar p) [inline]

Definition at line 70 of file include/vdr/remux.h.

References TS_ERROR.

Referenced by cTsToPes::PutTs().

int TsGetAdaptationField ( const uchar p) [inline]

Definition at line 106 of file include/vdr/remux.h.

References TsHasAdaptationField().

int TsGetPayload ( const uchar **  p) [inline]

Definition at line 91 of file include/vdr/remux.h.

References TS_SIZE, TsHasPayload(), and TsPayloadOffset().

Referenced by cTsToPes::PutTs(), and TsGetPts().

int64_t TsGetPts ( const uchar p,
int  l 
)

Definition at line 115 of file remux.c.

Referenced by cDvbPlayer::Action(), and cDvbPlayer::Goto().

bool TsHasAdaptationField ( const uchar p) [inline]

Definition at line 60 of file include/vdr/remux.h.

References TS_ADAPT_FIELD_EXISTS.

Referenced by TsGetAdaptationField(), and TsPayloadOffset().

bool TsHasPayload ( const uchar p) [inline]

Definition at line 55 of file include/vdr/remux.h.

References TS_PAYLOAD_EXISTS.

Referenced by cFrameDetector::Analyze(), cDevice::PlayTs(), and TsGetPayload().

bool TsIsScrambled ( const uchar p) [inline]

Definition at line 80 of file include/vdr/remux.h.

References TS_SCRAMBLING_CONTROL.

Referenced by cFrameDetector::Analyze().

int TsPayloadOffset ( const uchar p) [inline]
bool TsPayloadStart ( const uchar p) [inline]
int TsPid ( const uchar p) [inline]
void TsSetTeiOnBrokenPackets ( uchar p,
int  l 
)

Definition at line 128 of file remux.c.

Referenced by cCuttingThread::Action(), and cDvbPlayer::Action().