Changeset 625 in SHVCSoftware for branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
- Timestamp:
- 10 Mar 2014, 22:19:42 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
r620 r625 803 803 TComPic*& pcPic = m_pcPic; 804 804 #if SVC_EXTENSION 805 #if !NO_OUTPUT_OF_PRIOR_PICS 805 806 #if NO_CLRAS_OUTPUT_FLAG 806 807 Bool bFirstSliceInSeq; 808 #endif 807 809 #endif 808 810 m_apcSlicePilot->setVPS( m_parameterSetManagerDecoder.getPrefetchedVPS(0) ); … … 858 860 m_apcSlicePilot->setAssociatedIRAPType(m_associatedIRAPType); 859 861 862 #if NO_OUTPUT_OF_PRIOR_PICS 863 // Infer the value of NoOutputOfPriorPicsFlag 864 if( m_apcSlicePilot->getRapPicFlag() ) 865 { 866 if ( m_apcSlicePilot->getBlaPicFlag() || m_apcSlicePilot->getIdrPicFlag() || 867 (m_apcSlicePilot->getCraPicFlag() && m_bFirstSliceInSequence) || 868 (m_apcSlicePilot->getCraPicFlag() && m_apcSlicePilot->getHandleCraAsBlaFlag())) 869 { 870 m_apcSlicePilot->setNoRaslOutputFlag( true ); 871 } 872 else 873 { 874 m_apcSlicePilot->setNoRaslOutputFlag( false ); 875 } 876 } 877 #endif 878 860 879 // Skip pictures due to random access 861 880 if (isRandomAccessSkipPicture(iSkipFrame, iPOCLastDisplay)) … … 879 898 #if SVC_EXTENSION 880 899 bNewPOC = (m_apcSlicePilot->getPOC()!= m_prevPOC); 900 901 #if NO_OUTPUT_OF_PRIOR_PICS 902 #if NO_CLRAS_OUTPUT_FLAG 903 if (m_layerId == 0 && m_apcSlicePilot->getRapPicFlag() ) 904 { 905 if (m_bFirstSliceInSequence) 906 { 907 setNoClrasOutputFlag(true); 908 } 909 else if ( m_apcSlicePilot->getBlaPicFlag() ) 910 { 911 setNoClrasOutputFlag(true); 912 } 913 #if O0149_CROSS_LAYER_BLA_FLAG 914 else if (m_apcSlicePilot->getIdrPicFlag() && m_apcSlicePilot->getCrossLayerBLAFlag()) 915 { 916 setNoClrasOutputFlag(true); 917 } 918 #endif 919 else 920 { 921 setNoClrasOutputFlag(false); 922 } 923 } 924 else 925 { 926 setNoClrasOutputFlag(false); 927 } 928 929 m_apcSlicePilot->decodingRefreshMarking(m_pocCRA, m_bRefreshPending, m_cListPic, getNoClrasOutputFlag()); 930 #endif 931 932 // Derive the value of NoOutputOfPriorPicsFlag 933 if( bNewPOC || m_layerId!=m_uiPrevLayerId ) // i.e. new coded picture 934 { 935 if( m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA && m_apcSlicePilot->getNoRaslOutputFlag() ) 936 { 937 this->setNoOutputOfPriorPicsFlags( true ); 938 } 939 else if( m_apcSlicePilot->getRapPicFlag() && m_apcSlicePilot->getNoRaslOutputFlag() ) 940 { 941 this->setNoOutputOfPriorPicsFlags( m_apcSlicePilot->getNoOutputOfPriorPicsFlag() ); 942 } 943 else 944 { 945 if( this->m_ppcTDecTop[0]->getNoClrasOutputFlag() ) 946 { 947 this->setNoOutputOfPriorPicsFlags( true ); 948 } 949 } 950 } 951 #endif 952 881 953 #if ALIGNED_BUMPING 882 954 if (bNewPOC || m_layerId!=m_uiPrevLayerId) … … 938 1010 #endif 939 1011 } 1012 #if !NO_OUTPUT_OF_PRIOR_PICS 940 1013 #if NO_CLRAS_OUTPUT_FLAG 941 1014 bFirstSliceInSeq = m_bFirstSliceInSequence; 1015 #endif 942 1016 #endif 943 1017 m_bFirstSliceInSequence = false; … … 1102 1176 #endif 1103 1177 1178 #if !NO_OUTPUT_OF_PRIOR_PICS 1104 1179 #if NO_CLRAS_OUTPUT_FLAG 1105 1180 if (m_layerId == 0 && … … 1146 1221 m_apcSlicePilot->decodingRefreshMarking(m_pocCRA, m_bRefreshPending, m_cListPic, getNoClrasOutputFlag()); 1147 1222 #endif 1148 1223 #else 1224 if ( m_layerId == 0 && m_apcSlicePilot->getRapPicFlag() && getNoClrasOutputFlag() ) 1225 { 1226 for (UInt i = 0; i < m_apcSlicePilot->getVPS()->getMaxLayers(); i++) 1227 { 1228 m_ppcTDecTop[i]->setLayerInitializedFlag(false); 1229 m_ppcTDecTop[i]->setFirstPicInLayerDecodedFlag(false); 1230 } 1231 } 1232 #endif 1149 1233 // Buffer initialize for prediction. 1150 1234 m_cPrediction.initTempBuff();
Note: See TracChangeset for help on using the changeset viewer.