|
vdr 2.7.9
|
Public Member Functions | |
| cH264Parser (void) | |
| virtual int | Parse (const uchar *Data, int Length, int Pid) override |
Public Member Functions inherited from cFrameParser | |
| cFrameParser (void) | |
| virtual | ~cFrameParser () |
| void | SetDebug (bool Debug) |
| bool | NewFrame (void) |
| bool | IndependentFrame (void) |
| int | IFrameTemporalReferenceOffset (void) |
| uint16_t | FrameWidth (void) |
| uint16_t | FrameHeight (void) |
| double | FramesPerSecond (void) |
| eScanType | ScanType (void) |
| eAspectRatio | AspectRatio (void) |
Protected Member Functions | |
| uchar | GetByte (bool Raw=false) |
| uchar | GetBit (void) |
| uint32_t | GetBits (int Bits) |
| uint32_t | GetGolombUe (void) |
| int32_t | GetGolombSe (void) |
| void | ParseAccessUnitDelimiter (void) |
| void | ParseSequenceParameterSet (void) |
| void | ParseSliceHeader (void) |
Protected Attributes | |
| cTsPayload | tsPayload |
| uint32_t | scanner |
| bool | gotAccessUnitDelimiter |
| bool | gotSequenceParameterSet |
Protected Attributes inherited from cFrameParser | |
| bool | debug |
| bool | newFrame |
| bool | independentFrame |
| int | iFrameTemporalReferenceOffset |
| uint16_t | frameWidth |
| uint16_t | frameHeight |
| double | framesPerSecond |
| eScanType | scanType |
| eAspectRatio | aspectRatio |
Private Types | |
| enum | eNalUnitType { nutCodedSliceNonIdr = 1 , nutCodedSliceIdr = 5 , nutSequenceParameterSet = 7 , nutAccessUnitDelimiter = 9 } |
Private Attributes | |
| uchar | byte |
| int | bit |
| int | zeroBytes |
| bool | separate_colour_plane_flag |
| int | log2_max_frame_num |
| bool | frame_mbs_only_flag |
|
private |
| cH264Parser::cH264Parser | ( | void | ) |
Sets up a new H.264 parser.
This class parses only the data absolutely necessary to determine the frame borders and field count of the given H264 material.
Definition at line 1437 of file remux.c.
References bit, EMPTY_SCANNER, frame_mbs_only_flag, gotAccessUnitDelimiter, gotSequenceParameterSet, log2_max_frame_num, scanner, separate_colour_plane_flag, and zeroBytes.
Referenced by cH265Parser::cH265Parser().
|
protected |
Definition at line 1469 of file remux.c.
References bit, and GetByte().
Referenced by GetBits(), GetGolombUe(), cH265Parser::Parse(), ParseSequenceParameterSet(), cH265Parser::ParseSequenceParameterSet(), and ParseSliceHeader().
|
protected |
Definition at line 1478 of file remux.c.
References GetBit().
Referenced by GetGolombUe(), ParseSequenceParameterSet(), cH265Parser::ParseSequenceParameterSet(), and ParseSliceHeader().
|
protected |
Gets the next data byte.
If Raw is true, no filtering will be done. With Raw set to false, if the byte sequence 0x000003 is encountered, the byte with 0x03 will be skipped.
Definition at line 1450 of file remux.c.
References bit, tsPayload, and zeroBytes.
Referenced by GetBit(), Parse(), cH265Parser::Parse(), ParseAccessUnitDelimiter(), ParseSequenceParameterSet(), and cH265Parser::ParseSequenceParameterSet().
|
protected |
Definition at line 1494 of file remux.c.
References GetGolombUe().
Referenced by ParseSequenceParameterSet(), and cH265Parser::ParseSequenceParameterSet().
|
protected |
Definition at line 1486 of file remux.c.
References GetBit(), and GetBits().
Referenced by GetGolombSe(), ParseSequenceParameterSet(), cH265Parser::ParseSequenceParameterSet(), and ParseSliceHeader().
|
overridevirtual |
Parses the given Data, which is a sequence of Length bytes of TS packets.
The payload in the TS packets with the given Pid is searched for just enough information to determine the beginning and type of the next video frame. Returns the number of bytes parsed. Upon return, the functions NewFrame() and IndependentFrame() can be called to retrieve the required information.
Implements cFrameParser.
Reimplemented in cH265Parser.
Definition at line 1506 of file remux.c.
References dbgframes, cFrameParser::debug, EMPTY_SCANNER, GetByte(), gotAccessUnitDelimiter, gotSequenceParameterSet, cFrameParser::independentFrame, cFrameParser::newFrame, nutAccessUnitDelimiter, nutCodedSliceIdr, nutCodedSliceNonIdr, nutSequenceParameterSet, ParseAccessUnitDelimiter(), ParseSequenceParameterSet(), ParseSliceHeader(), scanner, tsPayload, and TsPayloadStart().
|
protected |
Definition at line 1549 of file remux.c.
References dbgframes, cFrameParser::debug, GetByte(), and gotSequenceParameterSet.
Referenced by Parse().
|
protected |
Definition at line 1556 of file remux.c.
References ar_16_9, cFrameParser::aspectRatio, AspectRatioTexts, dbgframes, cFrameParser::debug, dsyslog, frame_mbs_only_flag, cFrameParser::frameHeight, cFrameParser::framesPerSecond, cFrameParser::frameWidth, GetBit(), GetBits(), GetByte(), GetGolombSe(), GetGolombUe(), gotAccessUnitDelimiter, gotSequenceParameterSet, log2_max_frame_num, cFrameParser::scanType, ScanTypeChars, separate_colour_plane_flag, cString::sprintf(), stInterlaced, and stProgressive.
Referenced by Parse().
|
protected |
Definition at line 1674 of file remux.c.
References dbgframes, cFrameParser::debug, frame_mbs_only_flag, GetBit(), GetBits(), GetGolombUe(), cFrameParser::independentFrame, log2_max_frame_num, cFrameParser::newFrame, and separate_colour_plane_flag.
Referenced by Parse().
|
private |
Definition at line 1407 of file remux.c.
Referenced by cH264Parser(), GetBit(), and GetByte().
|
private |
Definition at line 1412 of file remux.c.
Referenced by cH264Parser(), ParseSequenceParameterSet(), and ParseSliceHeader().
|
protected |
Definition at line 1416 of file remux.c.
Referenced by cH264Parser(), Parse(), and ParseSequenceParameterSet().
|
protected |
Definition at line 1417 of file remux.c.
Referenced by cH264Parser(), Parse(), cH265Parser::Parse(), ParseAccessUnitDelimiter(), and ParseSequenceParameterSet().
|
private |
Definition at line 1411 of file remux.c.
Referenced by cH264Parser(), ParseSequenceParameterSet(), and ParseSliceHeader().
|
protected |
Definition at line 1415 of file remux.c.
Referenced by cH264Parser(), Parse(), and cH265Parser::Parse().
|
private |
Definition at line 1410 of file remux.c.
Referenced by cH264Parser(), ParseSequenceParameterSet(), cH265Parser::ParseSequenceParameterSet(), and ParseSliceHeader().
|
protected |
Definition at line 1414 of file remux.c.
Referenced by GetByte(), Parse(), and cH265Parser::Parse().
|
private |
Definition at line 1408 of file remux.c.
Referenced by cH264Parser(), and GetByte().