- Timestamp:
- 7 May 2013, 02:36:22 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-2.0-dev/source/Lib/TLibDecoder/TDecTop.cpp
r154 r155 581 581 { 582 582 #if AVC_BASE 583 if( m_layerId == 1 && m_parameterSetManagerDecoder[0].getPrefetchedVPS(0)->getAvcBaseLayerFlag() )584 {585 TComPic* pBLPic = (*m_ppcTDecTop[0]->getListPic()->begin());586 fstream* pFile = m_ppcTDecTop[0]->getBLReconFile();583 if( m_layerId == 1 && m_parameterSetManagerDecoder[0].getPrefetchedVPS(0)->getAvcBaseLayerFlag() ) 584 { 585 TComPic* pBLPic = (*m_ppcTDecTop[0]->getListPic()->begin()); 586 fstream* pFile = m_ppcTDecTop[0]->getBLReconFile(); 587 587 #if ILP_DECODED_PICTURE 588 UInt uiWidth = pBLPic->getPicYuvRec()->getWidth(); 589 UInt uiHeight = pBLPic->getPicYuvRec()->getHeight(); 590 #else 591 const Window &conf = pBLPic->getConformanceWindow(); 592 #if ILP_DECODED_PICTURE 593 UInt uiWidth = pBLPic->getPicYuvRec()->getWidth(); 594 UInt uiHeight = pBLPic->getPicYuvRec()->getHeight(); 595 #else 596 UInt uiWidth = pBLPic->getPicYuvRec()->getWidth() - conf.getWindowLeftOffset() - conf.getWindowRightOffset(); 597 UInt uiHeight = pBLPic->getPicYuvRec()->getHeight() - conf.getWindowTopOffset() - conf.getWindowBottomOffset(); 598 #endif 599 600 if( pFile->good() ) 601 { 602 UInt64 uiPos = (UInt64) m_apcSlicePilot->getPOC() * uiWidth * uiHeight * 3 / 2; 603 604 pFile->seekg((UInt)uiPos, ios::beg ); 605 606 Pel* pPel = pBLPic->getPicYuvRec()->getLumaAddr(); 607 UInt uiStride = pBLPic->getPicYuvRec()->getStride(); 608 for( Int i = 0; i < uiHeight; i++ ) 609 { 610 for( Int j = 0; j < uiWidth; j++ ) 588 UInt uiWidth = pBLPic->getPicYuvRec()->getWidth(); 589 UInt uiHeight = pBLPic->getPicYuvRec()->getHeight(); 590 #else 591 const Window &conf = pBLPic->getConformanceWindow(); 592 UInt uiWidth = pBLPic->getPicYuvRec()->getWidth() - conf.getWindowLeftOffset() - conf.getWindowRightOffset(); 593 UInt uiHeight = pBLPic->getPicYuvRec()->getHeight() - conf.getWindowTopOffset() - conf.getWindowBottomOffset(); 594 #endif 595 596 if( pFile->good() ) 597 { 598 UInt64 uiPos = (UInt64) m_apcSlicePilot->getPOC() * uiWidth * uiHeight * 3 / 2; 599 600 pFile->seekg((UInt)uiPos, ios::beg ); 601 602 Pel* pPel = pBLPic->getPicYuvRec()->getLumaAddr(); 603 UInt uiStride = pBLPic->getPicYuvRec()->getStride(); 604 for( Int i = 0; i < uiHeight; i++ ) 611 605 { 612 pPel[j] = pFile->get(); 606 for( Int j = 0; j < uiWidth; j++ ) 607 { 608 pPel[j] = pFile->get(); 609 } 610 pPel += uiStride; 613 611 } 614 pPel += uiStride; 615 } 616 617 pPel = pBLPic->getPicYuvRec()->getCbAddr(); 618 uiStride = pBLPic->getPicYuvRec()->getCStride(); 619 for( Int i = 0; i < uiHeight/2; i++ ) 620 { 621 for( Int j = 0; j < uiWidth/2; j++ ) 612 613 pPel = pBLPic->getPicYuvRec()->getCbAddr(); 614 uiStride = pBLPic->getPicYuvRec()->getCStride(); 615 for( Int i = 0; i < uiHeight/2; i++ ) 622 616 { 623 pPel[j] = pFile->get(); 617 for( Int j = 0; j < uiWidth/2; j++ ) 618 { 619 pPel[j] = pFile->get(); 620 } 621 pPel += uiStride; 624 622 } 625 pPel += uiStride; 626 } 627 628 pPel = pBLPic->getPicYuvRec()->getCrAddr(); 629 uiStride = pBLPic->getPicYuvRec()->getCStride(); 630 for( Int i = 0; i < uiHeight/2; i++ ) 631 { 632 for( Int j = 0; j < uiWidth/2; j++ ) 623 624 pPel = pBLPic->getPicYuvRec()->getCrAddr(); 625 uiStride = pBLPic->getPicYuvRec()->getCStride(); 626 for( Int i = 0; i < uiHeight/2; i++ ) 633 627 { 634 pPel[j] = pFile->get(); 628 for( Int j = 0; j < uiWidth/2; j++ ) 629 { 630 pPel[j] = pFile->get(); 631 } 632 pPel += uiStride; 635 633 } 636 pPel += uiStride; 637 } 638 } 639 } 634 } 635 } 640 636 #endif 641 637
Note: See TracChangeset for help on using the changeset viewer.