Changeset 194 in 3DVCSoftware for branches/HTM-5.0-Qualcomm/source/App/TAppDecoder/TAppDecTop.cpp
- Timestamp:
- 26 Nov 2012, 18:35:20 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-5.0-Qualcomm/source/App/TAppDecoder/TAppDecTop.cpp
r189 r194 82 82 Void TAppDecTop::decode() 83 83 { 84 #if VIDYO_VPS_INTEGRATION 84 #if VIDYO_VPS_INTEGRATION|MVHEVC 85 85 increaseNumberOfViews( 0, 0, 0 ); 86 86 #else … … 145 145 { 146 146 read(nalu, nalUnit); 147 #if MVHEVC 148 viewDepthId = nalu.m_layerId; 149 Int depth = 0; 150 Int viewId = viewDepthId; 151 #else 147 152 #if VIDYO_VPS_INTEGRATION 148 153 Int viewId = 0; … … 162 167 viewDepthId = viewId * 2 + depth; // coding order T0D0T1D1T2D2 163 168 #endif 164 169 #endif 165 170 newPicture[viewDepthId] = false; 166 171 if( viewDepthId >= m_tDecTop.size() ) 167 172 { 168 #if VIDYO_VPS_INTEGRATION 173 #if VIDYO_VPS_INTEGRATION|MVHEVC 169 174 increaseNumberOfViews( viewDepthId, viewId, depth ); 170 175 #else … … 195 200 if( !(m_iMaxTemporalLayer >= 0 && nalu.m_temporalId > m_iMaxTemporalLayer) ) 196 201 { 202 #if MVHEVC 203 if(viewDepthId && m_tDecTop[viewDepthId]->m_bFirstNal== false) 204 { 205 m_tDecTop[viewDepthId]->m_bFirstNal = true; 206 ParameterSetManagerDecoder* pDecV0 = m_tDecTop[0]->xGetParaSetDec(); 207 m_tDecTop[viewDepthId]->xCopyVPS(pDecV0->getPrefetchedVPS(0)); 208 m_tDecTop[viewDepthId]->xCopySPS(pDecV0->getPrefetchedSPS(0)); 209 m_tDecTop[viewDepthId]->xCopyPPS(pDecV0->getPrefetchedPPS(0)); 210 } 211 #endif 197 212 newPicture[viewDepthId] = m_tDecTop[viewDepthId]->decode(nalu, m_iSkipFrame, m_pocLastDisplay[viewDepthId]); 198 213 if (newPicture[viewDepthId]) … … 218 233 if( pcListPic[viewDepthId] ) 219 234 { 235 #if QC_REM_IDV 236 Int iviewId = m_tDecTop[viewDepthId]->getViewId(); 237 if( newPicture[viewDepthId] && (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR || ((nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR && iviewId) && m_tDecTop[viewDepthId]->getNalUnitTypeBaseView() == NAL_UNIT_CODED_SLICE_IDR)) ) 238 #else 220 239 if( newPicture[viewDepthId] && (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR || (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDV && m_tDecTop[viewDepthId]->getNalUnitTypeBaseView() == NAL_UNIT_CODED_SLICE_IDR)) ) 240 #endif 221 241 { 222 242 xFlushOutput( pcListPic[viewDepthId], viewDepthId ); … … 275 295 m_tDecTop[viewDepthIdx]->destroy() ; 276 296 } 297 #if MVHEVC 298 if(viewDepthIdx) 299 { 300 //Call clear function to remove the record, which has been freed during viewDepthIdx = 0 case. 301 m_tDecTop[viewDepthIdx]->xGetParaSetDec()->clearSPS(); 302 m_tDecTop[viewDepthIdx]->xGetParaSetDec()->clearVPS(); 303 m_tDecTop[viewDepthIdx]->xGetParaSetDec()->clearPPS(); 304 } 305 #endif 277 306 delete m_tDecTop[viewDepthIdx] ; 278 307 m_tDecTop[viewDepthIdx] = NULL ; … … 416 445 m_pocLastDisplay[viewDepthId] = -MAX_INT; 417 446 } 418 #if VIDYO_VPS_INTEGRATION 447 #if VIDYO_VPS_INTEGRATION|MVHEVC 419 448 Void TAppDecTop::increaseNumberOfViews ( UInt layerId, UInt viewId, UInt isDepth ) 420 449 #else … … 422 451 #endif 423 452 { 424 #if VIDYO_VPS_INTEGRATION 453 #if VIDYO_VPS_INTEGRATION|MVHEVC 425 454 Int newNumberOfViewDepth = layerId + 1; 426 455 #endif … … 429 458 m_outputBitDepth = g_uiBitDepth + g_uiBitIncrement; 430 459 } 431 #if !VIDYO_VPS_INTEGRATION 460 #if !VIDYO_VPS_INTEGRATION&!MVHEVC 432 461 Int viewId = (newNumberOfViewDepth-1)>>1; // coding order T0D0T1D1T2D2 433 462 Bool isDepth = ((newNumberOfViewDepth % 2) == 0); // coding order T0D0T1D1T2D2 … … 442 471 m_tVideoIOYuvReconFile.push_back(new TVideoIOYuv); 443 472 Char buffer[4]; 444 #if VIDYO_VPS_INTEGRATION 473 #if VIDYO_VPS_INTEGRATION|MVHEVC 445 474 sprintf(buffer,"_%i", viewId ); 446 475 #else … … 448 477 #endif 449 478 Char* nextFilename = NULL; 450 #if VIDYO_VPS_INTEGRATION 479 #if VIDYO_VPS_INTEGRATION|MVHEVC 451 480 if( isDepth) 452 481 #else … … 463 492 xAppendToFileNameEnd( m_pchReconFile, buffer, nextFilename); 464 493 } 465 #if !VIDYO_VPS_INTEGRATION 494 #if !VIDYO_VPS_INTEGRATION&!MVHEVC 466 495 if( isDepth || ( !isDepth && (m_tVideoIOYuvReconFile.size() % 2) == 1 ) ) 467 496 #endif … … 480 509 { 481 510 m_tDecTop.push_back(new TDecTop); 482 #if !VIDYO_VPS_INTEGRATION 511 #if !VIDYO_VPS_INTEGRATION&!MVHEVC 483 512 if( isDepth || ( !isDepth && (m_tVideoIOYuvReconFile.size() % 2) == 1 ) ) 484 513 { … … 490 519 m_tDecTop.back()->setPictureDigestEnabled(m_pictureDigestEnabled); 491 520 m_tDecTop.back()->setCamParsCollector( &m_cCamParsCollector ); 492 #if !VIDYO_VPS_INTEGRATION 521 #if !VIDYO_VPS_INTEGRATION&!MVHEVC 493 522 } 494 523 #endif
Note: See TracChangeset for help on using the changeset viewer.