History

Merge pull request #1789 from huili2/bugfix_checkspsactive

bug fix for multi-layer active sps check

HaiboZhu committed 11 years ago

Commit 442230a2 parents fba745f 17341331 file · +20 −8Browse files

Showing the changes to codec/decoder/core/src/au_parser.cpp (1 of 1 file). Show all

Unified · Split

codec/decoder/core/src/au_parser.cpp+20−8
@@ -832,18 +832,30 @@ bool CheckSpsActive (PWelsDecoderContext pCtx, PSps pSps, bool bUseSubsetFlag) { · 831 unmodified lines
832832 if (bUseSubsetFlag) {
833833 if (pSps->iMbWidth > 0 && pSps->iMbHeight > 0 && pCtx->bSubspsAvailFlags[pSps->iSpsId]
834834 && pCtx->pAccessUnitList->uiAvailUnitsNum > 0) {
835− PSps pNextUsedSps =
836− pCtx->pAccessUnitList->pNalUnitsList[pCtx->pAccessUnitList->uiStartPos]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps;
837− if (pNextUsedSps->iSpsId == pSps->iSpsId)
838− return true;
835+ int i = 0, iNum = (int32_t) pCtx->pAccessUnitList->uiAvailUnitsNum;
836+ while (i < iNum) {
837+ PNalUnit pNalUnit = pCtx->pAccessUnitList->pNalUnitsList[i];
838+ if (pNalUnit->sNalData.sVclNal.bSliceHeaderExtFlag) { //ext data
839+ PSps pNextUsedSps = pNalUnit->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps;
840+ if (pNextUsedSps->iSpsId == pSps->iSpsId)
841+ return true;
842+ }
843+ ++i;
844+ }
839845 }
840846 } else {
841847 if (pSps->iMbWidth > 0 && pSps->iMbHeight > 0 && pCtx->bSpsAvailFlags[pSps->iSpsId]
842848 && pCtx->pAccessUnitList->uiAvailUnitsNum > 0) {
843− PSps pNextUsedSps =
844− pCtx->pAccessUnitList->pNalUnitsList[pCtx->pAccessUnitList->uiStartPos]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps;
845− if (pNextUsedSps->iSpsId == pSps->iSpsId)
846− return true;
849+ int i = 0, iNum = (int32_t) pCtx->pAccessUnitList->uiAvailUnitsNum;
850+ while (i < iNum) {
851+ PNalUnit pNalUnit = pCtx->pAccessUnitList->pNalUnitsList[i];
852+ if (!pNalUnit->sNalData.sVclNal.bSliceHeaderExtFlag) { //non-ext data
853+ PSps pNextUsedSps = pNalUnit->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps;
854+ if (pNextUsedSps->iSpsId == pSps->iSpsId)
855+ return true;
856+ }
857+ ++i;
858+ }
847859 }
848860 }
849861 return false;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t