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

Function UpdateAccessUnit

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

Source from the content-addressed store, hash-verified

1440
1441
1442int32_t UpdateAccessUnit (PWelsDecoderContext pCtx) {
1443 PAccessUnit pCurAu = pCtx->pAccessUnitList;
1444 int32_t iIdx = pCurAu->uiEndPos;
1445
1446 // Conversed iterator
1447 pCtx->uiTargetDqId = pCurAu->pNalUnitsList[iIdx]->sNalHeaderExt.uiLayerDqId;
1448 pCurAu->uiActualUnitsNum = iIdx + 1;
1449 pCurAu->bCompletedAuFlag = true;
1450
1451 // Added for mosaic avoidance, 11/19/2009
1452#ifdef LONG_TERM_REF
1453 if (pCtx->bParamSetsLostFlag || pCtx->bNewSeqBegin)
1454#else
1455 if (pCtx->bReferenceLostAtT0Flag || pCtx->bNewSeqBegin)
1456#endif
1457 {
1458 uint32_t uiActualIdx = 0;
1459 while (uiActualIdx < pCurAu->uiActualUnitsNum) {
1460 PNalUnit nal = pCurAu->pNalUnitsList[uiActualIdx];
1461
1462 if (nal->sNalHeaderExt.sNalUnitHeader.eNalUnitType == NAL_UNIT_CODED_SLICE_IDR || nal->sNalHeaderExt.bIdrFlag) {
1463 break;
1464 }
1465 ++ uiActualIdx;
1466 }
1467 if (uiActualIdx ==
1468 pCurAu->uiActualUnitsNum) { // no found IDR nal within incoming AU, need exit to avoid mosaic issue, 11/19/2009
1469
1470 pCtx->pDecoderStatistics->uiIDRLostNum++;
1471 if (!pCtx->bParamSetsLostFlag)
1472 WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING,
1473 "UpdateAccessUnit():::::Key frame lost.....CAN NOT find IDR from current AU.");
1474 pCtx->iErrorCode |= dsRefLost;
1475 if (pCtx->pParam->eEcActiveIdc == ERROR_CON_DISABLE) {
1476#ifdef LONG_TERM_REF
1477 pCtx->iErrorCode |= dsNoParamSets;
1478 return dsNoParamSets;
1479#else
1480 pCtx->iErrorCode |= dsRefLost;
1481 return ERR_INFO_REFERENCE_PIC_LOST;
1482#endif
1483 }
1484 }
1485 }
1486
1487 return ERR_NONE;
1488}
1489
1490int32_t InitialDqLayersContext (PWelsDecoderContext pCtx, const int32_t kiMaxWidth, const int32_t kiMaxHeight) {
1491 int32_t i = 0;

Callers 1

Calls 1

WelsLogFunction · 0.85

Tested by

no test coverage detected