- Timestamp:
- 7 Jul 2015, 02:16:06 (9 years ago)
- Location:
- branches/SHM-dev/source/Lib
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp
r1117 r1123 2084 2084 Void TDecTop::xDecodeSEI( TComInputBitstream* bs, const NalUnitType nalUnitType ) 2085 2085 { 2086 if(nalUnitType == NAL_UNIT_SUFFIX_SEI) 2087 { 2086 2088 #if SVC_EXTENSION 2087 if(nalUnitType == NAL_UNIT_SUFFIX_SEI)2088 {2089 2089 if (m_prevSliceSkipped) // No need to decode SEI messages of a skipped access unit 2090 2090 { 2091 2091 return; 2092 2092 } 2093 #endif 2093 2094 #if LAYERS_NOT_PRESENT_SEI 2094 2095 m_seiReader.parseSEImessage( bs, m_pcPic->getSEIs(), nalUnitType, m_parameterSetManagerDecoder.getActiveVPS(), m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream ); 2095 2096 #else 2096 m_seiReader.parseSEImessage( bs, m_pcPic->getSEIs(), nalUnitType, m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream 2097 m_seiReader.parseSEImessage( bs, m_pcPic->getSEIs(), nalUnitType, m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream ); 2097 2098 #endif 2098 2099 } … … 2102 2103 m_seiReader.parseSEImessage( bs, m_SEIs, nalUnitType, m_parameterSetManagerDecoder.getActiveVPS(), m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream ); 2103 2104 #else 2104 m_seiReader.parseSEImessage( bs, m_SEIs, nalUnitType, m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream 2105 m_seiReader.parseSEImessage( bs, m_SEIs, nalUnitType, m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream ); 2105 2106 #endif 2106 2107 SEIMessages activeParamSets = getSeisByType(m_SEIs, SEI::ACTIVE_PARAMETER_SETS); … … 2108 2109 { 2109 2110 SEIActiveParameterSets *seiAps = (SEIActiveParameterSets*)(*activeParamSets.begin()); 2110 #if !R0247_SEI_ACTIVE 2111 m_parameterSetManagerDecoder.applyPrefetchedPS(); 2112 assert(seiAps->activeSeqParameterSetId.size()>0); 2113 if( !m_parameterSetManagerDecoder.activateSPSWithSEI( seiAps->activeSeqParameterSetId[0] ) ) 2114 { 2115 printf ("Warning SPS activation with Active parameter set SEI failed"); 2116 } 2117 #else 2111 #if R0247_SEI_ACTIVE 2118 2112 getLayerDec(0)->m_parameterSetManagerDecoder.applyPrefetchedPS(); 2119 2113 assert(seiAps->activeSeqParameterSetId.size()>0); … … 2131 2125 } 2132 2126 } 2133 #endif 2134 } 2135 } 2136 #else 2137 if(nalUnitType == NAL_UNIT_SUFFIX_SEI) 2138 { 2139 #if LAYERS_NOT_PRESENT_SEI 2140 m_seiReader.parseSEImessage( bs, m_pcPic->getSEIs(), nalUnitType, m_parameterSetManagerDecoder.getActiveVPS(), m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream ); 2141 #else 2142 m_seiReader.parseSEImessage( bs, m_pcPic->getSEIs(), nalUnitType, m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream ); 2143 2144 #endif 2145 } 2146 else 2147 { 2148 #if LAYERS_NOT_PRESENT_SEI 2149 m_seiReader.parseSEImessage( bs, m_SEIs, nalUnitType, m_parameterSetManagerDecoder.getActiveVPS(), m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream ); 2150 #else 2151 m_seiReader.parseSEImessage( bs, m_SEIs, nalUnitType, m_parameterSetManagerDecoder.getActiveSPS(), m_pDecodedSEIOutputStream ); 2152 #endif 2153 SEIMessages activeParamSets = getSeisByType(m_SEIs, SEI::ACTIVE_PARAMETER_SETS); 2154 if (activeParamSets.size()>0) 2155 { 2156 SEIActiveParameterSets *seiAps = (SEIActiveParameterSets*)(*activeParamSets.begin()); 2127 #else 2157 2128 m_parameterSetManagerDecoder.applyPrefetchedPS(); 2158 2129 assert(seiAps->activeSeqParameterSetId.size()>0); … … 2161 2132 printf ("Warning SPS activation with Active parameter set SEI failed"); 2162 2133 } 2163 } 2164 }2165 #endif 2134 #endif 2135 } 2136 } 2166 2137 } 2167 2138 -
branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r1116 r1123 227 227 seiActiveParameterSets->activeVPSId = m_pcCfg->getVPS()->getVPSId(); 228 228 seiActiveParameterSets->m_selfContainedCvsFlag = false; 229 seiActiveParameterSets->m_noParameterSetUpdateFlag = false; 230 #if !R0247_SEI_ACTIVE 231 seiActiveParameterSets->numSpsIdsMinus1 = 0; 232 seiActiveParameterSets->activeSeqParameterSetId.resize(seiActiveParameterSets->numSpsIdsMinus1 + 1); 233 seiActiveParameterSets->activeSeqParameterSetId[0] = sps->getSPSId(); 234 #else 229 seiActiveParameterSets->m_noParameterSetUpdateFlag = false; 230 #if R0247_SEI_ACTIVE 235 231 seiActiveParameterSets->numSpsIdsMinus1 = m_pcCfg->getNumLayer()-1; 236 232 seiActiveParameterSets->activeSeqParameterSetId.resize(seiActiveParameterSets->numSpsIdsMinus1 + 1); … … 244 240 seiActiveParameterSets->layerSpsIdx[c] = c; 245 241 } 242 #else 243 seiActiveParameterSets->numSpsIdsMinus1 = 0; 244 seiActiveParameterSets->activeSeqParameterSetId.resize(seiActiveParameterSets->numSpsIdsMinus1 + 1); 245 seiActiveParameterSets->activeSeqParameterSetId[0] = sps->getSPSId(); 246 246 #endif 247 247 return seiActiveParameterSets;
Note: See TracChangeset for help on using the changeset viewer.