Changeset 313 in 3DVCSoftware for trunk/source/Lib/TLibDecoder
- Timestamp:
- 20 Mar 2013, 21:35:14 (12 years ago)
- Location:
- trunk/source/Lib/TLibDecoder
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp
r296 r313 1501 1501 if( uiCode ) 1502 1502 { 1503 #if FCO_FIX_SPS_CHANGE 1504 UInt uiViewId, uiCamParPrecision; 1505 Int iVOI; 1506 Bool bCamParSlice; 1507 READ_UVLC( uiCode, "view_id" ); 1508 READ_SVLC( iCode, "view_order_idx" ); 1509 uiViewId = uiCode; 1510 iVOI = iCode; 1511 1512 if ( uiViewId == 0 ) 1513 { 1514 pcSPS->initMultiviewSPSDepth ( uiViewId, iVOI ); 1515 } 1516 else 1517 { 1518 READ_UVLC( uiCamParPrecision, "camera_parameter_precision" ); 1519 READ_FLAG( uiCode, "camera_parameter_in_slice_header" ); bCamParSlice = ( uiCode == 1 ); 1520 if( !bCamParSlice ) 1521 { 1522 for( UInt uiBaseId = 0; uiBaseId < uiViewId; uiBaseId++ ) 1523 { 1524 READ_SVLC( iCode, "coded_scale" ); m_aaiTempScale [ uiBaseId ][ uiViewId ] = iCode; 1525 READ_SVLC( iCode, "coded_offset" ); m_aaiTempOffset[ uiBaseId ][ uiViewId ] = iCode; 1526 READ_SVLC( iCode, "inverse_coded_scale_plus_coded_scale" ); m_aaiTempScale [ uiViewId ][ uiBaseId ] = iCode - m_aaiTempScale [ uiBaseId ][ uiViewId ]; 1527 READ_SVLC( iCode, "inverse_coded_offset_plus_coded_offset" ); m_aaiTempOffset[ uiViewId ][ uiBaseId ] = iCode - m_aaiTempOffset[ uiBaseId ][ uiViewId ]; 1528 } 1529 } 1530 pcSPS->initMultiviewSPSDepth( uiViewId, iVOI, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset ); 1531 1532 } 1533 #else 1503 1534 READ_UVLC( uiCode, "view_id" ); 1504 1535 READ_SVLC( iCode, "view_order_idx" ); 1505 1536 pcSPS->initMultiviewSPSDepth ( uiCode, iCode ); 1537 #endif 1506 1538 #if DEPTH_MAP_GENERATION 1539 #if FCO_FIX_SPS_CHANGE 1540 pcSPS->setPredDepthMapGeneration( uiViewId, true ); 1541 #else 1507 1542 pcSPS->setPredDepthMapGeneration( uiCode, true ); 1543 #endif 1508 1544 #endif 1509 1545 #if H3D_IVRP -
trunk/source/Lib/TLibDecoder/TDecTop.cpp
r296 r313 193 193 194 194 AOF( pcSlice->getSPS()->getViewId() < MAX_VIEW_NUM ); 195 #if !FCO_FIX // Under flexible coding order, depth may need the camera parameters 195 196 if ( pcSlice->getSPS()->isDepth () ) 196 197 { 197 198 return; 198 199 } 200 #endif 199 201 Bool bFirstAU = ( pcSlice->getPOC() == 0 ); 200 202 Bool bFirstSliceInAU = ( pcSlice->getPOC() != Int ( m_iLastPOC ) ); 201 203 Bool bFirstSliceInView = ( pcSlice->getSPS()->getViewId() != UInt( m_iLastViewId ) || bFirstSliceInAU ); 202 204 AOT( bFirstSliceInAU && pcSlice->getSPS()->getViewId() != 0 ); 205 #if FCO_FIX 206 #else 203 207 AOT( !bFirstSliceInAU && pcSlice->getSPS()->getViewId() < UInt( m_iLastViewId ) ); 208 #endif 204 209 AOT( !bFirstSliceInAU && pcSlice->getSPS()->getViewId() > UInt( m_iLastViewId + 1 ) ); 205 210 AOT( !bFirstAU && pcSlice->getSPS()->getViewId() > m_uiMaxViewId ); … … 1123 1128 } 1124 1129 1130 #if !FIX_LGE_WP_FOR_3D_C0223 1125 1131 if( pcSlice->getRefPicListCombinationFlag() && pcSlice->getPPS()->getWPBiPredIdc()==1 && pcSlice->getSliceType()==B_SLICE ) 1126 1132 { 1127 1133 pcSlice->setWpParamforLC(); 1128 1134 } 1135 #endif 1129 1136 pcSlice->setNoBackPredFlag( false ); 1130 1137 if ( pcSlice->getSliceType() == B_SLICE && !pcSlice->getRefPicListCombinationFlag()) … … 1171 1178 } 1172 1179 #endif 1180 1181 #if FCO_DVP_REFINE_C0132_C0170 1182 if(m_bFirstSliceInPicture) 1183 { 1184 pcPic->setDepthCoded(false); 1185 1186 if(m_viewId != 0) 1187 { 1188 if( m_isDepth == 0) 1189 { 1190 TComPic * recDepthMapBuffer; 1191 recDepthMapBuffer = m_tAppDecTop->getPicFromView( m_viewId, pcSlice->getPOC(), true ); 1192 pcPic->setRecDepthMap(recDepthMapBuffer); 1193 1194 if(recDepthMapBuffer != NULL) 1195 { 1196 pcPic->setDepthCoded(true); 1197 } 1198 } 1199 } 1200 } 1201 #endif 1202 1173 1203 1174 1204 #if MERL_VSP_C0152 // set BW LUT
Note: See TracChangeset for help on using the changeset viewer.