ref: cc7535ee52157520770edabda7534dccebda3757
parent: 41ddc536d6e82c4b86f521d5ed864f986198fe28
parent: eb1276013b8c83e38e1da8d044e45dc03275db44
author: dongzha <[email protected]>
date: Tue May 13 11:25:42 EDT 2014
Merge pull request #826 from huili2/clear_active_ps clear active PS when only IDR meets
--- a/codec/decoder/core/src/au_parser.cpp
+++ b/codec/decoder/core/src/au_parser.cpp
@@ -322,6 +322,10 @@
return NULL;
}
+ if ((uiAvailNalNum == 1) && ((NAL_UNIT_CODED_SLICE_IDR == pNalUnitHeader->eNalUnitType)
+ || (pCurNal->sNalHeaderExt.bIdrFlag))) {
+ ResetActiveSPSForEachLayer (pCtx);
+ }
if ((uiAvailNalNum > 1) &&
CheckAccessUnitBoundary (pCtx, pCurAu->pNalUnitsList[uiAvailNalNum - 1], pCurAu->pNalUnitsList[uiAvailNalNum - 2],
pCurAu->pNalUnitsList[uiAvailNalNum - 1]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps)) {
@@ -410,7 +414,7 @@
pCtx->bNextNewSeqBegin = true;
return true; // the active sps changed, new sequence begins, so the current au is ready
}
-
+
//Sub-clause 7.1.4.1.1 temporal_id
if (kpLastNalHeaderExt->uiTemporalId != kpCurNalHeaderExt->uiTemporalId) {
return true;