| 2100 | } |
| 2101 | |
| 2102 | void 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 | |
| 2134 | int32_t WelsDecodeAccessUnitStart (PWelsDecoderContext pCtx) { |
| 2135 | // Roll back NAL units not being belong to current access unit list for proceeded access unit |
no outgoing calls
no test coverage detected