History

Fix the pps update logic error

Haibo Zhu committed 11 years ago

Commit bc8dfcd1 parent 11e0fc81 file · +4 −9Browse files

Showing the changes to codec/decoder (1 of 1 file). Show all

Unified · Split

codec/decoder/core/src/au_parser.cpp+4−9
@@ -1395,18 +1395,13 @@ int32_t ParsePps (PWelsDecoderContext pCtx, PPps pPpsList, PBitStringAux pBsAux, · 1394 unmodified lines
1395 ERR_INFO_INVALID_CHROMA_QP_INDEX_OFFSET));1395 ERR_INFO_INVALID_CHROMA_QP_INDEX_OFFSET));
1396 }1396 }
1397 1397
1398 if (pCtx->pAccessUnitList->uiAvailUnitsNum > 0) {1398 if (pCtx->pPps != NULL && pCtx->pPps->iPpsId == pPps->iPpsId) {
1399 PNalUnit pLastNalUnit = pCtx->pAccessUnitList->pNalUnitsList[pCtx->pAccessUnitList->uiAvailUnitsNum - 1];1399 if (memcmp (pCtx->pPps, pPps, sizeof (*pPps)) != 0) {
1400 PPps pLastPps = pLastNalUnit->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pPps;
1401 // the active pps is overwrite, write to a temp place
1402 if (pLastPps == &pCtx->sPpsBuffer[uiPpsId] && memcmp (&pCtx->sPpsBuffer[uiPpsId], pPps, sizeof (*pPps)) != 0) {
1403 memcpy (&pCtx->sPpsBuffer[MAX_PPS_COUNT], pPps, sizeof (SPps));1400 memcpy (&pCtx->sPpsBuffer[MAX_PPS_COUNT], pPps, sizeof (SPps));
1404 pCtx->iOverwriteFlags |= OVERWRITE_PPS;1401 pCtx->iOverwriteFlags |= OVERWRITE_PPS;
1405 pCtx->bAuReadyFlag = true;1402 pCtx->bAuReadyFlag = true;
1406 pCtx->pAccessUnitList->uiEndPos = pCtx->pAccessUnitList->uiAvailUnitsNum - 1;1403 pCtx->pAccessUnitList->uiEndPos = (pCtx->pAccessUnitList->uiAvailUnitsNum > 0 ? (pCtx->pAccessUnitList->uiAvailUnitsNum
1407 } else {1404 - 1) : 0);
1408 memcpy (&pCtx->sPpsBuffer[uiPpsId], pPps, sizeof (SPps));
1409 pCtx->bPpsAvailFlags[uiPpsId] = true;
1410 }1405 }
1411 } else {1406 } else {
1412 memcpy (&pCtx->sPpsBuffer[uiPpsId], pPps, sizeof (SPps));1407 memcpy (&pCtx->sPpsBuffer[uiPpsId], pPps, sizeof (SPps));

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