⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sliceheaderbase.h

📁 SVC最新更新代码
💻 H
📖 第 1 页 / 共 4 页
字号:
  Bool              getDiscardableFlag      ()  const { return  m_bDiscardableFlag;       }
  Bool              getOutputFlag           ()  const { return  m_bOutputFlag;            }

  Void              setNalRefIdc            ( NalRefIdc   eNalRefIdc            ) { m_eNalRefIdc            = eNalRefIdc;             }
  Void              setNalUnitType          ( NalUnitType eNalUnitType          ) { m_eNalUnitType          = eNalUnitType;           }
  Void              setIdrFlag              ( Bool        bIdrFlag              ) { m_bIdrFlag              = bIdrFlag;               }
  Void              setPriorityId           ( UInt        uiPriorityId          ) { m_uiPriorityId          = uiPriorityId;           }
  Void              setNoInterLayerPredFlag ( Bool        bNoInterLayerPredFlag ) { m_bNoInterLayerPredFlag = bNoInterLayerPredFlag;  }
  Void              setDependencyId         ( UInt        uiDependencyId        ) { m_uiDependencyId        = uiDependencyId;         }
  Void              setQualityId            ( UInt        uiQualityId           ) { m_uiQualityId           = uiQualityId;            }
  Void              setTemporalId           ( UInt        uiTemporalId          ) { m_uiTemporalId          = uiTemporalId;           }
  Void              setUseRefBasePicFlag    ( Bool        bUseRefBasePicFlag    ) { m_bUseRefBasePicFlag    = bUseRefBasePicFlag;     }
  Void              setDiscardableFlag      ( Bool        bDiscardableFlag      ) { m_bDiscardableFlag      = bDiscardableFlag;       }
  Void              setOutputFlag           ( Bool        bOutputFlag           ) { m_bOutputFlag           = bOutputFlag;            }

private:
  Bool              m_bForbiddenZeroBit;
  NalRefIdc         m_eNalRefIdc;
  NalUnitType       m_eNalUnitType;
  Bool              m_bReservedOneBit;
  Bool              m_bIdrFlag;
  UInt              m_uiPriorityId;
  Bool              m_bNoInterLayerPredFlag;
  UInt              m_uiDependencyId;
  UInt              m_uiQualityId;
  UInt              m_uiTemporalId;
  Bool              m_bUseRefBasePicFlag;
  Bool              m_bDiscardableFlag;
  Bool              m_bOutputFlag;
  UInt              m_uiReservedThree2Bits;
};



class H264AVCCOMMONLIB_API AUDelimiter : public NalUnitHeader
{
public:
  AUDelimiter();
  AUDelimiter( const NalUnitHeader& rcNalUnitHeader );
  AUDelimiter( const AUDelimiter&   rcAUDelimiter );
  virtual ~AUDelimiter();

  Void    copy  ( const AUDelimiter&    rcAUDelimiter,  Bool bInclusiveNALUnitHeader = true   );
  ErrVal  write ( HeaderSymbolWriteIf&  rcWriteIf,      Bool bInclusiveNALUnitHeader = true   ) const;
  ErrVal  read  ( HeaderSymbolReadIf&   rcReadIf,       Bool bInclusiveNALUnitHeader = false  );

  UInt    getPrimaryPicType ()  const                   { return m_uiPrimaryPicType;  }
  
  Void    setPrimaryPicType ( UInt  uiPrimaryPicType  ) { m_uiPrimaryPicType  = uiPrimaryPicType; }

private:
  UInt    m_uiPrimaryPicType;
};



class H264AVCCOMMONLIB_API EndOfSequence : public NalUnitHeader
{
public:
  EndOfSequence();
  EndOfSequence( const NalUnitHeader& rcNalUnitHeader );
  EndOfSequence( const EndOfSequence& rcEndOfSequence );
  virtual ~EndOfSequence();

  Void    copy  ( const EndOfSequence&  rcEndOfSequence,  Bool bInclusiveNALUnitHeader = true   );
  ErrVal  write ( HeaderSymbolWriteIf&  rcWriteIf,        Bool bInclusiveNALUnitHeader = true   ) const;
  ErrVal  read  ( HeaderSymbolReadIf&   rcReadIf,         Bool bInclusiveNALUnitHeader = false  );
};



class H264AVCCOMMONLIB_API EndOfStream : public NalUnitHeader
{
public:
  EndOfStream();
  EndOfStream( const NalUnitHeader& rcNalUnitHeader );
  EndOfStream( const EndOfStream&   rcEndOfStream );
  virtual ~EndOfStream();

  Void    copy  ( const EndOfStream&    rcEndOfStream,    Bool bInclusiveNALUnitHeader = true   );
  ErrVal  write ( HeaderSymbolWriteIf&  rcWriteIf,        Bool bInclusiveNALUnitHeader = true   ) const;
  ErrVal  read  ( HeaderSymbolReadIf&   rcReadIf,         Bool bInclusiveNALUnitHeader = false  );
};



class H264AVCCOMMONLIB_API FillerData : public NalUnitHeader
{
public:
  FillerData();
  FillerData( const NalUnitHeader&  rcNalUnitHeader );
  FillerData( const FillerData&     rcFillerData );
  virtual ~FillerData();

  Void    copy        ( const FillerData&    rcFillerData,  Bool bInclusiveNalUnitHeader = true  );
  ErrVal  writePrefix ( HeaderSymbolWriteIf& rcWriteIf,     Bool bInclusiveNalUnitHeader = true  ) const;
  ErrVal  write       ( HeaderSymbolWriteIf& rcWriteIf,     Bool bInclusiveNalUnitHeader = true  ) const;
  ErrVal  read        ( HeaderSymbolReadIf&  rcReadIf,      Bool bInclusiveNalUnitHeader = false );

  UInt    getNumFFBytes() const   { return m_uiNumFFBytes; }

  Void    setNumFFBytes( UInt uiNumFFBytes )  { m_uiNumFFBytes = uiNumFFBytes; }

private:
  UInt  m_uiNumFFBytes;
};



class H264AVCCOMMONLIB_API PrefixHeader : public NalUnitHeader
{
public:
  PrefixHeader();
  PrefixHeader( const NalUnitHeader& rcNalUnitHeader );
  PrefixHeader( const PrefixHeader&  rcPrefixHeader  );
  virtual ~PrefixHeader();

  Void    copy  ( const PrefixHeader&   rcPrefixHeader, Bool bInclusiveNALUnitHeader = true   );
  ErrVal  write ( HeaderSymbolWriteIf&  rcWriteIf,      Bool bInclusiveNALUnitHeader = true   ) const;
  ErrVal  read  ( HeaderSymbolReadIf&   rcReadIf,       Bool bInclusiveNALUnitHeader = false  );

  Bool                    getStoreRefBasePicFlag  ()  const { return m_bStoreRefBasePicFlag;  }
  const DecRefPicMarking& getDecRefBasePicMarking ()  const { return m_cDecRefBasePicMarking; }
  DecRefPicMarking&       getDecRefBasePicMarking ()        { return m_cDecRefBasePicMarking; }

  Void                    setStoreRefBasePicFlag  ( Bool  bStoreRefBasePicFlag  ) { m_bStoreRefBasePicFlag  = bStoreRefBasePicFlag; }

protected:
  Bool              m_bStoreRefBasePicFlag;
  DecRefPicMarking  m_cDecRefBasePicMarking;
private:
  Bool              m_bPrefixNalUnitAdditionalExtensionFlag;
};



class H264AVCCOMMONLIB_API SliceHeaderSyntax : public PrefixHeader
{
public:
  SliceHeaderSyntax();
  SliceHeaderSyntax( const NalUnitHeader&         rcNalUnitHeader );
  SliceHeaderSyntax( const PrefixHeader&          rcPrefixHeader );
  SliceHeaderSyntax( const SliceHeaderSyntax&     rcSliceHeaderSyntax );
  SliceHeaderSyntax( const SequenceParameterSet&  rcSPS,
                     const PictureParameterSet&   rcPPS );
  virtual ~SliceHeaderSyntax();

  ErrVal  init        ( const SequenceParameterSet& rcSPS,
                        const PictureParameterSet&  rcPPS );
  Void    copy        ( const SliceHeaderSyntax&    rcSliceHeaderSyntax,  Bool bInclusiveNalUnitHeader = true  );
  ErrVal  writePrefix ( HeaderSymbolWriteIf&        rcWriteIf,            Bool bInclusiveNalUnitHeader = true  ) const;
  ErrVal  write       ( HeaderSymbolWriteIf&        rcWriteIf,            Bool bInclusiveNalUnitHeader = true  ) const;
  ErrVal  read        ( ParameterSetMng&            rcParameterSetMng,
                        HeaderSymbolReadIf&         rcReadIf,             Bool bInclusiveNalUnitHeader = false );

  Bool    isPSlice      ()  const   { return ( m_eSliceType % 5 ) ==  P_SLICE; }
  Bool    isBSlice      ()  const   { return ( m_eSliceType % 5 ) ==  B_SLICE; }
  Bool    isISlice      ()  const   { return ( m_eSliceType % 5 ) ==  I_SLICE; }
  Bool    isSPSlice     ()  const   { return ( m_eSliceType % 5 ) == SP_SLICE; }
  Bool    isSISlice     ()  const   { return ( m_eSliceType % 5 ) == SI_SLICE; }
  Bool    isIntraSlice  ()  const   { return isISlice() || isSISlice    (); }
  Bool    isPorSPSlice  ()  const   { return isPSlice() || isSPSlice    (); }
  Bool    isInterSlice  ()  const   { return isBSlice() || isPorSPSlice (); }
  Bool    isMbaffFrame  ()  const   { AOF( parameterSetsInitialized() ); return getSPS().getMbAdaptiveFrameFieldFlag() && !m_bFieldPicFlag; }
  Bool    isFrameMbsOnly()  const   { AOF( parameterSetsInitialized() ); return getSPS().getFrameMbsOnlyFlag(); }
  Int     getPPSQp      ()  const   { AOF( parameterSetsInitialized() ); return getPPS().getPicInitQp(); }   

  UInt                            getFirstMbInSlice                     ()                    const { return ( isMbaffFrame() ? m_uiFirstMbInSlice << 1 : m_uiFirstMbInSlice ); }
  SliceType                       getSliceType                          ()                    const { return SliceType( m_eSliceType % 5 ); }
  UInt                            getPicParameterSetId                  ()                    const { return m_uiPicParameterSetId; }
  UInt                            getColourPlaneId                      ()                    const { return m_uiColourPlaneId; }
  UInt                            getFrameNum                           ()                    const { return m_uiFrameNum; }
  Bool                            getFieldPicFlag                       ()                    const { return m_bFieldPicFlag; }
  Bool                            getBottomFieldFlag                    ()                    const { return m_bBottomFieldFlag; }
  UInt                            getIdrPicId                           ()                    const { return m_uiIdrPicId; }
  UInt                            getPicOrderCntLsb                     ()                    const { return m_uiPicOrderCntLsb; }
  Int                             getDeltaPicOrderCntBottom             ()                    const { return m_iDeltaPicOrderCntBottom; }
  Int                             getDeltaPicOrderCnt0                  ()                    const { return m_iDeltaPicOrderCnt0; }
  Int                             getDeltaPicOrderCnt1                  ()                    const { return m_iDeltaPicOrderCnt1; }
  UInt                            getRedundantPicCnt                    ()                    const { return m_uiRedundantPicCnt; }
  Bool                            getDirectSpatialMvPredFlag            ()                    const { return m_bDirectSpatialMvPredFlag; }
  Bool                            getNumRefIdxActiveOverrideFlag        ()                    const { return m_bNumRefIdxActiveOverrideFlag; }
  UInt                            getNumRefIdxL0ActiveMinus1            ()                    const { return m_uiNumRefIdxL0ActiveMinus1; }
  UInt                            getNumRefIdxL0Active                  ()                    const { return m_uiNumRefIdxL0ActiveMinus1 + 1; }
  UInt                            getNumRefIdxL1ActiveMinus1            ()                    const { return m_uiNumRefIdxL1ActiveMinus1; }
  UInt                            getNumRefIdxL1Active                  ()                    const { return m_uiNumRefIdxL1ActiveMinus1 + 1; }
  UInt                            getNumRefIdxActive                    ( ListIdx eListIdx )  const { return ( eListIdx == LIST_0 ? m_uiNumRefIdxL0ActiveMinus1 + 1 : m_uiNumRefIdxL1ActiveMinus1 + 1 ); }
  const RefPicListReOrdering&     getRefPicListReorderingL0             ()                    const { return m_cRefPicListReorderingL0; }
  RefPicListReOrdering&           getRefPicListReorderingL0             ()                          { return m_cRefPicListReorderingL0; }
  const RefPicListReOrdering&     getRefPicListReorderingL1             ()                    const { return m_cRefPicListReorderingL1; }
  RefPicListReOrdering&           getRefPicListReorderingL1             ()                          { return m_cRefPicListReorderingL1; }
  const RefPicListReOrdering&     getRefPicListReordering               ( ListIdx eListIdx )  const { return ( eListIdx == LIST_0 ? m_cRefPicListReorderingL0 : m_cRefPicListReorderingL1 ); }
  RefPicListReOrdering&           getRefPicListReordering               ( ListIdx eListIdx )        { return ( eListIdx == LIST_0 ? m_cRefPicListReorderingL0 : m_cRefPicListReorderingL1 ); }
  Bool                            getBasePredWeightTableFlag            ()                    const { return m_bBasePredWeightTableFlag; }
  UInt                            getLumaLog2WeightDenom                ()                    const { return m_uiLumaLog2WeightDenom; }
  UInt                            getLumaWeightDenom                    ()                    const { return ( 1 << m_uiLumaLog2WeightDenom ); }
  UInt                            getChromaLog2WeightDenom              ()                    const { return m_uiChromaLog2WeightDenom; }
  UInt                            getChromaWeightDenom                  ()                    const { return ( 1 << m_uiChromaLog2WeightDenom ); }
  const PredWeightTable&          getPredWeightTableL0                  ()                    const { return m_cPredWeightTableL0; }
  PredWeightTable&                getPredWeightTableL0                  ()                          { return m_cPredWeightTableL0; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -