📄 sei.h
字号:
UInt m_uiNumNonRequiredPicsMinus1[MAX_NUM_INFO_ENTRIES];
UInt m_uiNonRequiredPicDependencyId[MAX_NUM_INFO_ENTRIES][MAX_NUM_NON_REQUIRED_PICS];
UInt m_uiNonRequiredPicQulityLevel[MAX_NUM_INFO_ENTRIES][MAX_NUM_NON_REQUIRED_PICS];
UInt m_uiNonRequiredPicFragmentOrder[MAX_NUM_INFO_ENTRIES][MAX_NUM_NON_REQUIRED_PICS];
};//shenqiu 05-09-15
// JVT-S080 LMI {
class H264AVCCOMMONLIB_API ScalableSeiLayersNotPresent: public SEIMessage
{
protected:
ScalableSeiLayersNotPresent ();
~ScalableSeiLayersNotPresent();
public:
static ErrVal create ( ScalableSeiLayersNotPresent*& rpcSeiMessage);
//TMM_FIX
ErrVal destroy ();
//TMM_FIX
ErrVal write ( HeaderSymbolWriteIf *pcWriteIf);
ErrVal read ( HeaderSymbolReadIf *pcReadIf);
Void setNumLayers( UInt ui ) { m_uiNumLayers = ui; }
Void setLayerId ( UInt uiLayer, UInt uiId ) { m_auiLayerId [uiLayer] = uiId; }
Void setOutputFlag ( Bool bFlag ) { m_bOutputFlag = bFlag; }
UInt getNumLayers() const {return m_uiNumLayers;}
UInt getLayerId ( UInt uiLayer ) const { return m_auiLayerId[uiLayer]; }
Bool getOutputFlag ( ) const { return m_bOutputFlag; }
static UInt m_uiLeftNumLayers;
static UInt m_auiLeftLayerId[MAX_SCALABLE_LAYERS];
private:
UInt m_uiNumLayers;
UInt m_auiLayerId[MAX_SCALABLE_LAYERS];
Bool m_bOutputFlag;
};
class H264AVCCOMMONLIB_API ScalableSeiDependencyChange: public SEIMessage
{
protected:
ScalableSeiDependencyChange ();
~ScalableSeiDependencyChange();
public:
static ErrVal create ( ScalableSeiDependencyChange*& rpcSeiMessage);
ErrVal write ( HeaderSymbolWriteIf *pcWriteIf);
ErrVal read ( HeaderSymbolReadIf *pcReadIf);
Void setNumLayersMinus1( UInt ui ) { m_uiNumLayersMinus1 = ui; }
Void setLayerId ( UInt uiLayer, UInt uiId ) { m_auiLayerId [uiLayer] = uiId; }
Void setLayerDependencyInfoPresentFlag ( UInt uiLayer, Bool bFlag ) { m_abLayerDependencyInfoPresentFlag[uiLayer] = bFlag; }
Void setNumDirectDependentLayers ( UInt uiLayer, UInt ui ) { m_auiNumDirectDependentLayers[uiLayer] = ui; }
Void setDirectDependentLayerIdDeltaMinus1( UInt uiLayer, UInt uiDirectLayer, UInt uiIdDeltaMinus1 ) { m_auiDirectDependentLayerIdDeltaMinus1[uiLayer][uiDirectLayer] = uiIdDeltaMinus1; }
Void setLayerDependencyInfoSrcLayerIdDeltaMinus1 ( UInt uiLayer, UInt uiIdDeltaMinus1 ) { m_auiLayerDependencyInfoSrcLayerIdDeltaMinus1[uiLayer] = uiIdDeltaMinus1; }
Void setOutputFlag ( Bool bFlag ) { m_bOutputFlag = bFlag; }
UInt getNumLayersMinus1() const {return m_uiNumLayersMinus1;}
UInt getLayerId ( UInt uiLayer ) const { return m_auiLayerId[uiLayer]; }
UInt getNumDirectDependentLayers ( UInt uiLayer ) const { return m_auiNumDirectDependentLayers[uiLayer]; }
UInt getDirectDependentLayerIdDeltaMinus1( UInt uiLayer, UInt uiDirectLayer ) const { return m_auiDirectDependentLayerIdDeltaMinus1[uiLayer][uiDirectLayer]; }
UInt getLayerDependencyInfoSrcLayerIdDeltaMinus1 ( UInt uiLayer ) const { return m_auiLayerDependencyInfoSrcLayerIdDeltaMinus1[uiLayer]; }
Bool getLayerDependencyInfoPresentFlag ( UInt uiLayer ) const { return m_abLayerDependencyInfoPresentFlag[uiLayer]; }
Bool getOutputFlag ( ) const { return m_bOutputFlag; }
private:
UInt m_uiNumLayersMinus1;
UInt m_auiLayerId[MAX_SCALABLE_LAYERS];
UInt m_auiNumDirectDependentLayers[MAX_SCALABLE_LAYERS];
UInt m_auiDirectDependentLayerIdDeltaMinus1[MAX_SCALABLE_LAYERS][MAX_SCALABLE_LAYERS];
UInt m_auiLayerDependencyInfoSrcLayerIdDeltaMinus1[MAX_SCALABLE_LAYERS];
Bool m_abLayerDependencyInfoPresentFlag[MAX_SCALABLE_LAYERS];
Bool m_bOutputFlag;
};
// JVT-S080 LMI }
// JVT-T073 {
#define MAX_PICTURES_IN_ACCESS_UNIT 50
class H264AVCCOMMONLIB_API ScalableNestingSei : public SEIMessage
{
protected:
ScalableNestingSei()
: SEIMessage(SCALABLE_NESTING_SEI)
, m_bAllPicturesInAuFlag (0)
, m_uiNumPictures (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_uiNumPictures,
UInt* m_auiDependencyId,
UInt* m_auiQualityLevel
);
Bool getAllPicturesInAuFlag() const { return m_bAllPicturesInAuFlag; }
UInt getNumPictures() const { return m_uiNumPictures; }
UInt getDependencyId( UInt uiIndex ) { return m_auiDependencyId[uiIndex]; }
UInt getQualityLevel( UInt uiIndex ) { return m_auiQualityLevel[uiIndex]; }
Void setAllPicturesInAuFlag( Bool bFlag ) { m_bAllPicturesInAuFlag = bFlag; }
Void setNumPictures( UInt uiNum ) { m_uiNumPictures = uiNum; }
Void setDependencyId( UInt uiIndex, UInt uiValue ) { m_auiDependencyId[uiIndex] = uiValue; }
Void setQualityLevel( UInt uiIndex, UInt uiValue ) { m_auiQualityLevel[uiIndex] = uiValue; }
private:
Bool m_bAllPicturesInAuFlag;
UInt m_uiNumPictures;
UInt m_auiDependencyId[MAX_PICTURES_IN_ACCESS_UNIT];
UInt m_auiQualityLevel[MAX_PICTURES_IN_ACCESS_UNIT];
SEIMessage *m_pcSEIMessage;
};
//scene_info is taken as en example
class H264AVCCOMMONLIB_API SceneInfoSei : public SEIMessage
{
protected:
SceneInfoSei() : SEIMessage(SCENE_INFO_SEI)
{}
public:
static ErrVal create( SceneInfoSei*& rpcSceneInfoSei );
ErrVal destroy ();
ErrVal write ( HeaderSymbolWriteIf* pcWriteIf);
ErrVal read ( HeaderSymbolReadIf* pcReadIf );
Bool getSceneInfoPresentFlag() const { return m_bSceneInfoPresentFlag; }
UInt getSceneId() const { return m_uiSceneId; }
UInt getSceneTransitionType() const { return m_uiSceneTransitionType; }
UInt getSecondSceneId() const { return m_uiSecondSceneId; }
Void setSceneInfoPresentFlag( Bool bFlag ) { m_bSceneInfoPresentFlag = bFlag; }
Void setSceneId( UInt uiSceneId ) { m_uiSceneId = uiSceneId; }
Void setSceneTransitionType( UInt uiTransitionType) { m_uiSceneTransitionType = uiTransitionType; }
Void setSecondSceneId( UInt uiSecondId ) { m_uiSecondSceneId = uiSecondId; }
private:
Bool m_bSceneInfoPresentFlag;
UInt m_uiSceneId;
UInt m_uiSceneTransitionType;
UInt m_uiSecondSceneId;
};
// JVT-T073 }
#define MAX_SLICE_NUM 4
class H264AVCCOMMONLIB_API PRComponentInfoSei : public SEIMessage
{
protected:
PRComponentInfoSei() : SEIMessage(PR_COMPONENT_INFO_SEI) {}
public:
static ErrVal create ( PRComponentInfoSei*& rpcSeiMessage);
ErrVal destroy ();
ErrVal write ( HeaderSymbolWriteIf *pcWriteIf);
ErrVal read ( HeaderSymbolReadIf *pcReadIf);
Void setNumDependencyIdMinus1( UInt uiNum ) { m_uiNumDependencyIdMinus1 = uiNum; }
Void setPrDependencyId ( UInt* auiPrDepId ) { memcpy( m_uiPrDependencyId, auiPrDepId, sizeof(UInt)*MAX_LAYERS ); }
Void setNumQualLevelMinus1 ( UInt* auiNumQL ) { memcpy( m_uiNumQualityLevelMinus1, auiNumQL, sizeof(UInt)*MAX_LAYERS ); }
Void setPrQualLevel ( UInt* aauiQL ) { memcpy( m_uiPrQualityLevel, aauiQL, sizeof(UInt)*MAX_LAYERS*MAX_QUALITY_LEVELS ); }
Void setNumSlice ( UInt* aauiNumSlice ) { memcpy( m_uiNumPrSliceMinus1, aauiNumSlice, sizeof(UInt)*MAX_LAYERS*MAX_QUALITY_LEVELS ); }
Void setChromaOffset ( UInt* aaauiOffset ) { memcpy( m_uiChromaOffset, aaauiOffset, sizeof(UInt)*MAX_LAYERS*MAX_QUALITY_LEVELS*MAX_SLICE_NUM ); }
private:
UInt m_uiNumDependencyIdMinus1;
UInt m_uiPrDependencyId [MAX_LAYERS];
UInt m_uiNumQualityLevelMinus1[MAX_LAYERS];
UInt m_uiPrQualityLevel [MAX_LAYERS][MAX_QUALITY_LEVELS];
UInt m_uiNumPrSliceMinus1 [MAX_LAYERS][MAX_QUALITY_LEVELS];
UInt m_uiChromaOffset [MAX_LAYERS][MAX_QUALITY_LEVELS][MAX_SLICE_NUM];
};
typedef MyList<SEIMessage*> MessageList;
static ErrVal read ( HeaderSymbolReadIf* pcReadIf,
MessageList& rcSEIMessageList );
static ErrVal write ( HeaderSymbolWriteIf* pcWriteIf,
HeaderSymbolWriteIf* pcWriteTestIf,
MessageList* rpcSEIMessageList );
//JVT-T073 {
static ErrVal writeNesting ( HeaderSymbolWriteIf* pcWriteIf,
HeaderSymbolWriteIf* pcWriteTestIf,
MessageList* rpcSEIMessageList );
static ErrVal xWriteNesting ( HeaderSymbolWriteIf* pcWriteIf,
HeaderSymbolWriteIf* pcWriteTestIf,
SEIMessage* pcSEIMessage,
UInt& uiBits );
//JVT-T073 }
protected:
static ErrVal xRead ( HeaderSymbolReadIf* pcReadIf,
SEIMessage*& rpcSEIMessage );
static ErrVal xWrite ( HeaderSymbolWriteIf* pcWriteIf,
HeaderSymbolWriteIf* pcWriteTestIf,
SEIMessage* pcSEIMessage );
static ErrVal xWritePayloadHeader ( HeaderSymbolWriteIf* pcWriteIf,
MessageType eMessageType,
UInt uiSize );
static ErrVal xReadPayloadHeader ( HeaderSymbolReadIf* pcReadIf,
MessageType& reMessageType,
UInt& ruiSize);
static ErrVal xCreate ( SEIMessage*& rpcSEIMessage,
MessageType eMessageType,
UInt uiSize );
public:
};
#if defined( WIN32 )
# pragma warning( default: 4251 )
#endif
H264AVC_NAMESPACE_END
#endif // !defined(AFX_SEI_H__06FFFAD0_FB36_4BF0_9392_395C7389C1F4__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -