MCPcopy Create free account
hub / github.com/cisco/openh264 / CheckOnlyOneLayerInAu

Function CheckOnlyOneLayerInAu

codec/decoder/core/src/decoder_core.cpp:2102–2132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2100}
2101
2102void CheckOnlyOneLayerInAu (PWelsDecoderContext pCtx) {
2103 PAccessUnit pCurAu = pCtx->pAccessUnitList;
2104
2105 int32_t iEndIdx = pCurAu->uiEndPos;
2106 int32_t iCurIdx = pCurAu->uiStartPos;
2107 uint8_t uiDId = pCurAu->pNalUnitsList[iCurIdx]->sNalHeaderExt.uiDependencyId;
2108 uint8_t uiQId = pCurAu->pNalUnitsList[iCurIdx]->sNalHeaderExt.uiQualityId;
2109 uint8_t uiTId = pCurAu->pNalUnitsList[iCurIdx]->sNalHeaderExt.uiTemporalId;
2110
2111 uint8_t uiCurDId, uiCurQId, uiCurTId;
2112
2113 pCtx->bOnlyOneLayerInCurAuFlag = true;
2114
2115 if (iEndIdx == iCurIdx) { //only one NAL in pNalUnitsList
2116 return;
2117 }
2118
2119 ++iCurIdx;
2120 while (iCurIdx <= iEndIdx) {
2121 uiCurDId = pCurAu->pNalUnitsList[iCurIdx]->sNalHeaderExt.uiDependencyId;
2122 uiCurQId = pCurAu->pNalUnitsList[iCurIdx]->sNalHeaderExt.uiQualityId;
2123 uiCurTId = pCurAu->pNalUnitsList[iCurIdx]->sNalHeaderExt.uiTemporalId;
2124
2125 if (uiDId != uiCurDId || uiQId != uiCurQId || uiTId != uiCurTId) {
2126 pCtx->bOnlyOneLayerInCurAuFlag = false;
2127 return;
2128 }
2129
2130 ++iCurIdx;
2131 }
2132}
2133
2134int32_t WelsDecodeAccessUnitStart (PWelsDecoderContext pCtx) {
2135 // Roll back NAL units not being belong to current access unit list for proceeded access unit

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected