vdr
2.0.5
|
#include <remux.h>
Public Member Functions | |
cTsPayload (void) | |
cTsPayload (uchar *Data, int Length, int Pid=-1) | |
void | Setup (uchar *Data, int Length, int Pid=-1) |
bool | AtTsStart (void) |
bool | AtPayloadStart (void) |
int | Available (void) |
int | Used (void) |
bool | Eof (void) const |
uchar | GetByte (void) |
bool | SkipBytes (int Bytes) |
bool | SkipPesHeader (void) |
int | GetLastIndex (void) |
void | SetByte (uchar Byte, int Index) |
bool | Find (uint32_t Code) |
Protected Member Functions | |
void | Reset (void) |
Private Attributes | |
uchar * | data |
int | length |
int | pid |
int | index |
cTsPayload::cTsPayload | ( | void | ) |
cTsPayload::cTsPayload | ( | uchar * | Data, |
int | Length, | ||
int | Pid = -1 |
||
) |
|
inline |
Returns true if this payload handler is currently pointing to the first byte of a TS packet that starts a new payload.
Definition at line 243 of file remux.h.
References AtTsStart(), data, index, and TsPayloadStart().
Referenced by cMpeg2Parser::Parse(), and cH264Parser::Parse().
|
inline |
Returns true if this payload handler is currently pointing to first byte of a TS packet.
Definition at line 240 of file remux.h.
References index, length, and TS_SIZE.
Referenced by AtPayloadStart(), cMpeg2Parser::Parse(), and cH264Parser::Parse().
|
inline |
Returns the number of raw bytes (including any TS headers) still available in the TS payload handler.
Definition at line 246 of file remux.h.
Referenced by cMpeg2Parser::Parse(), and cH264Parser::Parse().
|
inline |
bool cTsPayload::Find | ( | uint32_t | Code | ) |
Searches for the four byte sequence given in Code and returns true if it was found within the payload data.
The next call to GetByte() will return the value immediately following the Code. If the code was not found, the read index will remain the same as before this call, so that several calls to Find() can be performed starting at the same index.. The special code 0xFFFFFFFF can not be searched, because this value is used to initialize the scanner.
Definition at line 302 of file remux.c.
References EMPTY_SCANNER, Eof(), GetByte(), and index.
Referenced by cMpeg2Fixer::FindHeader().
uchar cTsPayload::GetByte | ( | void | ) |
Gets the next byte of the TS payload, skipping any intermediate TS header data.
Definition at line 250 of file remux.c.
References data, Eof(), index, length, pid, TS_SIZE, TS_SYNC_BYTE, TsHasPayload(), TsPayloadOffset(), TsPayloadStart(), and TsPid().
Referenced by cMpeg2Fixer::AdjGopTime(), cMpeg2Fixer::AdjTref(), Find(), cH264Parser::GetByte(), cMpeg2Fixer::GetTref(), cMpeg2Parser::Parse(), cMpeg2Fixer::SetBrokenLink(), cMpeg2Fixer::SetClosedGop(), and SkipBytes().
int cTsPayload::GetLastIndex | ( | void | ) |
Returns the index into the TS data of the payload byte that has most recently been read.
If no byte has been read yet, -1 will be returned.
Definition at line 291 of file remux.c.
References index.
Referenced by cMpeg2Fixer::AdjGopTime(), cMpeg2Fixer::AdjTref(), cMpeg2Parser::Parse(), cMpeg2Fixer::SetBrokenLink(), and cMpeg2Fixer::SetClosedGop().
|
inlineprotected |
void cTsPayload::SetByte | ( | uchar | Byte, |
int | Index | ||
) |
Sets the TS data byte at the given Index to the value Byte.
Index should be one that has been retrieved by a previous call to GetIndex(), otherwise the behaviour is undefined. The current read index will not be altered by a call to this function.
Definition at line 296 of file remux.c.
Referenced by cMpeg2Fixer::AdjGopTime(), cMpeg2Fixer::AdjTref(), cMpeg2Fixer::SetBrokenLink(), and cMpeg2Fixer::SetClosedGop().
void cTsPayload::Setup | ( | uchar * | Data, |
int | Length, | ||
int | Pid = -1 |
||
) |
Sets up this TS payload handler with the given Data, which points to a sequence of Length bytes of complete TS packets.
Any incomplete TS packet at the end will be ignored. If Pid is given, only TS packets with data for that PID will be processed. Otherwise the PID of the first TS packet defines which payload will be delivered. Any intermediate TS packets with different PIDs will be skipped.
Definition at line 242 of file remux.c.
References data, index, length, pid, and TsPid().
Referenced by cMpeg2Fixer::cMpeg2Fixer(), cTsPayload(), and cH264Parser::Parse().
bool cTsPayload::SkipBytes | ( | int | Bytes | ) |
Skips the given number of bytes in the payload and returns true if there is still data left to read.
Definition at line 279 of file remux.c.
References Eof(), and GetByte().
Referenced by cMpeg2Fixer::SetBrokenLink(), cMpeg2Fixer::SetClosedGop(), and SkipPesHeader().
bool cTsPayload::SkipPesHeader | ( | void | ) |
Skips all bytes belonging to the PES header of the payload.
Definition at line 286 of file remux.c.
References data, PesPayloadOffset(), SkipBytes(), and TsPayloadOffset().
Referenced by cMpeg2Parser::Parse(), and cH264Parser::Parse().
|
inline |
Returns the number of raw bytes that have already been used (e.g.
by calling GetByte()). Any TS packet of which at least a single byte has been delivered is counted with its full size.
Definition at line 249 of file remux.h.
References index, and TS_SIZE.
Referenced by cMpeg2Parser::Parse(), and cH264Parser::Parse().
|
private |
Definition at line 222 of file remux.h.
Referenced by AtPayloadStart(), cTsPayload(), GetByte(), SetByte(), Setup(), and SkipPesHeader().
|
private |
Definition at line 225 of file remux.h.
Referenced by AtPayloadStart(), AtTsStart(), Available(), cTsPayload(), Eof(), Find(), GetByte(), GetLastIndex(), Reset(), Setup(), and Used().
|
private |
Definition at line 223 of file remux.h.
Referenced by AtTsStart(), Available(), cTsPayload(), Eof(), GetByte(), SetByte(), and Setup().
|
private |
Definition at line 224 of file remux.h.
Referenced by cTsPayload(), GetByte(), and Setup().