ref: f003fa1fe67a6813421fb9749d38f75f116d4c04
parent: 1df4cd43ccff11729fb69eb1d80636fd14468e7f
parent: 6f553c9742c58d0285619f05d068af065f868555
author: ruil2 <[email protected]>
date: Wed Sep 10 04:51:44 EDT 2014
Merge pull request #1341 from sijchen/enable_ltr01 [Encoder] fix a LTR range problem when LTR num is larger than 2
--- a/codec/encoder/core/src/ref_list_mgr_svc.cpp
+++ b/codec/encoder/core/src/ref_list_mgr_svc.cpp
@@ -87,7 +87,7 @@
for (i = 0; i < MAX_SHORT_REF_COUNT + 1; i++)
pRefList->pShortRefList[i] = NULL;
- for (i = 0; i < MAX_LONG_REF_COUNT + 1; i++)
+ for (i = 0; i < pCtx->pSvcParam->iLTRRefNum + 1; i++)
pRefList->pLongRefList[i] = NULL;
for (i = 0; i < pCtx->pSvcParam->iNumRefFrame + 1; i++)
SetUnref (pRefList->pRef[i]);
@@ -805,8 +805,9 @@
}
}
}
- }
+ } // end of (int idx = 0; idx < pVaaExt->iNumOfAvailableRef; idx++)
} else {
+ // dealing with IDR
WelsResetRefList (pCtx); //for IDR, SHOULD reset pRef list.
ResetLtrState (&pCtx->pLtr[pCtx->uiDependencyId]); //SHOULD update it when IDR.
pCtx->pRefList0[0] = NULL;
@@ -814,7 +815,6 @@
if (pCtx->iNumRef0 > iNumRef) {
pCtx->iNumRef0 = iNumRef;
}
- //TBD info update for md &fme
return (pCtx->iNumRef0 > 0 || pCtx->eSliceType == I_SLICE) ? (true) : (false);
}