vdr-plugin-softhddevice-drm-gles 1.6.2
cH264Parser Class Reference

H.264 Parser. More...

#include <h264parser.h>

Classes

struct  RefPicMod
 

Public Member Functions

 cH264Parser (AVPacket *, int, int, int)
 Init the h264 parser and detect the nalu types.
 
void BuildInvalidReferenceString (int)
 Add a whitespace-separated list of all invalid references to the log output string.
 
void BuildValidReferenceString (void)
 Add a whitespace-separated list of all valid references to the log output string.
 
void AddFrameNumber (int)
 Add the frame number to the log output string.
 
void AddInvalidReference (int, int)
 Adds an invalid reference.
 
void AddValidReference (int)
 Adds a valid reference.
 
void PrintNalUnits (void)
 Print the previously created log output string.
 
void PrintStreamData (void)
 Print raw stream data of the first 35 bytes.
 
std::string GetNalUnitString (void)
 
int GetWidth (void)
 
int GetHeight (void)
 
bool IsMbaff (void)
 
bool HasSPS (void)
 
bool HasPPS (void)
 
bool IsPSlice () const
 
bool IsBSlice () const
 
bool IsISlice () const
 
bool IsIDR () const
 
bool IsReference () const
 
int GetFrameNum () const
 
const std::vector< RefPicMod > & GetRefMods () const
 
int GetLog2MaxFrameNumMinus4 () const
 
int GetPpsNumRefIdxL0DefaultActiveMinus1 (void)
 
int GetPpsNumRefIdxL1DefaultActiveMinus1 (void)
 
int GetNumRefIdxL0Active (void)
 
int GetNumRefIdxL1Active (void)
 
bool HasInvalidReferences (void)
 
bool HasInvalidBackwardReferences (void)
 
bool HasParseError (void) const
 

Private Member Functions

unsigned int ReadBit (void)
 Read the next bit of a stream.
 
unsigned int ReadBits (int)
 Read n number of bits of a stream.
 
unsigned int ReadExponentialGolombCode (void)
 Read an unsigned exponential-golomb coded integer.
 
unsigned int ReadSE (void)
 Read a signed exponential-golomb coded integer.
 
int GetSPSOffset (void)
 Get the SPS offset.
 
int GetPPSOffset (void)
 Get the PPS offset.
 
int GetSliceOffset (void)
 Get the slice offset.
 
void ConvertEBSPtoRBSP (const uint8_t *, int)
 

Private Attributes

AVPacketm_pAvpkt
 
const unsigned charm_pStart
 
std::vector< uint8_tm_rbsp
 
unsigned short m_nLength
 
int m_nCurrentBit
 
int m_nalutype = 0
 
int m_width = 0
 
int m_height = 0
 
bool m_hasSPS = false
 
bool m_hasPPS = false
 
bool m_isIDR = false
 
bool m_isReference = false
 
bool m_mbaff = false
 
bool m_parseError = false
 
std::string m_naluString
 
int m_sliceType = -1
 
int m_frameNum = -1
 
int m_nalRefIdc = 0
 
std::set< intm_invalidReferences
 
std::set< intm_validReferences
 
std::vector< RefPicModm_refMods
 
bool m_hasInvalidReferences = false
 
bool m_hasInvalidBackwardReferences = false
 
bool m_hasValidReferences = false
 
int m_log2MaxFrameNumMinus4 = -4
 
int m_ppsNumRefIdxL0DefaultActiveMinus1 = -1
 
int m_ppsNumRefIdxL1DefaultActiveMinus1 = -1
 
int m_numRefIdxL0Active
 
int m_numRefIdxL1Active
 

Detailed Description

H.264 Parser.

Definition at line 43 of file h264parser.h.

Member Function Documentation

◆ GetFrameNum()

int cH264Parser::GetFrameNum ( ) const
inline

Definition at line 73 of file h264parser.h.

References m_frameNum.

◆ GetHeight()

int cH264Parser::GetHeight ( void  )
inline

Definition at line 64 of file h264parser.h.

References m_height.

◆ GetLog2MaxFrameNumMinus4()

int cH264Parser::GetLog2MaxFrameNumMinus4 ( ) const
inline

Definition at line 75 of file h264parser.h.

References m_log2MaxFrameNumMinus4.

◆ GetNalUnitString()

std::string cH264Parser::GetNalUnitString ( void  )
inline

Definition at line 62 of file h264parser.h.

References m_naluString.

◆ GetNumRefIdxL0Active()

int cH264Parser::GetNumRefIdxL0Active ( void  )
inline

Definition at line 78 of file h264parser.h.

References m_numRefIdxL0Active.

◆ GetNumRefIdxL1Active()

int cH264Parser::GetNumRefIdxL1Active ( void  )
inline

Definition at line 79 of file h264parser.h.

References m_numRefIdxL1Active.

◆ GetPpsNumRefIdxL0DefaultActiveMinus1()

int cH264Parser::GetPpsNumRefIdxL0DefaultActiveMinus1 ( void  )
inline

Definition at line 76 of file h264parser.h.

References m_ppsNumRefIdxL0DefaultActiveMinus1.

◆ GetPpsNumRefIdxL1DefaultActiveMinus1()

int cH264Parser::GetPpsNumRefIdxL1DefaultActiveMinus1 ( void  )
inline

Definition at line 77 of file h264parser.h.

References m_ppsNumRefIdxL1DefaultActiveMinus1.

◆ GetRefMods()

const std::vector< RefPicMod > & cH264Parser::GetRefMods ( ) const
inline

Definition at line 74 of file h264parser.h.

References m_refMods.

◆ GetWidth()

int cH264Parser::GetWidth ( void  )
inline

Definition at line 63 of file h264parser.h.

References m_width.

◆ HasInvalidBackwardReferences()

bool cH264Parser::HasInvalidBackwardReferences ( void  )
inline

Definition at line 81 of file h264parser.h.

References m_hasInvalidBackwardReferences.

◆ HasInvalidReferences()

bool cH264Parser::HasInvalidReferences ( void  )
inline

Definition at line 80 of file h264parser.h.

References m_hasInvalidReferences.

◆ HasParseError()

bool cH264Parser::HasParseError ( void  ) const
inline

Definition at line 82 of file h264parser.h.

References m_parseError.

◆ HasPPS()

bool cH264Parser::HasPPS ( void  )
inline

Definition at line 67 of file h264parser.h.

References m_hasPPS.

◆ HasSPS()

bool cH264Parser::HasSPS ( void  )
inline

Definition at line 66 of file h264parser.h.

References m_hasSPS.

◆ IsBSlice()

bool cH264Parser::IsBSlice ( ) const
inline

Definition at line 69 of file h264parser.h.

References m_sliceType.

◆ IsIDR()

bool cH264Parser::IsIDR ( ) const
inline

Definition at line 71 of file h264parser.h.

References m_isIDR.

◆ IsISlice()

bool cH264Parser::IsISlice ( ) const
inline

Definition at line 70 of file h264parser.h.

References m_sliceType.

◆ IsMbaff()

bool cH264Parser::IsMbaff ( void  )
inline

Definition at line 65 of file h264parser.h.

References m_mbaff.

◆ IsPSlice()

bool cH264Parser::IsPSlice ( ) const
inline

Definition at line 68 of file h264parser.h.

References m_sliceType.

◆ IsReference()

bool cH264Parser::IsReference ( ) const
inline

Definition at line 72 of file h264parser.h.

References m_isReference.

Member Data Documentation

◆ m_frameNum

int cH264Parser::m_frameNum = -1
private

Definition at line 104 of file h264parser.h.

Referenced by cH264Parser(), and GetFrameNum().

◆ m_hasInvalidBackwardReferences

bool cH264Parser::m_hasInvalidBackwardReferences = false
private

Definition at line 110 of file h264parser.h.

Referenced by AddInvalidReference(), and HasInvalidBackwardReferences().

◆ m_hasInvalidReferences

bool cH264Parser::m_hasInvalidReferences = false
private

◆ m_hasPPS

bool cH264Parser::m_hasPPS = false
private

Definition at line 95 of file h264parser.h.

Referenced by cH264Parser(), and HasPPS().

◆ m_hasSPS

bool cH264Parser::m_hasSPS = false
private

Definition at line 94 of file h264parser.h.

Referenced by cH264Parser(), and HasSPS().

◆ m_hasValidReferences

bool cH264Parser::m_hasValidReferences = false
private

Definition at line 111 of file h264parser.h.

Referenced by AddValidReference(), and BuildValidReferenceString().

◆ m_height

int cH264Parser::m_height = 0
private

Definition at line 93 of file h264parser.h.

Referenced by cH264Parser(), GetHeight(), and PrintNalUnits().

◆ m_invalidReferences

std::set<int> cH264Parser::m_invalidReferences
private

Definition at line 106 of file h264parser.h.

Referenced by AddInvalidReference(), and BuildInvalidReferenceString().

◆ m_isIDR

bool cH264Parser::m_isIDR = false
private

Definition at line 96 of file h264parser.h.

Referenced by cH264Parser(), and IsIDR().

◆ m_isReference

bool cH264Parser::m_isReference = false
private

Definition at line 97 of file h264parser.h.

Referenced by cH264Parser(), and IsReference().

◆ m_log2MaxFrameNumMinus4

int cH264Parser::m_log2MaxFrameNumMinus4 = -4
private

Definition at line 113 of file h264parser.h.

Referenced by cH264Parser(), and GetLog2MaxFrameNumMinus4().

◆ m_mbaff

bool cH264Parser::m_mbaff = false
private

Definition at line 98 of file h264parser.h.

Referenced by cH264Parser(), and IsMbaff().

◆ m_nalRefIdc

int cH264Parser::m_nalRefIdc = 0
private

Definition at line 105 of file h264parser.h.

Referenced by cH264Parser().

◆ m_naluString

std::string cH264Parser::m_naluString
private

◆ m_nalutype

int cH264Parser::m_nalutype = 0
private

Definition at line 91 of file h264parser.h.

Referenced by cH264Parser().

◆ m_nCurrentBit

int cH264Parser::m_nCurrentBit
private

Definition at line 89 of file h264parser.h.

Referenced by cH264Parser(), ReadBit(), ReadBits(), and ReadExponentialGolombCode().

◆ m_nLength

unsigned short cH264Parser::m_nLength
private

Definition at line 88 of file h264parser.h.

Referenced by cH264Parser(), ReadBit(), ReadBits(), and ReadExponentialGolombCode().

◆ m_numRefIdxL0Active

int cH264Parser::m_numRefIdxL0Active
private

Definition at line 116 of file h264parser.h.

Referenced by cH264Parser(), and GetNumRefIdxL0Active().

◆ m_numRefIdxL1Active

int cH264Parser::m_numRefIdxL1Active
private

Definition at line 117 of file h264parser.h.

Referenced by cH264Parser(), and GetNumRefIdxL1Active().

◆ m_parseError

bool cH264Parser::m_parseError = false
private

Definition at line 99 of file h264parser.h.

Referenced by cH264Parser(), HasParseError(), ReadBit(), ReadBits(), and ReadExponentialGolombCode().

◆ m_pAvpkt

AVPacket* cH264Parser::m_pAvpkt
private

Definition at line 85 of file h264parser.h.

Referenced by cH264Parser(), GetPPSOffset(), GetSliceOffset(), GetSPSOffset(), and PrintStreamData().

◆ m_ppsNumRefIdxL0DefaultActiveMinus1

int cH264Parser::m_ppsNumRefIdxL0DefaultActiveMinus1 = -1
private

Definition at line 114 of file h264parser.h.

Referenced by cH264Parser(), and GetPpsNumRefIdxL0DefaultActiveMinus1().

◆ m_ppsNumRefIdxL1DefaultActiveMinus1

int cH264Parser::m_ppsNumRefIdxL1DefaultActiveMinus1 = -1
private

Definition at line 115 of file h264parser.h.

Referenced by cH264Parser(), and GetPpsNumRefIdxL1DefaultActiveMinus1().

◆ m_pStart

const unsigned char* cH264Parser::m_pStart
private

Definition at line 86 of file h264parser.h.

Referenced by cH264Parser(), and ReadBit().

◆ m_rbsp

std::vector<uint8_t> cH264Parser::m_rbsp
private

Definition at line 87 of file h264parser.h.

Referenced by cH264Parser(), and ConvertEBSPtoRBSP().

◆ m_refMods

std::vector<RefPicMod> cH264Parser::m_refMods
private

Definition at line 108 of file h264parser.h.

Referenced by cH264Parser(), and GetRefMods().

◆ m_sliceType

int cH264Parser::m_sliceType = -1
private

Definition at line 103 of file h264parser.h.

Referenced by cH264Parser(), IsBSlice(), IsISlice(), and IsPSlice().

◆ m_validReferences

std::set<int> cH264Parser::m_validReferences
private

Definition at line 107 of file h264parser.h.

Referenced by AddValidReference(), and BuildValidReferenceString().

◆ m_width

int cH264Parser::m_width = 0
private

Definition at line 92 of file h264parser.h.

Referenced by cH264Parser(), GetWidth(), and PrintNalUnits().


The documentation for this class was generated from the following files: