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

📄 sequenceparameterset.h

📁 jsvm开发代码包括抽样,编码,抽取,解码等一系列功能,可以做工具或研究用
💻 H
📖 第 1 页 / 共 2 页
字号:
  Void  setNumRefFrames                       ( UInt        ui )          { m_uiNumRefFrames                        = ui; }
	Void  setGapsInFrameNumValueAllowedFlag     ( Bool        b  )          { m_bGapsInFrameNumValueAllowedFlag       = b;  }
  Void  setFrameWidthInMbs                    ( UInt        ui )          { m_uiFrameWidthInMbs                     = ui; }
  Void  setFrameHeightInMbs                   ( UInt        ui )          { m_uiFrameHeightInMbs                    = ui; }
  Void  setDirect8x8InferenceFlag             ( Bool        b  )          { m_bDirect8x8InferenceFlag               = b;  }
  Void  setInitState                          ( Bool        b  )          { m_bInitDone                             = b;  }

  Void setFGSInfoPresentFlag                  ( Bool        b  )                        { m_bFGSInfoPresentFlag                   = b;  }
  Void setFGSCycleAlignedFragment             ( Bool        b  )                        { m_bFGSCycleAlignedFragment              = b;  }
  Void setNumFGSVectModes                     ( UInt        ui )                        { m_uiNumFGSVectModes                     = ui; }
  Void setFGSCodingMode                       ( UInt uiIndex, Bool        b  )          { m_abFGSCodingMode[uiIndex]              = b;  }
  Void setGroupingSize                        ( UInt uiIndex, UInt        ui )          { m_auiGroupingSize[uiIndex]              = ui; }
  Void setPosVect                             ( UInt uiIndex, UInt uiNum, UInt uiVect)  { m_auiPosVect[uiIndex][uiNum]            = uiVect; }

  Void setInterlayerDeblockingPresent ( Bool b ) { m_bInterlayerDeblockingPresent = b ;}
  Bool getInterlayerDeblockingPresent () const    { return m_bInterlayerDeblockingPresent; }

  Void  setPaff                               ( UInt        ui )          { m_uiPaff                                = ui; }
  Void  setFrameMbsOnlyFlag                   ( Bool        b  )          { m_bFrameMbsOnlyFlag                     = b;  }
	Void  setMbAdaptiveFrameFieldFlag           ( Bool        b  )          { m_bMbAdaptiveFrameFieldFlag             = b;  }

  ErrVal initOffsetForRefFrame( UInt uiSize )
  {
    ROT ( uiSize<1 );

    RNOK( m_piOffsetForRefFrame.uninit() );
    RNOK( m_piOffsetForRefFrame.init( uiSize ) );

    return Err::m_nOK;
  }

  ErrVal write( HeaderSymbolWriteIf*  pcWriteIf )       const;
  ErrVal read ( HeaderSymbolReadIf*   pcReadIf,
                NalUnitType           eNalUnitType );

// TMM_ESS {
  Void setResizeParameters    ( const ResizeParameters * params );
  Void getResizeParameters    ( ResizeParameters * params ) const;

  Void setExtendedSpatialScalability ( UInt ui ) { m_uiExtendedSpatialScalability = ui ;}
  UInt getExtendedSpatialScalability () const    { return m_uiExtendedSpatialScalability; }

  // JVT-V035
  Bool getAVCRewriteFlag ()                       const { return m_bAVCRewriteFlag; }
  Bool getAVCAdaptiveRewriteFlag ()               const { return m_bAVCAdaptiveRewriteFlag; }
  Void setAVCRewriteFlag( Bool b )                { m_bAVCRewriteFlag = b; }
  Void setAVCAdaptiveRewriteFlag ( Bool b )
  { 
	  if( getAVCRewriteFlag() == false && b == true )
		  printf("WARNING: Setting AVCAdaptiveRewriteFlag when AVCRewriteFlag is false.\n");
	  m_bAVCAdaptiveRewriteFlag = b; 
  }

  // needs to be called after all the position vectors are set
  ErrVal checkPosVectors              ( UInt uiIndex )
  {
    UInt uiTotalVectorLength = 0;
    Bool bBadVector          = false;

    m_auiNumPosVectors[ uiIndex ]    = 0;
    while( uiTotalVectorLength < 16 && m_auiNumPosVectors[ uiIndex ] < 16 )
    {
      if( m_auiPosVect[uiIndex][m_auiNumPosVectors[uiIndex]] == 0 )
      {
        bBadVector      = true;
        break;
      }
      if( m_auiPosVect[uiIndex][m_auiNumPosVectors[uiIndex]] > (16 - uiTotalVectorLength) )
        m_auiPosVect[uiIndex][m_auiNumPosVectors[uiIndex]]  = 16 - uiTotalVectorLength;

      uiTotalVectorLength += m_auiPosVect[uiIndex][m_auiNumPosVectors[uiIndex]];
      m_auiNumPosVectors[uiIndex]++;
    }

    if( bBadVector )
    {
      // set the vector length to 1
      for( m_auiNumPosVectors[uiIndex] = 0; m_auiNumPosVectors[uiIndex] < 16; m_auiNumPosVectors[uiIndex] ++ )
        m_auiPosVect[uiIndex][m_auiNumPosVectors[uiIndex]] = 1;
    }

    return Err::m_nOK;
  }
  // TMM_ESS }

  Bool  getRCDOBlockSizes         () const { return m_bRCDOBlockSizes; }
  Bool  getRCDOMotionCompensationY() const { return m_bRCDOMotionCompensationY; }
  Bool  getRCDOMotionCompensationC() const { return m_bRCDOMotionCompensationC; }
  Bool  getRCDODeblocking         () const { return m_bRCDODeblocking; }

  Void  setRCDOBlockSizes         ( Bool b ) { m_bRCDOBlockSizes          = b; }
  Void  setRCDOMotionCompensationY( Bool b ) { m_bRCDOMotionCompensationY = b; }
  Void  setRCDOMotionCompensationC( Bool b ) { m_bRCDOMotionCompensationC = b; }
  Void  setRCDODeblocking         ( Bool b ) { m_bRCDODeblocking          = b; }

  Void  set4TapMotionCompensationY( Bool b ) {m_b4TapMotionCompensationY = b; } // V090
  Bool  get4TapMotionCompensationY() const { return m_b4TapMotionCompensationY; }  // V090

protected:
	ErrVal xReadPicOrderCntInfo         ( HeaderSymbolReadIf* pcReadIf );
  static ErrVal xGetLevelLimit        ( const LevelLimit*&    rpcLevelLimit,
                                        Int                   iLevelIdc );
  ErrVal        xReadFrext            ( HeaderSymbolReadIf*   pcReadIf );
  ErrVal        xWriteFrext           ( HeaderSymbolWriteIf*  pcWriteIf ) const;


protected:
  Bool          m_bInitDone;

  NalUnitType   m_eNalUnitType;
  UInt          m_uiLayerId;
  Profile       m_eProfileIdc;
  Bool          m_bConstrainedSet0Flag;
  Bool          m_bConstrainedSet1Flag;
  Bool          m_bConstrainedSet2Flag;
	Bool          m_bConstrainedSet3Flag;
  UInt          m_uiLevelIdc;
  UInt          m_uiSeqParameterSetId;
	Bool          m_bSeqScalingMatrixPresentFlag;
  ScalingMatrix m_cSeqScalingMatrix;
  UInt          m_uiLog2MaxFrameNum;
	UInt          m_uiPicOrderCntType;
  UInt          m_uiLog2MaxPicOrderCntLsb;
  Bool          m_bDeltaPicOrderAlwaysZeroFlag;
  Int           m_iOffsetForNonRefPic;
  Int           m_iOffsetForTopToBottomField;
  UInt          m_uiNumRefFramesInPicOrderCntCycle;
  DynBuf<Int>   m_piOffsetForRefFrame;
  UInt          m_uiNumRefFrames;
	Bool					m_bGapsInFrameNumValueAllowedFlag;
  UInt          m_uiFrameWidthInMbs;
  UInt          m_uiFrameHeightInMbs;
  Bool          m_bDirect8x8InferenceFlag;

// TMM_ESS {
  UInt          m_uiExtendedSpatialScalability;
  UInt          m_uiChromaPhaseXPlus1;
  UInt          m_uiChromaPhaseYPlus1;
  Int           m_iScaledBaseLeftOffset;
  Int           m_iScaledBaseTopOffset;
  Int           m_iScaledBaseRightOffset;
  Int           m_iScaledBaseBottomOffset;
#ifdef _JVTV074_
public:
    UInt        getNumResampleFiltersMinus1( ) const { return m_uiNumResampleFiltersMinus1;}
protected:
  UInt          m_uiNumResampleFiltersMinus1;
  Bool          m_bIntegerPosFilterPresentFlag[16];
  Int           m_iResampleFilterParamA[16][9];
  Int           m_iResampleFilterParamB[16][9];
#endif //_JVTV074_
// TMM_ESS }

  Bool          m_bInterlayerDeblockingPresent;

// VW {
	UInt					m_auiNumRefIdxUpdateActiveDefault[2];
// VW }

  Bool          m_bFGSInfoPresentFlag; 
  Bool          m_bFGSCycleAlignedFragment; 
  UInt          m_uiNumFGSVectModes; 
  Bool          m_abFGSCodingMode [MAX_NUM_FGS_VECT_MODES];
  UInt          m_auiGroupingSize [MAX_NUM_FGS_VECT_MODES];
  UInt          m_auiNumPosVectors[MAX_NUM_FGS_VECT_MODES];
  UInt          m_auiPosVect [MAX_NUM_FGS_VECT_MODES] [16];
  UInt          m_uiPaff;
	Bool          m_bFrameMbsOnlyFlag;
	Bool          m_bMbAdaptiveFrameFieldFlag;

  Bool          m_bRCDOBlockSizes;
  Bool          m_bRCDOMotionCompensationY;
  Bool          m_bRCDOMotionCompensationC;
  Bool          m_bRCDODeblocking;

  Bool          m_b4TapMotionCompensationY;  // V090

  Bool          m_bAVCRewriteFlag;          // V-035
  Bool          m_bAVCAdaptiveRewriteFlag;

private:
  static const LevelLimit m_aLevelLimit[52];
};


H264AVC_NAMESPACE_END


#endif // !defined(AFX_SEQUENCEPARAMETERSET_H__66281283_5BFB_429A_B722_6DDE7A11D086__INCLUDED_)

⌨️ 快捷键说明

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