Unified · Split
| @@ -405,18 +405,18 @@ bool CheckAccessUnitBoundary (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, · 404 unmodified lines | ||
| 405 | 405 | const PNalUnitHeaderExt kpCurNalHeaderExt = &kpCurNal->sNalHeaderExt; |
| 406 | 406 | const SSliceHeader* kpLastSliceHeader = &kpLastNal->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader; |
| 407 | 407 | const SSliceHeader* kpCurSliceHeader = &kpCurNal->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader; |
| 408 | − | |
| 408 | + if (pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != NULL | |
| 409 | + && pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != kpSps) { | |
| 410 | + pCtx->bNextNewSeqBegin = true; | |
| 411 | + return true; // the active sps changed, new sequence begins, so the current au is ready | |
| 412 | + } | |
| 413 | + | |
| 409 | 414 | //Sub-clause 7.1.4.1.1 temporal_id |
| 410 | 415 | if (kpLastNalHeaderExt->uiTemporalId != kpCurNalHeaderExt->uiTemporalId) { |
| 411 | 416 | return true; |
| 412 | 417 | } |
| 413 | 418 | if (kpLastSliceHeader->iFrameNum != kpCurSliceHeader->iFrameNum) |
| 414 | 419 | return true; |
| 415 | − if (pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != NULL | |
| 416 | − && pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != kpSps) { | |
| 417 | − pCtx->bNextNewSeqBegin = true; | |
| 418 | − return true; // the active sps changed, new sequence begins, so the current au is ready | |
| 419 | − } | |
| 420 | 420 | // Subclause 7.4.1.2.5 |
| 421 | 421 | if (kpLastSliceHeader->iRedundantPicCnt > kpCurSliceHeader->iRedundantPicCnt) |
| 422 | 422 | return true; |