Changeset 612 in SHVCSoftware for branches/SHM-5.1-dev/source/App/TAppDecoder/TAppDecTop.h
- Timestamp:
- 11 Feb 2014, 23:53:38 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-5.1-dev/source/App/TAppDecoder/TAppDecTop.h
r595 r612 55 55 // Class definition 56 56 // ==================================================================================================================== 57 57 #if ALIGNED_BUMPING 58 struct DpbStatus; 59 #endif 58 60 /// decoder application class 59 61 class TAppDecTop : public TAppDecCfg … … 98 100 #endif 99 101 Bool isNaluWithinTargetDecLayerIdSet ( InputNALUnit* nalu ); ///< check whether given Nalu is within targetDecLayerIdSet 102 #if ALIGNED_BUMPING 103 Void checkOutputBeforeDecoding(Int layerIdx); 104 Void checkOutputAfterDecoding(); 105 Void flushAllPictures(Bool outputPictures); 106 Void flushAllPictures(Int layerId, Bool outputPictures); 107 108 Void xOutputAndMarkPic( TComPic *pic, const Char *reconFile, const Int layerID, Int &pocLastDisplay, DpbStatus &dpbStatus); 109 Void xFindDPBStatus( std::vector<Int> &listOfPocs 110 , std::vector<Int> *listOfPocsInEachLayer 111 , std::vector<Int> *listOfPocsPositionInEachLayer 112 , DpbStatus &dpbStatus 113 ); 114 115 Bool ifInvokeBumpingBeforeDecoding( const DpbStatus &dpbStatus, const DpbStatus &dpbLimit, const Int layerIdx, const Int subDpbIdx ); 116 Bool ifInvokeBumpingAfterDecoding ( const DpbStatus &dpbStatus, const DpbStatus &dpbLimit ); 117 Void bumpingProcess(std::vector<Int> &listOfPocs, std::vector<Int> *listOfPocsInEachLayer, std::vector<Int> *listOfPocsPositionInEachLayer, DpbStatus &dpbStatus); 118 Void emptyUnusedPicturesNotNeededForOutput(); 119 Void markAllPicturesAsErased(); 120 Void markAllPicturesAsErased(Int layerIdx); 121 TComVPS* findDpbParametersFromVps(std::vector<Int> const &listOfPocs, std::vector<Int> const *listOfPocsInEachLayer, std::vector<Int> const *listOfPocsPositionInEachLayer, DpbStatus &maxDpbLimit); 122 #endif 100 123 }; 101 124 125 #if ALIGNED_BUMPING 126 struct DpbStatus 127 { 128 // Number of AUs and pictures 129 Int m_numAUsNotDisplayed; 130 Int m_numPicsNotDisplayedInLayer[MAX_LAYERS]; 131 Int m_numPicsInLayer[MAX_LAYERS]; // Pictures marked as used_for_reference or needed for output in the layer 132 Int m_numPicsInSubDpb[MAX_LAYERS]; // Pictures marked as used_for_reference or needed for output in the sub-DPB 133 Bool m_maxLatencyIncrease; 134 Int m_maxLatencyPictures; 135 136 Int m_numSubDpbs; 137 Int m_numLayers; 138 139 DpbStatus() 140 { 141 init(); 142 } 143 Void init() 144 { 145 m_numAUsNotDisplayed = 0; 146 m_maxLatencyIncrease = false; 147 m_maxLatencyPictures = 0; 148 ::memset( m_numPicsInLayer, 0, sizeof(m_numPicsInLayer) ); 149 ::memset( m_numPicsInSubDpb, 0, sizeof(m_numPicsInSubDpb) ); 150 ::memset(m_numPicsNotDisplayedInLayer, 0, sizeof(m_numPicsNotDisplayedInLayer) ); 151 m_numSubDpbs = -1; 152 m_numLayers = -1; 153 } 154 }; 155 #endif 102 156 //! \} 103 157
Note: See TracChangeset for help on using the changeset viewer.