Changeset 651 in 3DVCSoftware for branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder
- Timestamp:
- 21 Oct 2013, 17:52:23 (11 years ago)
- Location:
- branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/SEIread.cpp
r608 r651 315 315 316 316 /* restore primary bitstream for sei_message */ 317 getBitstream()->deleteFifo(); 317 318 delete getBitstream(); 318 319 setBitstream(bs); -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/SyntaxElementParser.cpp
r622 r651 58 58 if (length < 10) 59 59 { 60 fprintf( g_hTrace, "%-50s u(%d) : % d\n", pSymbolName, length, rValue );60 fprintf( g_hTrace, "%-50s u(%d) : %u\n", pSymbolName, length, rValue ); 61 61 } 62 62 else 63 63 { 64 fprintf( g_hTrace, "%-50s u(%d) : % d\n", pSymbolName, length, rValue );64 fprintf( g_hTrace, "%-50s u(%d) : %u\n", pSymbolName, length, rValue ); 65 65 } 66 66 fflush ( g_hTrace ); … … 77 77 #endif 78 78 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 79 fprintf( g_hTrace, "%-50s ue(v) : % d\n", pSymbolName, rValue );79 fprintf( g_hTrace, "%-50s ue(v) : %u\n", pSymbolName, rValue ); 80 80 fflush ( g_hTrace ); 81 81 } -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecCAVLC.cpp
r649 r651 1441 1441 READ_CODE(sps->getBitsForPOC(), uiCode, "pic_order_cnt_lsb"); 1442 1442 Int iPOClsb = uiCode; 1443 Int iPrevPOC = rpcSlice->getPrev POC();1443 Int iPrevPOC = rpcSlice->getPrevTid0POC(); 1444 1444 Int iMaxPOClsb = 1<< sps->getBitsForPOC(); 1445 Int iPrevPOClsb = iPrevPOC %iMaxPOClsb;1445 Int iPrevPOClsb = iPrevPOC & (iMaxPOClsb - 1); 1446 1446 Int iPrevPOCmsb = iPrevPOC-iPrevPOClsb; 1447 1447 Int iPOCmsb; … … 1572 1572 rps->setDeltaPOC(j, - rpcSlice->getPOC() + pocLsbLt); 1573 1573 rps->setCheckLTMSBPresent(j,false); 1574 1575 // reset deltaPocMSBCycleLT for first LTRP from slice header if MSB not present 1576 if( j == offset+(numOfLtrp-numLtrpInSPS)-1 ) 1577 { 1578 deltaPocMSBCycleLT = 0; 1579 } 1574 1580 } 1575 1581 prevDeltaMSB = deltaPocMSBCycleLT; -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecSlice.h
r608 r651 65 65 TDecEntropy* m_pcEntropyDecoder; 66 66 TDecCu* m_pcCuDecoder; 67 UInt m_uiCurrSliceIdx;68 67 69 68 TDecSbac* m_pcBufferSbacDecoders; ///< line to store temporary contexts, one per column of tiles. -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecTop.cpp
r648 r651 347 347 #endif 348 348 #endif 349 m_associatedIRAPType = NAL_UNIT_INVALID; 349 350 m_pocCRA = 0; 350 m_prevRAPisBLA = false;351 351 m_pocRandomAccess = MAX_INT; 352 352 m_prevPOC = MAX_INT; 353 353 m_bFirstSliceInPicture = true; 354 354 m_bFirstSliceInSequence = true; 355 m_prevSliceSkipped = false; 356 m_skippedPOC = 0; 355 357 #if H_MV 356 358 m_layerId = 0; … … 686 688 m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder); 687 689 690 // set POC for dependent slices in skipped pictures 691 if(m_apcSlicePilot->getDependentSliceSegmentFlag() && m_prevSliceSkipped) 692 { 693 m_apcSlicePilot->setPOC(m_skippedPOC); 694 } 695 696 m_apcSlicePilot->setAssociatedIRAPPOC(m_pocCRA); 697 m_apcSlicePilot->setAssociatedIRAPType(m_associatedIRAPType); 698 688 699 #if H_MV 689 700 TComVPS* vps = m_apcSlicePilot->getVPS(); … … 699 710 if (isRandomAccessSkipPicture(iSkipFrame, iPOCLastDisplay)) 700 711 { 712 m_prevSliceSkipped = true; 713 m_skippedPOC = m_apcSlicePilot->getPOC(); 701 714 return false; 702 715 } … … 704 717 if (isSkipPictureForBLA(iPOCLastDisplay)) 705 718 { 719 m_prevSliceSkipped = true; 720 m_skippedPOC = m_apcSlicePilot->getPOC(); 706 721 return false; 707 722 } 723 724 // clear previous slice skipped flag 725 m_prevSliceSkipped = false; 708 726 709 727 //we should only get a different poc for a new picture (with CTU address==0) … … 766 784 xGetNewPicBuffer (m_apcSlicePilot, pcPic); 767 785 786 Bool isField = false; 787 Bool isTff = false; 788 789 if(!m_SEIs.empty()) 790 { 791 // Check if any new Picture Timing SEI has arrived 792 SEIMessages pictureTimingSEIs = extractSeisByType (m_SEIs, SEI::PICTURE_TIMING); 793 if (pictureTimingSEIs.size()>0) 794 { 795 SEIPictureTiming* pictureTiming = (SEIPictureTiming*) *(pictureTimingSEIs.begin()); 796 isField = (pictureTiming->m_picStruct == 1) || (pictureTiming->m_picStruct == 2); 797 isTff = (pictureTiming->m_picStruct == 1); 798 } 799 } 800 801 //Set Field/Frame coding mode 802 m_pcPic->setField(isField); 803 m_pcPic->setTopField(isTff); 804 768 805 // transfer any SEI messages that have been received to the picture 769 806 pcPic->setSEIs(m_SEIs); … … 904 941 if (bNextSlice) 905 942 { 906 pcSlice->checkCRA(pcSlice->getRPS(), m_pocCRA, m_ prevRAPisBLA, m_cListPic );943 pcSlice->checkCRA(pcSlice->getRPS(), m_pocCRA, m_associatedIRAPType, m_cListPic ); 907 944 // Set reference list 908 945 #if H_MV … … 1003 1040 pcSlice->setScalingList ( pcSlice->getPPS()->getScalingList() ); 1004 1041 } 1005 pcSlice->getScalingList()->setUseTransformSkip(pcSlice->getPPS()->getUseTransformSkip());1006 1042 if(!pcSlice->getPPS()->getScalingListPresentFlag() && !pcSlice->getSPS()->getScalingListPresentFlag()) 1007 1043 { … … 1168 1204 Bool TDecTop::isSkipPictureForBLA(Int& iPOCLastDisplay) 1169 1205 { 1170 if (m_prevRAPisBLA && m_apcSlicePilot->getPOC() < m_pocCRA && (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_R || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_N)) 1206 if ((m_associatedIRAPType == NAL_UNIT_CODED_SLICE_BLA_N_LP || m_associatedIRAPType == NAL_UNIT_CODED_SLICE_BLA_W_LP || m_associatedIRAPType == NAL_UNIT_CODED_SLICE_BLA_W_RADL) && 1207 m_apcSlicePilot->getPOC() < m_pocCRA && (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_R || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_N)) 1171 1208 { 1172 1209 iPOCLastDisplay++; -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecTop.h
r648 r651 176 176 Int m_iMaxRefPicNum; 177 177 178 NalUnitType m_associatedIRAPType; ///< NAL unit type of the associated IRAP picture 178 179 Int m_pocCRA; ///< POC number of the latest CRA picture 179 Bool m_prevRAPisBLA; ///< true if the previous RAP (CRA/CRANT/BLA/BLANT/IDR) picture is a BLA/BLANT picture180 180 Int m_pocRandomAccess; ///< POC number of the random access point (the first IDR or CRA picture) 181 181 … … 211 211 Bool m_bFirstSliceInPicture; 212 212 Bool m_bFirstSliceInSequence; 213 Bool m_prevSliceSkipped; 214 Int m_skippedPOC; 215 213 216 #if H_MV 214 217 // For H_MV m_bFirstSliceInSequence indicates first slice in sequence of the particular layer
Note: See TracChangeset for help on using the changeset viewer.