Changeset 759 in SHVCSoftware for branches/SHM-6-dev/source/Lib/TLibDecoder
- Timestamp:
- 30 Apr 2014, 00:14:22 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-6-dev/source/Lib/TLibDecoder/TDecTop.cpp
r758 r759 1090 1090 return true; 1091 1091 } 1092 #else 1093 //we should only get a different poc for a new picture (with CTU address==0) 1094 if (m_apcSlicePilot->isNextSlice() && m_apcSlicePilot->getPOC()!=m_prevPOC && !m_bFirstSliceInSequence && (m_apcSlicePilot->getSliceCurStartCUAddr()!=0)) 1095 { 1096 printf ("Warning, the first slice of a picture might have been lost!\n"); 1097 } 1098 // exit when a new picture is found 1099 if (m_apcSlicePilot->isNextSlice() && (m_apcSlicePilot->getSliceCurStartCUAddr() == 0 && !m_bFirstSliceInPicture) && !m_bFirstSliceInSequence ) 1100 { 1101 if (m_prevPOC >= m_pocRandomAccess) 1102 { 1103 m_prevPOC = m_apcSlicePilot->getPOC(); 1104 return true; 1105 } 1106 m_prevPOC = m_apcSlicePilot->getPOC(); 1107 } 1108 #endif 1092 1109 1093 // actual decoding starts here 1110 1094 xActivateParameterSets(); 1111 #if !O0223_O0139_IRAP_ALIGN_NO_CONTRAINTS 1112 //Note setting O0223_O0139_IRAP_ALIGN_NO_CONTRAINTS to 0 may cause decoder to crash. 1113 //When cross_layer_irap_aligned_flag is equal to 0, num_extra_slice_header_bits >=1 1114 if(!m_apcSlicePilot->getVPS()->getCrossLayerIrapAlignFlag() ) 1115 { 1116 assert( m_apcSlicePilot->getPPS()->getNumExtraSliceHeaderBits() > 0); 1117 } 1118 //When cross_layer_irap_aligned_flag is equal to 1, the value of poc_reset_flag shall be equal to 0 1119 if( m_apcSlicePilot->getVPS()->getCrossLayerIrapAlignFlag() ) 1120 { 1121 assert( m_apcSlicePilot->getPocResetFlag() == 0); 1122 } 1123 #endif 1095 1124 1096 #if REPN_FORMAT_IN_VPS 1125 1097 // Initialize ILRP if needed, only for the current layer … … 1131 1103 { 1132 1104 m_prevPOC = m_apcSlicePilot->getPOC(); 1133 #if SVC_EXTENSION1134 1105 curLayerId = m_layerId; 1135 1106 m_uiPrevLayerId = m_layerId; 1136 #endif1137 1107 } 1138 1108 m_bFirstSliceInSequence = false; … … 1241 1211 } 1242 1212 #endif 1213 #else //SVC_EXTENSION 1214 //we should only get a different poc for a new picture (with CTU address==0) 1215 if (m_apcSlicePilot->isNextSlice() && m_apcSlicePilot->getPOC()!=m_prevPOC && !m_bFirstSliceInSequence && (m_apcSlicePilot->getSliceCurStartCUAddr()!=0)) 1216 { 1217 printf ("Warning, the first slice of a picture might have been lost!\n"); 1218 } 1219 // exit when a new picture is found 1220 if (m_apcSlicePilot->isNextSlice() && (m_apcSlicePilot->getSliceCurStartCUAddr() == 0 && !m_bFirstSliceInPicture) && !m_bFirstSliceInSequence ) 1221 { 1222 if (m_prevPOC >= m_pocRandomAccess) 1223 { 1224 m_prevPOC = m_apcSlicePilot->getPOC(); 1225 return true; 1226 } 1227 m_prevPOC = m_apcSlicePilot->getPOC(); 1228 } 1229 1230 // actual decoding starts here 1231 xActivateParameterSets(); 1232 1233 if (m_apcSlicePilot->isNextSlice()) 1234 { 1235 m_prevPOC = m_apcSlicePilot->getPOC(); 1236 } 1237 m_bFirstSliceInSequence = false; 1238 #endif //SVC_EXTENSION 1243 1239 //detect lost reference picture and insert copy of earlier frame. 1244 1240 Int lostPoc;
Note: See TracChangeset for help on using the changeset viewer.