Showing the changes to codec/decoder/core/src/au_parser.cpp (1 of 2 files). Show all
Unified · Split
| @@ -331,7 +331,7 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 330 unmodified lines | |||
| 331 | pCurAu->pNalUnitsList[uiAvailNalNum - 1]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps)) { | 331 | pCurAu->pNalUnitsList[uiAvailNalNum - 1]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps)) { |
| 332 | pCurAu->uiEndPos = uiAvailNalNum - 2; | 332 | pCurAu->uiEndPos = uiAvailNalNum - 2; |
| 333 | pCtx->bAuReadyFlag = true; | 333 | pCtx->bAuReadyFlag = true; |
| 334 | 334 | pCtx->bNextNewSeqBegin = CheckNextAuNewSeq (pCtx, pCurNal, pCurNal->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps); | |
| 335 | 335 | ||
| 336 | } | 336 | } |
| 337 | } | 337 | } |
| @@ -411,7 +411,6 @@ bool CheckAccessUnitBoundary (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, · 73 unmodified lines | |||
| 411 | const SSliceHeader* kpCurSliceHeader = &kpCurNal->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader; | 411 | const SSliceHeader* kpCurSliceHeader = &kpCurNal->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader; |
| 412 | if (pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != NULL | 412 | if (pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != NULL |
| 413 | && pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != kpSps) { | 413 | && pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != kpSps) { |
| 414 | pCtx->bNextNewSeqBegin = true; | ||
| 415 | return true; // the active sps changed, new sequence begins, so the current au is ready | 414 | return true; // the active sps changed, new sequence begins, so the current au is ready |
| 416 | } | 415 | } |
| 417 | 416 | ||
| @@ -460,6 +459,17 @@ bool CheckAccessUnitBoundary (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, · 42 unmodified lines | |||
| 460 | return false; | 459 | return false; |
| 461 | } | 460 | } |
| 462 | 461 | ||
| 462 | bool CheckNextAuNewSeq (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, const PSps kpSps) { | ||
| 463 | const PNalUnitHeaderExt kpCurNalHeaderExt = &kpCurNal->sNalHeaderExt; | ||
| 464 | if (pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != NULL | ||
| 465 | && pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != kpSps) | ||
| 466 | return true; | ||
| 467 | if (kpCurNalHeaderExt->bIdrFlag) | ||
| 468 | return true; | ||
| 469 | |||
| 470 | return false; | ||
| 471 | } | ||
| 472 | |||
| 463 | /*! | 473 | /*! |
| 464 | ************************************************************************************* | 474 | ************************************************************************************* |
| 465 | * \brief to parse NON VCL NAL Units | 475 | * \brief to parse NON VCL NAL Units |