History

Merge pull request #3080 from xiaotiansf/GeneralFix

Update and fix temporal direct prediction and fix multi-reference pic…

huili2 committed 7 years ago

Commit 316a3ba2 parents 7364765 26d334618 files · +411 −466Browse files

Showing the changes to codec/decoder/core/src/decoder_core.cpp (1 of 18 files). Show all

Unified · Split

codec/decoder/core/src/decoder_core.cpp+6−1
@@ -2550,6 +2550,9 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBuf · 2549 unmodified lines
25502550 }
25512551 }
25522552 }
2553+ //calculate Colocated mv scaler factor for temporal direct prediction
2554+ if (pSh->eSliceType == B_SLICE && !pSh->iDirectSpatialMvPredFlag)
2555+ ComputeColocated (pCtx);
25532556
25542557 iRet = WelsDecodeSlice (pCtx, bFreshSliceAvailable, pNalCur);
25552558
@@ -2648,8 +2651,10 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBuf · 92 unmodified lines
26482651 memcpy (pCtx->pDec->pRefIndex[LIST_1], pCtx->pCurDqLayer->pRefIndex[LIST_1],
26492652 pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t) * MB_BLOCK4x4_NUM);
26502653 for (int32_t listIdx = LIST_0; listIdx < LIST_A; ++listIdx) {
2651− for (uint32_t i = 0; i < pCtx->sRefPic.uiRefCount[listIdx]; ++i) {
2654+ uint32_t i = 0;
2655+ while (pCtx->sRefPic.pRefList[listIdx][i]) {
26522656 pCtx->pDec->pRefPic[listIdx][i] = pCtx->sRefPic.pRefList[listIdx][i];
2657+ ++i;
26532658 }
26542659 }
26552660 iRet = WelsMarkAsRef (pCtx);

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