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

📄 sei.h

📁 jsvm开发代码包括抽样,编码,抽取,解码等一系列功能,可以做工具或研究用
💻 H
📖 第 1 页 / 共 4 页
字号:
    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 + -