Showing the changes to codec/decoder/core/src/au_parser.cpp (1 of 1 file). Show all
Unified · Split
| @@ -322,6 +322,10 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 321 unmodified lines | |||
| 322 | return NULL; | 322 | return NULL; |
| 323 | } | 323 | } |
| 324 | 324 | ||
| 325 | if ((uiAvailNalNum == 1) && ((NAL_UNIT_CODED_SLICE_IDR == pNalUnitHeader->eNalUnitType) | ||
| 326 | || (pCurNal->sNalHeaderExt.bIdrFlag))) { | ||
| 327 | ResetActiveSPSForEachLayer (pCtx); | ||
| 328 | } | ||
| 325 | if ((uiAvailNalNum > 1) && | 329 | if ((uiAvailNalNum > 1) && |
| 326 | CheckAccessUnitBoundary (pCtx, pCurAu->pNalUnitsList[uiAvailNalNum - 1], pCurAu->pNalUnitsList[uiAvailNalNum - 2], | 330 | CheckAccessUnitBoundary (pCtx, pCurAu->pNalUnitsList[uiAvailNalNum - 1], pCurAu->pNalUnitsList[uiAvailNalNum - 2], |
| 327 | pCurAu->pNalUnitsList[uiAvailNalNum - 1]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps)) { | 331 | pCurAu->pNalUnitsList[uiAvailNalNum - 1]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps)) { |
| @@ -410,7 +414,7 @@ bool CheckAccessUnitBoundary (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, · 82 unmodified lines | |||
| 410 | pCtx->bNextNewSeqBegin = true; | 414 | pCtx->bNextNewSeqBegin = true; |
| 411 | return true; // the active sps changed, new sequence begins, so the current au is ready | 415 | return true; // the active sps changed, new sequence begins, so the current au is ready |
| 412 | } | 416 | } |
| 413 | 417 | ||
| 414 | //Sub-clause 7.1.4.1.1 temporal_id | 418 | //Sub-clause 7.1.4.1.1 temporal_id |
| 415 | if (kpLastNalHeaderExt->uiTemporalId != kpCurNalHeaderExt->uiTemporalId) { | 419 | if (kpLastNalHeaderExt->uiTemporalId != kpCurNalHeaderExt->uiTemporalId) { |
| 416 | return true; | 420 | return true; |