History

bug fix for multi-layer active sps check

huili2 committed 11 years ago

Commit 17341331 parent 4f4adce1 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
832 if (bUseSubsetFlag) {832 if (bUseSubsetFlag) {
833 if (pSps->iMbWidth > 0 && pSps->iMbHeight > 0 && pCtx->bSubspsAvailFlags[pSps->iSpsId]833 if (pSps->iMbWidth > 0 && pSps->iMbHeight > 0 && pCtx->bSubspsAvailFlags[pSps->iSpsId]
834 && pCtx->pAccessUnitList->uiAvailUnitsNum > 0) {834 && pCtx->pAccessUnitList->uiAvailUnitsNum > 0) {
835 PSps pNextUsedSps =835 int i = 0, iNum = (int32_t) pCtx->pAccessUnitList->uiAvailUnitsNum;
836 pCtx->pAccessUnitList->pNalUnitsList[pCtx->pAccessUnitList->uiStartPos]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps;836 while (i < iNum) {
837 if (pNextUsedSps->iSpsId == pSps->iSpsId)837 PNalUnit pNalUnit = pCtx->pAccessUnitList->pNalUnitsList[i];
838 return true;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 }
839 }845 }
840 } else {846 } else {
841 if (pSps->iMbWidth > 0 && pSps->iMbHeight > 0 && pCtx->bSpsAvailFlags[pSps->iSpsId]847 if (pSps->iMbWidth > 0 && pSps->iMbHeight > 0 && pCtx->bSpsAvailFlags[pSps->iSpsId]
842 && pCtx->pAccessUnitList->uiAvailUnitsNum > 0) {848 && pCtx->pAccessUnitList->uiAvailUnitsNum > 0) {
843 PSps pNextUsedSps =849 int i = 0, iNum = (int32_t) pCtx->pAccessUnitList->uiAvailUnitsNum;
844 pCtx->pAccessUnitList->pNalUnitsList[pCtx->pAccessUnitList->uiStartPos]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps;850 while (i < iNum) {
845 if (pNextUsedSps->iSpsId == pSps->iSpsId)851 PNalUnit pNalUnit = pCtx->pAccessUnitList->pNalUnitsList[i];
846 return true;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 }
847 }859 }
848 }860 }
849 return false;861 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