Changeset 1191 in 3DVCSoftware for branches/HTM-14.0-MV-draft-3/source/Lib/TLibDecoder/TDecTop.h
- Timestamp:
- 15 Apr 2015, 11:36:33 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.0-MV-draft-3/source/Lib/TLibDecoder/TDecTop.h
r1179 r1191 64 64 class TAppDecTop; 65 65 #endif 66 #if H_3D67 class CamParsCollector68 {69 public:70 CamParsCollector ();71 ~CamParsCollector ();72 73 Void init ( FILE* pCodedScaleOffsetFile, TComVPS* vps );74 75 Void uninit ();76 Void setSlice ( TComSlice* pcSlice );77 78 Bool isInitialized() const { return m_bInitialized; }79 Int**** getBaseViewShiftLUTI() { return m_aiBaseViewShiftLUT; }80 81 #if H_3D_IV_MERGE82 Void copyCamParamForSlice( TComSlice* pcSlice );83 #endif84 85 86 private:87 Void xResetReceivedIdc( Bool overWriteFlag );88 Void xOutput ( Int iPOC );89 90 private:91 Bool m_bInitialized;92 FILE* m_pCodedScaleOffsetFile;93 94 Int** m_aaiCodedOffset;95 Int** m_aaiCodedScale;96 97 TComVPS* m_vps;98 Int** m_receivedIdc;99 #if!HHI_CAM_PARA_K0052100 Int m_uiMaxViewIndex;101 #endif102 Int m_lastPoc;103 Int m_firstReceivedPoc;104 105 106 Bool m_bCamParsVaryOverTime;107 108 UInt m_uiBitDepthForLUT;109 UInt m_iLog2Precision;110 UInt m_uiInputBitDepth;111 112 // look-up tables113 Double**** m_adBaseViewShiftLUT; ///< Disparity LUT114 Int**** m_aiBaseViewShiftLUT; ///< Disparity LUT115 Void xCreateLUTs( UInt uiNumberSourceViews, UInt uiNumberTargetViews, Double****& radLUT, Int****& raiLUT);116 Void xInitLUTs( UInt uiSourceView, UInt uiTargetView, Int iScale, Int iOffset, Double****& radLUT, Int****& raiLUT);117 template<class T> Void xDeleteArray ( T*& rpt, UInt uiSize1, UInt uiSize2, UInt uiSize3 );118 template<class T> Void xDeleteArray ( T*& rpt, UInt uiSize1, UInt uiSize2 );119 template<class T> Void xDeleteArray ( T*& rpt, UInt uiSize );120 121 };122 123 template <class T>124 Void CamParsCollector::xDeleteArray( T*& rpt, UInt uiSize1, UInt uiSize2, UInt uiSize3 )125 {126 if( rpt )127 {128 for( UInt uiK = 0; uiK < uiSize1; uiK++ )129 {130 for( UInt uiL = 0; uiL < uiSize2; uiL++ )131 {132 for( UInt uiM = 0; uiM < uiSize3; uiM++ )133 {134 delete[] rpt[ uiK ][ uiL ][ uiM ];135 }136 delete[] rpt[ uiK ][ uiL ];137 }138 delete[] rpt[ uiK ];139 }140 delete[] rpt;141 }142 rpt = NULL;143 };144 145 146 template <class T>147 Void CamParsCollector::xDeleteArray( T*& rpt, UInt uiSize1, UInt uiSize2 )148 {149 if( rpt )150 {151 for( UInt uiK = 0; uiK < uiSize1; uiK++ )152 {153 for( UInt uiL = 0; uiL < uiSize2; uiL++ )154 {155 delete[] rpt[ uiK ][ uiL ];156 }157 delete[] rpt[ uiK ];158 }159 delete[] rpt;160 }161 rpt = NULL;162 };163 164 165 template <class T>166 Void CamParsCollector::xDeleteArray( T*& rpt, UInt uiSize )167 {168 if( rpt )169 {170 for( UInt uiK = 0; uiK < uiSize; uiK++ )171 {172 delete[] rpt[ uiK ];173 }174 delete[] rpt;175 }176 rpt = NULL;177 };178 179 #endif //H_3D180 66 /// decoder class 181 67 class TDecTop … … 240 126 std::vector<TComPic*> m_refPicSetInterLayer0; 241 127 std::vector<TComPic*> m_refPicSetInterLayer1; 242 #if H_3D243 Int m_viewIndex;244 Bool m_isDepth;245 CamParsCollector* m_pcCamParsCollector;246 #endif247 #if H_3D_ANNEX_SELECTION_FIX248 Int m_profileIdc;249 #endif250 128 #endif 251 129 … … 299 177 Void setViewId ( Int viewId ) { m_viewId = viewId; } 300 178 Int getViewId () { return m_viewId; } 301 #if H_3D302 Void setViewIndex ( Int viewIndex ) { m_viewIndex = viewIndex; }303 Int getViewIndex () { return m_viewIndex; }304 Void setIsDepth ( Bool isDepth ) { m_isDepth = isDepth; }305 Bool getIsDepth () { return m_isDepth; }306 Void setCamParsCollector( CamParsCollector* pcCamParsCollector ) { m_pcCamParsCollector = pcCamParsCollector; }307 #endif308 #if H_3D_ANNEX_SELECTION_FIX309 Void setProfileIdc()310 {311 if (m_targetOptLayerSetIdx != -1 )312 {313 TComVPS* vps = getPrefetchedVPS();314 Int lsIdx = vps->olsIdxToLsIdx( m_targetOptLayerSetIdx );315 Int lIdx = -1;316 for (Int j = 0; j < vps->getNumLayersInIdList( lsIdx ); j++ )317 {318 if ( vps->getLayerSetLayerIdList( lsIdx, j ) == getLayerId() )319 {320 lIdx = j;321 break;322 }323 }324 assert( lIdx != -1 );325 326 Int profileIdc = vps->getPTL( vps->getProfileTierLevelIdx( m_targetOptLayerSetIdx, lIdx ) )->getGeneralPTL()->getProfileIdc();327 assert( profileIdc == 1 || profileIdc == 6 || profileIdc == 8 );328 m_profileIdc = profileIdc;329 };330 }331 Bool decProcAnnexI() { assert( m_profileIdc != -1 ); return ( m_profileIdc == 8); }332 #endif333 179 334 180 #endif
Note: See TracChangeset for help on using the changeset viewer.