|
vdr 2.8.1
|
#include <remux.h>
Public Member Functions | |
| cFrameDetector (int Pid=0, int Type=0) | |
| ~cFrameDetector () | |
| void | SetPid (int Pid, int Type) |
| void | SetMissing (void) |
| void | SetLastPts (int64_t LastPts) |
| int | Errors (bool *PreviousErrors=NULL, bool *MissingFrames=NULL) |
| int | Analyze (const uchar *Data, int Length, bool ErrorCheck=true) |
| bool | Synced (void) |
| bool | NewFrame (int *PreviousErrors=NULL, int *MissingFrames=NULL) |
| bool | NewFrame (bool &PreviousErrors, bool &MissingFrames) |
| bool | IndependentFrame (void) |
| double | FramesPerSecond (void) |
| uint16_t | FrameWidth (void) |
| uint16_t | FrameHeight (void) |
| eScanType | ScanType (void) |
| eAspectRatio | AspectRatio (void) |
Private Types | |
| enum | { MaxPtsValues = 150 } |
Private Attributes | |
| int | pid |
| int | type |
| bool | synced |
| bool | newFrame |
| bool | independentFrame |
| uint32_t | ptsValues [MaxPtsValues] |
| int | numPtsValues |
| int | numIFrames |
| bool | isVideo |
| double | framesPerSecond |
| uint16_t | frameWidth |
| uint16_t | frameHeight |
| eScanType | scanType |
| eAspectRatio | aspectRatio |
| int | framesInPayloadUnit |
| int | framesPerPayloadUnit |
| bool | scanning |
| bool | firstIframeSeen |
| int | previousErrors |
| int | missingFrames |
| cFrameParser * | parser |
| cTsChecker * | tsChecker |
| cPtsChecker * | ptsChecker |
| cFrameDetector::cFrameDetector | ( | int | Pid = 0, |
| int | Type = 0 ) |
Sets up a frame detector for the given Pid and stream Type.
If no Pid and Type is given, they need to be set by a separate call to SetPid().
Definition at line 2172 of file remux.c.
References arUnknown, aspectRatio, firstIframeSeen, frameHeight, framesInPayloadUnit, framesPerPayloadUnit, framesPerSecond, frameWidth, independentFrame, missingFrames, newFrame, numIFrames, numPtsValues, parser, previousErrors, ptsChecker, scanning, scanType, SetPid(), stUnknown, synced, and tsChecker.
| cFrameDetector::~cFrameDetector | ( | ) |
Definition at line 2194 of file remux.c.
References ptsChecker, and tsChecker.
| int cFrameDetector::Analyze | ( | const uchar * | Data, |
| int | Length, | ||
| bool | ErrorCheck = true ) |
Analyzes the TS packets pointed to by Data.
Length is the number of bytes Data points to, and must be a multiple of TS_SIZE. Returns the number of bytes that have been analyzed. If the return value is 0, the data was not sufficient for analyzing and Analyze() needs to be called again with more actual data. Error checks can be turned off by setting ErrorCheck to false. This is used when regenerating the index file, where the first chunk of data is scanned for the PAT/PMT and then a rewind is done on the file.
Definition at line 2265 of file remux.c.
References aspectRatio, CmpUint32(), dbgframes, DEFAULTFRAMESPERSECOND, dsyslog, firstIframeSeen, frameHeight, framesInPayloadUnit, framesPerPayloadUnit, framesPerSecond, frameWidth, independentFrame, isVideo, MaxPtsValues, MIN_TS_PACKETS_FOR_FRAME_DETECTOR, missingFrames, newFrame, numIFrames, numPtsValues, parser, PATPID, PesGetPts(), PesHasPts(), pid, previousErrors, ptsChecker, PTSTICKS, ptsValues, scanning, scanType, synced, TS_SIZE, TS_SYNC, tsChecker, TsGetPts(), TsHasPayload(), TsIsScrambled(), TsPayloadOffset(), TsPayloadStart(), and TsPid().
Referenced by cIndexFileGenerator::Action().
|
inline |
Returns the aspect ratio, or arUnknown if this information is not available.
Definition at line 624 of file remux.h.
References aspectRatio.
Referenced by cIndexFileGenerator::Action().
| int cFrameDetector::Errors | ( | bool * | PreviousErrors = NULL, |
| bool * | MissingFrames = NULL ) |
Returns the total number of errors so far.
This includes TS errors and missing frames (each missing frame counts as one error). If PreviousErrors and MissingFrames are given, these will return the final information about these conditions.
Definition at line 2233 of file remux.c.
References ptsChecker, and tsChecker.
Referenced by cIndexFileGenerator::Action().
|
inline |
Returns the frame height, or 0 if this information is not available.
Definition at line 620 of file remux.h.
References frameHeight.
Referenced by cIndexFileGenerator::Action().
|
inline |
Returns the number of frames per second, or 0 if this information is not available.
Definition at line 615 of file remux.h.
References framesPerSecond.
Referenced by cIndexFileGenerator::Action().
|
inline |
Returns the frame width, or 0 if this information is not available.
Definition at line 618 of file remux.h.
References frameWidth.
Referenced by cIndexFileGenerator::Action().
|
inline |
Returns true if a new frame was detected and this is an independent frame (i.e.
one that can be displayed by itself, without using data from any other frames).
Definition at line 611 of file remux.h.
References independentFrame.
Referenced by cIndexFileGenerator::Action().
| bool cFrameDetector::NewFrame | ( | bool & | PreviousErrors, |
| bool & | MissingFrames ) |
Returns true if the data given to the last call to Analyze() started a new frame.
PreviousErrors is set to true if there were any errors in the previous frame. MissingFrames is set to true if there were any missing frames before this one. The results returned in PreviousErrors and MissingFrames are only valid if the function returns true.
Definition at line 2256 of file remux.c.
References missingFrames, newFrame, and previousErrors.
| bool cFrameDetector::NewFrame | ( | int * | PreviousErrors = NULL, |
| int * | MissingFrames = NULL ) |
Definition at line 2244 of file remux.c.
References missingFrames, newFrame, and previousErrors.
Referenced by cIndexFileGenerator::Action().
|
inline |
Returns the scan type, or stUnknown if this information is not available.
Definition at line 622 of file remux.h.
References scanType.
Referenced by cIndexFileGenerator::Action().
| void cFrameDetector::SetLastPts | ( | int64_t | LastPts | ) |
If this is a resumed recording, call this function with the last PTS of the previous recording.
Definition at line 2227 of file remux.c.
References ptsChecker.
| void cFrameDetector::SetPid | ( | int | Pid, |
| int | Type ) |
Sets the Pid and stream Type to detect frames for.
Definition at line 2207 of file remux.c.
References esyslog, isVideo, parser, pid, tsChecker, and type.
Referenced by cIndexFileGenerator::Action(), and cFrameDetector().
|
inline |
Returns true if the frame detector has synced on the data stream.
Definition at line 601 of file remux.h.
References synced.
Referenced by cIndexFileGenerator::Action().
|
private |
Definition at line 564 of file remux.h.
Referenced by Analyze(), AspectRatio(), and cFrameDetector().
|
private |
Definition at line 569 of file remux.h.
Referenced by Analyze(), and cFrameDetector().
|
private |
Definition at line 562 of file remux.h.
Referenced by Analyze(), cFrameDetector(), and FrameHeight().
|
private |
Definition at line 565 of file remux.h.
Referenced by Analyze(), and cFrameDetector().
|
private |
Definition at line 566 of file remux.h.
Referenced by Analyze(), and cFrameDetector().
|
private |
Definition at line 560 of file remux.h.
Referenced by Analyze(), cFrameDetector(), and FramesPerSecond().
|
private |
Definition at line 561 of file remux.h.
Referenced by Analyze(), cFrameDetector(), and FrameWidth().
|
private |
Definition at line 555 of file remux.h.
Referenced by Analyze(), cFrameDetector(), and IndependentFrame().
|
private |
|
private |
Definition at line 571 of file remux.h.
Referenced by Analyze(), cFrameDetector(), NewFrame(), and NewFrame().
|
private |
Definition at line 554 of file remux.h.
Referenced by Analyze(), cFrameDetector(), NewFrame(), and NewFrame().
|
private |
Definition at line 558 of file remux.h.
Referenced by Analyze(), and cFrameDetector().
|
private |
Definition at line 557 of file remux.h.
Referenced by Analyze(), and cFrameDetector().
|
private |
Definition at line 572 of file remux.h.
Referenced by Analyze(), cFrameDetector(), and SetPid().
|
private |
|
private |
Definition at line 570 of file remux.h.
Referenced by Analyze(), cFrameDetector(), NewFrame(), and NewFrame().
|
private |
Definition at line 574 of file remux.h.
Referenced by Analyze(), cFrameDetector(), Errors(), SetLastPts(), and ~cFrameDetector().
|
private |
|
private |
Definition at line 568 of file remux.h.
Referenced by Analyze(), and cFrameDetector().
|
private |
Definition at line 563 of file remux.h.
Referenced by Analyze(), cFrameDetector(), and ScanType().
|
private |
Definition at line 553 of file remux.h.
Referenced by Analyze(), cFrameDetector(), and Synced().
|
private |
Definition at line 573 of file remux.h.
Referenced by Analyze(), cFrameDetector(), Errors(), SetPid(), and ~cFrameDetector().