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

📄 sei.h

📁 JMVM MPEG MVC/3DAV 测试平台 国际通用标准
💻 H
📖 第 1 页 / 共 5 页
字号:
	};
//~JVT-W080

//SEI LSJ{
#define MAX_OPERATION_POINTS 10
  class H264AVCCOMMONLIB_API ViewScalabilityInfoSei : public SEIMessage
  {
  protected:
	ViewScalabilityInfoSei ();
	~ViewScalabilityInfoSei();

  public:
	static ErrVal create ( ViewScalabilityInfoSei*&		rpcSeiMessage);
	ErrVal destroy		 ();
	ErrVal write		 ( HeaderSymbolWriteIf	*pcWriteIf);
	ErrVal read			 ( HeaderSymbolReadIf		*pcReadIf);

	UInt getNumOperationPointsMinus1()			const { return m_uiNumOperationPointsMinus1; }
	UInt getOperationPointId( UInt index )			  { return m_uiOperationPointId[index]; }
	UInt getPriorityId( UInt index )				  { return m_uiPriorityId[index]; }
	UInt getTemporalId( UInt index )				  { return m_uiTemporalId[index]; }
	UInt getNumActiveViewsMinus1( UInt index )		  { return m_uiNumActiveViewsMinus1[index]; }
	UInt getViewId( UInt i, UInt j )				  { return m_uiViewId[i][j]; }
	Bool getProfileLevelInfoPresentFlag( UInt index ) { return m_bProfileLevelInfoPresentFlag[index]; }
	Bool getBitRateInfoPresentFlag( UInt index )	  { return m_bBitRateInfoPresentFlag[index]; }
	Bool getFrmRateInfoPresentFlag( UInt index )      { return m_bFrmRateInfoPresentFlag[index]; }
	Bool getOpDependencyInfoPresentFlag( UInt index ) { return m_bOpDependencyInfoPresentFlag[index]; }
	Bool getInitParameterSetsInfoPresentFlag(UInt i)  { return m_bInitParameterSetsInfoPresentFlag[i]; }
	UInt getOpProfileIdc( UInt index )				  { return m_uiOpProfileIdc[index]; }
	Bool getOpConstraintSet0Flag( UInt index )		  { return m_bOpConstraintSet0Flag[index]; }
	Bool getOpConstraintSet1Flag( UInt index )		  { return m_bOpConstraintSet1Flag[index]; }
	Bool getOpConstraintSet2Flag( UInt index )		  { return m_bOpConstraintSet2Flag[index]; }
	Bool getOpConstraintSet3Flag( UInt index )		  { return m_bOpConstraintSet3Flag[index]; }
	UInt getOpLevelIdc( UInt index )			      { return m_uiOpLevelIdc[index]; }
	UInt getProfileLevelInfoSrcOpIdDelta( UInt i )    { return m_uiProfileLevelInfoSrcOpIdDelta[i]; }
	UInt getAvgBitrate( UInt index )				  { return m_uiAvgBitrate[index]; }
	UInt getMaxBitrate( UInt index )				  { return m_uiMaxBitrate[index]; }
	UInt getMaxBitrateCalcWindow( UInt index )		  { return m_uiMaxBitrateCalcWindow[index]; }
	UInt getConstantFrmRateIdc( UInt index )		  { return m_uiConstantFrmRateIdc[index]; }
	UInt getAvgFrmRate( UInt index )				  { return m_uiAvgFrmRate[index]; }
	UInt getFrmRateInfoSrcOpIdDela( UInt index )      { return m_uiFrmRateInfoSrcOpIdDela[index]; }
	UInt getNumDirectlyDependentOps( UInt index )	  { return m_uiNumDirectlyDependentOps[index]; }
	UInt getDirectlyDependentOpIdDeltaMinus1( UInt i, UInt j ) { return m_uiDirectlyDependentOpIdDeltaMinus1[i][j]; }
	UInt getOpDependencyInfoSrcOpIdDelta( UInt index ) { return m_uiOpDependencyInfoSrcOpIdDelta[index]; }
	UInt getNumInitSeqParameterSetMinus1( UInt index ) { return m_uiNumInitSeqParameterSetMinus1[index]; }
	UInt getInitSeqParameterSetIdDelta( UInt i, UInt j ) { return m_uiInitSeqParameterSetIdDelta[i][j]; } 
	UInt getNumInitPicParameterSetMinus1( UInt index ) { return m_uiNumInitPicParameterSetMinus1[index]; }
	UInt getInitPicParameterSetIdDelta( UInt i, UInt j){ return m_uiInitPicParameterSetIdDelta[i][j]; }
	UInt getInitParameterSetsInfoSrcOpIdDelta( UInt index) { return m_uiInitParameterSetsInfoSrcOpIdDelta[index]; }


	Void setNumOperationPointsMinus1( UInt ui )		  { m_uiNumOperationPointsMinus1 = ui; }
	Void setOperationPointId( UInt index, UInt ui )	  { m_uiOperationPointId[index] = ui; }
	Void setPriorityId( UInt index, UInt ui )		  { m_uiPriorityId[index] = ui; }
	Void setTemporalId( UInt index, UInt ui )		  { m_uiTemporalId[index] = ui; }
//	Void setNumActiveViewsMinus1( UInt index, UInt ui )  { m_uiNumActiveViewsMinus1[index] = ui; }
	Void setViewId( UInt i, UInt j, UInt uiId )		  { m_uiViewId[i][j] = uiId; }
	Void setProfileLevelInfoPresentFlag( UInt index, Bool b ) { m_bProfileLevelInfoPresentFlag[index] = b; }
	Void setBitRateInfoPresentFlag( UInt index, Bool b )	  { m_bBitRateInfoPresentFlag[index] = b; }
	Void setFrmRateInfoPresentFlag( UInt index, Bool b )      { m_bFrmRateInfoPresentFlag[index] = b; }
	Void setOpDependencyInfoPresentFlag( UInt index, Bool b ) { m_bOpDependencyInfoPresentFlag[index] = b; }
	Void setInitParameterSetsInfoPresentFlag(UInt i, Bool b ) { m_bInitParameterSetsInfoPresentFlag[i] = b; }
	Void setOpProfileIdc( UInt index, UInt ui )				  { m_uiOpProfileIdc[index] = ui; }
	Void setOpConstraintSet0Flag( UInt index, Bool b )		  { m_bOpConstraintSet0Flag[index] = b; }
	Void setOpConstraintSet1Flag( UInt index, Bool b )		  { m_bOpConstraintSet1Flag[index] = b; }
	Void setOpConstraintSet2Flag( UInt index, Bool b )		  { m_bOpConstraintSet2Flag[index] = b; }
	Void setOpConstraintSet3Flag( UInt index, Bool b )  	  { m_bOpConstraintSet3Flag[index] = b; }
	Void setOpLevelIdc( UInt index, UInt ui )			      { m_uiOpLevelIdc[index] = ui; }
	Void setProfileLevelInfoSrcOpIdDelta( UInt i, UInt ui )   { m_uiProfileLevelInfoSrcOpIdDelta[i] = ui; }
	Void setAvgBitrate( UInt index, UInt ui )				  { m_uiAvgBitrate[index] = ui; }
	Void setMaxBitrate( UInt index, UInt ui )				  { m_uiMaxBitrate[index] = ui; }
	Void setMaxBitrateCalcWindow( UInt index, UInt ui )		  { m_uiMaxBitrateCalcWindow[index] = ui; }
	Void setConstantFrmRateIdc( UInt index, UInt ui )		  { m_uiConstantFrmRateIdc[index] = ui; }
	Void setAvgFrmRate( UInt index, UInt ui )				  { m_uiAvgFrmRate[index] = ui; }
	Void setFrmRateInfoSrcOpIdDela( UInt index, UInt ui )     { m_uiFrmRateInfoSrcOpIdDela[index] = ui; }
//	Void setNumDirectlyDependentOps( UInt index, UInt ui )	  { m_uiNumDirectlyDependentOps[index] = ui; }
	Void setDirectlyDependentOpIdDeltaMinus1( UInt i, UInt j, UInt ui ) { m_uiDirectlyDependentOpIdDeltaMinus1[i][j] = ui; }
	Void setOpDependencyInfoSrcOpIdDelta( UInt index, UInt ui )     { m_uiOpDependencyInfoSrcOpIdDelta[index] = ui; }
//	Void setNumInitSeqParameterSetMinus1( UInt index, UInt ui )     { m_uiNumInitSeqParameterSetMinus1[index] = ui; }
	Void setInitSeqParameterSetIdDelta( UInt i, UInt j, UInt ui )   { m_uiInitSeqParameterSetIdDelta[i][j] = ui; } 
//	Void setNumInitPicParameterSetMinus1( UInt index, UInt ui )     { m_uiNumInitPicParameterSetMinus1[index] = ui; }
	Void setInitPicParameterSetIdDelta( UInt i, UInt j, UInt ui)    { m_uiInitPicParameterSetIdDelta[i][j] = ui; }
	Void setInitParameterSetsInfoSrcOpIdDelta( UInt index, UInt ui) { m_uiInitParameterSetsInfoSrcOpIdDelta[index] = ui; }

	Void setNumActiveViewsMinus1( UInt index, UInt ui )  
	{ 

  	  m_uiNumActiveViewsMinus1[index] = ui; 
	  if( m_uiViewId[index] == NULL )
		m_uiViewId[index] = (UInt*)malloc((ui+1)*sizeof(UInt));
	}

	Void setNumDirectlyDependentOps( UInt index, UInt ui )	  
	{ 
	  m_uiNumDirectlyDependentOps[index] = ui; 
	  if( m_uiDirectlyDependentOpIdDeltaMinus1[index] == NULL )
		  m_uiDirectlyDependentOpIdDeltaMinus1[index] = (UInt*)malloc(ui*sizeof(UInt));
	}

	Void setNumInitSeqParameterSetMinus1( UInt index, UInt ui )     
	{ 
	  m_uiNumInitSeqParameterSetMinus1[index] = ui; 
	  if( m_uiInitSeqParameterSetIdDelta[index] == NULL )
	    m_uiInitSeqParameterSetIdDelta[index] = (UInt*)malloc((ui+1)*sizeof(UInt));
	}
	
	Void setNumInitPicParameterSetMinus1( UInt index, UInt ui ) 
	{ 
	  m_uiNumInitPicParameterSetMinus1[index] = ui; 
	  if( m_uiInitPicParameterSetIdDelta[index] == NULL )
	    m_uiInitPicParameterSetIdDelta[index] = (UInt*)malloc((ui+1)*sizeof(UInt));
	}

  private:
	UInt			m_uiNumOperationPointsMinus1;

	UInt			m_uiOperationPointId[MAX_OPERATION_POINTS];
	UInt			m_uiPriorityId[MAX_OPERATION_POINTS];
	UInt			m_uiTemporalId[MAX_OPERATION_POINTS];
	UInt			m_uiNumActiveViewsMinus1[MAX_OPERATION_POINTS];

	UInt*			m_uiViewId[MAX_OPERATION_POINTS];
	Bool			m_bProfileLevelInfoPresentFlag[MAX_OPERATION_POINTS];
	Bool			m_bBitRateInfoPresentFlag[MAX_OPERATION_POINTS];
	Bool			m_bFrmRateInfoPresentFlag[MAX_OPERATION_POINTS];
	Bool			m_bOpDependencyInfoPresentFlag[MAX_OPERATION_POINTS];
	Bool			m_bInitParameterSetsInfoPresentFlag[MAX_OPERATION_POINTS];

	UInt			m_uiOpProfileIdc[MAX_OPERATION_POINTS];
	Bool			m_bOpConstraintSet0Flag[MAX_OPERATION_POINTS];
	Bool			m_bOpConstraintSet1Flag[MAX_OPERATION_POINTS];
	Bool			m_bOpConstraintSet2Flag[MAX_OPERATION_POINTS];
	Bool			m_bOpConstraintSet3Flag[MAX_OPERATION_POINTS];
	UInt			m_uiOpLevelIdc[MAX_OPERATION_POINTS];

	UInt			m_uiProfileLevelInfoSrcOpIdDelta[MAX_OPERATION_POINTS];

	UInt			m_uiAvgBitrate[MAX_OPERATION_POINTS];
	UInt			m_uiMaxBitrate[MAX_OPERATION_POINTS];
	UInt			m_uiMaxBitrateCalcWindow[MAX_OPERATION_POINTS];

	UInt			m_uiConstantFrmRateIdc[MAX_OPERATION_POINTS];
	UInt			m_uiAvgFrmRate[MAX_OPERATION_POINTS];

	UInt			m_uiFrmRateInfoSrcOpIdDela[MAX_OPERATION_POINTS];

	UInt			m_uiNumDirectlyDependentOps[MAX_OPERATION_POINTS];
	UInt*			m_uiDirectlyDependentOpIdDeltaMinus1[MAX_OPERATION_POINTS];

	UInt			m_uiOpDependencyInfoSrcOpIdDelta[MAX_OPERATION_POINTS];

	UInt			m_uiNumInitSeqParameterSetMinus1[MAX_OPERATION_POINTS];
	UInt*			m_uiInitSeqParameterSetIdDelta[MAX_OPERATION_POINTS];
	UInt			m_uiNumInitPicParameterSetMinus1[MAX_OPERATION_POINTS];
	UInt*			m_uiInitPicParameterSetIdDelta[MAX_OPERATION_POINTS];

	UInt			m_uiInitParameterSetsInfoSrcOpIdDelta[MAX_OPERATION_POINTS];
  };

#define MAX_PICTURES_IN_ACCESS_UNIT 50
  class H264AVCCOMMONLIB_API ScalableNestingSei : public SEIMessage
  {
  protected:
    ScalableNestingSei()
      : SEIMessage(SCALABLE_NESTING_SEI)
      , m_bAllPicturesInAuFlag  (0)
    , m_uiNumPicturesMinus1     (0)
	, m_uiTemporalId		    (0)
    , m_pcSEIMessage          (NULL)
    {}

  public:
    static ErrVal create( ScalableNestingSei*&  rpcSEIMessage );
    ErrVal      destroy();
    ErrVal        write ( HeaderSymbolWriteIf*  pcWriteIf );
    ErrVal        read  ( HeaderSymbolReadIf*   pcReadIf );
    ErrVal        init  ( Bool                  m_bAllPicturesInAuFlag,
                        UInt                  m_uiNumPicturesMinus1,
						UInt				  m_uiTemporalId,
                        UInt*                 m_uiPicId
            );

    Bool getAllPicturesInAuFlag()  const { return m_bAllPicturesInAuFlag; }
    UInt getNumPicturesMinus1()          const { return m_uiNumPicturesMinus1; }
    UInt getPicId( UInt uiIndex ) { return m_uiPicId[uiIndex]; }
	UInt getTemporalId()		const { return m_uiTemporalId; }
	SEIMessage *getSEIMessage()   { return m_pcSEIMessage;}
  
    Void setAllPicturesInAuFlag( Bool bFlag ) { m_bAllPicturesInAuFlag = bFlag; }
    Void setNumPicturesMinus1( UInt uiNum ) { m_uiNumPicturesMinus1 = uiNum; }
    Void setPicId( UInt uiIndex, UInt uiValue ) { m_uiPicId[uiIndex] = uiValue; }
    Void setTemporalId( UInt uiValue ) { m_uiTemporalId= uiValue; }
 
  private:
    Bool  m_bAllPicturesInAuFlag;
    UInt  m_uiNumPicturesMinus1;
	UInt  m_uiTemporalId;
    UInt  m_uiPicId[MAX_PICTURES_IN_ACCESS_UNIT];
    SEIMessage *m_pcSEIMessage;
  };
  //full-frame snapshot SEI message is taken as en example
  class H264AVCCOMMONLIB_API FullframeSnapshotSei : public SEIMessage
  {
  protected:
    FullframeSnapshotSei() : SEIMessage(FULLFRAME_SNAPSHOT_SEI)
    {}
  public:
    static ErrVal create( FullframeSnapshotSei*& rpcFullframeSnapshotSei );
    ErrVal    destroy ();
    ErrVal        write ( HeaderSymbolWriteIf*  pcWriteIf);
      ErrVal        read  ( HeaderSymbolReadIf*   pcReadIf );

    UInt getSnapShotId()              const { return m_uiSnapShotId; }
    Void setSnapShotId( UInt uiSnapShotId )                   { m_uiSnapShotId = uiSnapShotId; }
  private:
    UInt m_uiSnapShotId;
  };

#define MAX_VIEWS 100
 class H264AVCCOMMONLIB_API ActiveViewInfoSei : public SEIMessage
 {
 protected:
   ActiveViewInfoSei() 
	 : SEIMessage(ACTIVE_VIEWINFO_SEI)
	 , m_bOpPresentFlag		   (false)
	 , m_uiOperationPointId   (0)
	 , m_uiNumActiveViewsMinus1(0)
     {}
 public:
   static ErrVal create( ActiveViewInfoSei*& rpcSeiMessage );
   ErrVal    destroy ();
   ErrVal	 write ( HeaderSymbolWriteIf* pcWriteIf );
   ErrVal	 read ( HeaderSymbolReadIf*   pcReadIf );

   Bool getOpPresentFlag()			const { return m_bOpPresentFlag; }
   UInt getOperationPointId()		const { return m_uiOperationPointId; }
   UInt getNumActiveViewsMinus1()	const { return m_uiNumActiveViewsMinus1; }
   UInt getViewId( UInt uiIndex )		  { return m_uiViewId[uiIndex]; }

   Void setOpPresentFlag( Bool bFlag )			{ m_bOpPresentFlag = bFlag; }
   Void setOperationPointId( UInt uiId )		{ m_uiOperationPointId = uiId; }
   Void setNumActiveViewsMinus1( UInt uiNum )   { m_uiNumActiveViewsMinus1 = uiNum; }
   Void setViewId( UInt uiIndex, UInt uiId )	{ m_uiViewId[uiIndex] = uiId; }

 private:
   Bool		m_bOpPresentFlag;
   UInt	    m_uiOperationPointId;
   UInt		m_uiNumActiveViewsMinus1;
   UInt		m_uiViewId[MAX_VIEWS];
 };

 class H264AVCCOMMONLIB_API MultiviewSceneInfoSei : public SEIMessage // SEI JVT-W060
 {
 protected:
   MultiviewSceneInfoSei() 
	 : SEIMessage(MULTIVIEW_SCENE_INFO_SEI)
	 , m_uiMaxDisparity	   (0)
	 {}
 public:
   static ErrVal create( MultiviewSceneInfoSei*& rpcSeiMessage );
   ErrVal    destroy ();
   ErrVal	 write ( HeaderSymbolWriteIf* pcWriteIf );

⌨️ 快捷键说明

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