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

📄 h264avcdecoder.h

📁 JMVM MPEG MVC/3DAV 测试平台 国际通用标准
💻 H
📖 第 1 页 / 共 2 页
字号:
  ErrVal  getBaseLayerPWTable          ( SliceHeader::PredWeightTable*& rpcPredWeightTable,
                                         UInt                           uiBaseLayerId,
                                         ListIdx                        eListIdx,
                                         Int                            iPoc );

  Void    setBaseAVCCompatible        ( Bool                        bAVCCompatible )    { m_bBaseLayerIsAVCCompatible = bAVCCompatible; }
  Void    setReconstructionLayerId    ( UInt                        uiLayerId )         { m_uiRecLayerId = uiLayerId; }
  Void    setVeryFirstSPS             (  SequenceParameterSet* pcSPS )                  { m_pcVeryFirstSPS = pcSPS; }

  ErrVal  calculatePoc                ( NalUnitType       eNalUnitType,
                                        SliceHeader&      rcSliceHeader,
                                        Int&              slicePoc  );
  ErrVal  checkSliceLayerDependency   ( BinDataAccessor*  pcBinDataAccessor,
                                        Bool&             bFinishChecking 
									    ,Bool&			  UnitAVCFlag    //JVT-S036 	
									   );
//	TMM_EC {{
	Bool		checkSEIForErrorConceal();
  ErrVal  checkSliceGap   ( BinDataAccessor*  pcBinDataAccessor,
                            MyList<BinData*>&	cVirtualSliceList 
							,Bool&			  UnitAVCFlag		//JVT-S036 
						   );
	ErrVal	setec( UInt uiErrorConceal) { m_eErrorConceal = (ERROR_CONCEAL)(EC_NONE + uiErrorConceal); if ( m_eErrorConceal == 0) m_bNotSupport = true; return	Err::m_nOK;}
	UInt	m_uiNextFrameNum;
	UInt	m_uiNextLayerId;
	UInt	m_uiNextPoc;
	UInt	m_uiNextTempLevel;
	UInt	*m_pauiPocInGOP[MAX_LAYERS];
	UInt	*m_pauiFrameNumInGOP[MAX_LAYERS];
	UInt	*m_pauiTempLevelInGOP[MAX_LAYERS];
	UInt	m_uiDecompositionStages[MAX_LAYERS];
	UInt	m_uiNumLayers;
	UInt	m_uiFrameIdx[MAX_LAYERS];
	ERROR_CONCEAL	m_eErrorConceal;
	UInt	m_uiDefNumLayers;
	UInt	m_uiDefDecompositionStages[MAX_LAYERS];
	UInt	m_uiMaxDecompositionStages;
	UInt	m_uiMaxGopSize;
	UInt	m_uiGopSize[MAX_LAYERS];
	Bool	m_bNotSupport;
	UInt	m_uiMaxLayerId;
//  TMM_EC }}
  Void    setQualityLevelForPrediction( UInt ui ) { m_uiQualityLevelForPrediction = ui; }

  UInt isNonRequiredPic()						  { return m_uiNonRequiredPic;  } //NonRequired JVT-Q066
  Bool isRedundantPic()             { return m_bRedundantPic; }  // JVT-Q054 Red. Picture
  ErrVal  checkRedundantPic();  // JVT-Q054 Red. Picture
  Void    setFGSRefInAU(Bool &b); //JVT-T054
protected:

  ErrVal  xInitSlice                ( SliceHeader*    pcSliceHeader );
  ErrVal  xStartSlice               ( Bool& bPreParseHeader, Bool& bLastFragment, Bool& bDiscardable, Bool UnitAVCFlag); //FRAG_FIX //TMM_EC//JVT-S036 
  // TMM_EC {{
  ErrVal  xProcessSliceVirtual      ( SliceHeader&    rcSH,
	                                    SliceHeader* pcPrevSH,
									                    PicBuffer* &    rpcPicBuffer);
  // TMM_EC }}
  ErrVal  xProcessSlice             ( SliceHeader&    rcSH,
                                      SliceHeader*    pcPrevSH,
                                      PicBuffer*&     rpcPicBuffer,
                                      PicBufferList&   rcPicBufferOutputList,
                                      PicBufferList&   rcPicBufferUnusedList,
                                      Bool            bHighestLayer); //JVT-T054
//  ErrVal  xReconstructLastFGS       (Bool bHighestLayer); //JVT-T054
  ErrVal  xDecodeFGSRefinement      ( SliceHeader*&   rpcSliceHeader,
                                      PicBuffer*&     rpcPicBuffer );

  ErrVal  xZeroIntraMacroblocks     ( IntFrame*       pcFrame,
                                      MbDataCtrl*     pcMbDataCtrl,
                                      SliceHeader*    pcSliceHeader );
/*
  ErrVal  setDiffPrdRefLists        ( RefFrameList&               diffPrdRefList,
                                      YuvBufferCtrl*              pcYuvFullPelBufferCtrl);
                                      */
  ErrVal  freeDiffPrdRefLists       ( RefFrameList& diffPrdRefList);

protected:
  SliceReader*                  m_pcSliceReader;
  SliceDecoder*                 m_pcSliceDecoder;
  FrameMng*                     m_pcFrameMng;
  NalUnitParser*                m_pcNalUnitParser;
  ControlMngIf*                 m_pcControlMng;
  LoopFilter*                   m_pcLoopFilter;
  HeaderSymbolReadIf*           m_pcHeaderSymbolReadIf;
  ParameterSetMng*              m_pcParameterSetMng;
  PocCalculator*                m_pcPocCalculator;
  SliceHeader*                  m_pcSliceHeader;
  SliceHeader*                  m_pcPrevSliceHeader;
  SliceHeader*                  m_pcSliceHeader_backup; //JVT-Q054 Red. Picture
  Bool                          m_bFirstSliceHeaderBackup;  //JVT-Q054 Red. Picture
  Bool                          m_bRedundantPic;  // JVT-Q054 Red. Picture
  Bool                          m_bInitDone;
  Bool                          m_bLastFrame;
  Bool                          m_bFrameDone;
  MotionCompensation*           m_pcMotionCompensation;

  //MCTFDecoder*                  m_apcMCTFDecoder[MAX_LAYERS];
  RQFGSDecoder*                 m_pcRQFGSDecoder;
  PicBuffer*                    m_pcFGSPicBuffer;

  Bool                          m_bEnhancementLayer;
  Bool                          m_bActive;
  Bool                          m_bReconstruct;
  Bool                          m_bBaseLayerIsAVCCompatible;
	Bool                          m_bNewSPS;
  UInt                          m_uiRecLayerId;
  UInt                          m_uiLastLayerId;
  SequenceParameterSet*         m_pcVeryFirstSPS;
  SliceHeader*                  m_pcVeryFirstSliceHeader;

  Bool                          m_bCheckNextSlice;
  Bool                          m_bDependencyInitialized;

  Int                           m_iLastPocChecked;
  Int                           m_iFirstSlicePoc;

  Int                           m_iFirstLayerIdx;
  Int                           m_iLastLayerIdx;
  Bool                          m_bBaseLayerAvcCompliant;

  Int                           m_auiBaseLayerId[MAX_LAYERS];
  Int                           m_auiBaseQualityLevel[MAX_LAYERS];

  // should this layer be decoded at all, and up to which FGS layer should be decoded
  UInt                          m_uiQualityLevelForPrediction;

  Bool                          m_bFGSCodingMode;
  UInt                          m_uiGroupingSize;
  UInt                          m_uiPosVect[16];

//Dec. 1 fix view order for base view {{                        
  UInt*                         m_puiViewOrder;
//}}          

//SEI {
  UInt							m_uiScalableNestingSeiFlag;
  UInt							m_uiScalableNestingSeiRead;
  UInt							m_uiSnapshotSeiFlag;
  Bool							m_bAllPicturesInAuFlag;
  UInt							m_uiNumPicturesMinus1;
  UInt						    m_uiTemporalId;
  UInt							m_uiPicId[MAX_PICTURES_IN_ACCESS_UNIT];
  UInt							m_uiSnapShotId;
  int							m_uiPoc;

  UInt							m_uiActiveViewInfoSeiFlag;
  Bool							m_bOpPresentFlag;
  UInt						    m_uiOperationPointId;
  UInt							m_uiNumActiveViews;
  UInt							m_uiViewId[MAX_VIEWS];
  UInt							m_uiNumDecodeViews;
  UInt							m_uiDecodeView[MAX_VIEWS];
  UInt							m_uiNumOpMinus1;
  UInt							m_uiNumViews[MAX_OPERATION_POINTS];
  UInt*							m_OpViewId[MAX_OPERATION_POINTS];
//SEI }

  UInt							m_uiMultiviewSceneInfoSeiFlag; // SEI JVT-W060
  UInt							m_uiMaxDisparity; // SEI JVT-W060
  UInt							m_uiMultiviewAcquisitionInfoSeiFlag; // SEI JVT-W060
  SEI::NonRequiredSei*			m_pcNonRequiredSei;
  UInt							m_uiNonRequiredSeiReadFlag;
	UInt							m_uiNonRequiredSeiRead;
	UInt							m_uiNonRequiredPic;	//NonRequired JVT-Q066	
  UInt							m_uiPrevPicLayer;
  UInt							m_uiCurrPicLayer;
  //JVT-P031
  UInt                          m_uiFirstFragmentPPSId;
  UInt                          m_uiFirstFragmentNumMbsInSlice;
  Bool                          m_bFirstFragmentFGSCompSep;
  UInt                          m_uiLastFragOrder;
  UInt                          m_uiNumberOfFragment[MAX_LAYERS];
  UInt                          m_uiNumberOfSPS;
  UInt                          m_uiSPSId[MAX_LAYERS];
  UInt                          m_uiDecodedLayer;
  UInt                          m_uiNumOfNALInAU;
  SliceHeader*                  m_pcSliceHeaderStored;
  Int                           m_iPrevPoc;
  //~JVT-P031

  SliceHeader::PredWeightTable  m_acLastPredWeightTable[2];

  // ROI DECODE ICU/ETRI
  int	m_iCurNalSpatialLayer;
  int	m_iNextNalSpatialLayer;
			   
  int	m_iCurNalPOC;
  int	m_iNextNalPOC;
  int   m_iCurNalFirstMb;

  bool	m_bCurNalIsEndOfPic;
  bool	m_bFirstFGS;

//JVT-T054{
  Bool                          m_bLastNalInAU;
  Bool                          m_bFGSRefInAU;
  Bool                          m_bAVCBased;
  Bool                          m_bCGSSNRInAU;
  Bool                          m_bOnlyAVCAtLayer;
//JVT-T054}
public:
  MbDataCtrl*         m_pcBaseLayerCtrlEL;
};

H264AVC_NAMESPACE_END

#endif // !defined(AFX_H264AVCDECODER_H__FBF0345F_A5E5_4D18_8BEC_4A68790901F7__INCLUDED_)

⌨️ 快捷键说明

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