Merge pull request #2096 from ruil2/rc0

use individual iDecompositionStages for each spatial layer
This commit is contained in:
HaiboZhu 2015-09-02 10:10:02 +08:00
commit fd7a02b557

View File

@ -3865,7 +3865,7 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour
while (iSpatialIdx < iSpatialNum) { while (iSpatialIdx < iSpatialNum) {
const int32_t iDidIdx = (pSpatialIndexMap + iSpatialIdx)->iDid; // get iDid const int32_t iDidIdx = (pSpatialIndexMap + iSpatialIdx)->iDid; // get iDid
SSpatialLayerConfig* pParam = &pSvcParam->sSpatialLayers[iDidIdx]; SSpatialLayerConfig* pParam = &pSvcParam->sSpatialLayers[iDidIdx];
int32_t iDecompositionStages = pSvcParam->sDependencyLayers[iSpatialIdx].iDecompositionStages;
pCtx->uiDependencyId = iCurDid = (int8_t)iDidIdx; pCtx->uiDependencyId = iCurDid = (int8_t)iDidIdx;
pCtx->pVpp->AnalyzeSpatialPic (pCtx, iDidIdx); pCtx->pVpp->AnalyzeSpatialPic (pCtx, iDidIdx);
@ -3923,9 +3923,9 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour
} }
if (iCurTid == 0 || pCtx->eSliceType == I_SLICE) if (iCurTid == 0 || pCtx->eSliceType == I_SLICE)
eNalRefIdc = NRI_PRI_HIGHEST; eNalRefIdc = NRI_PRI_HIGHEST;
else if (iCurTid == pSvcParam->iDecompStages) else if (iCurTid == iDecompositionStages)
eNalRefIdc = NRI_PRI_LOWEST; eNalRefIdc = NRI_PRI_LOWEST;
else if (1 + iCurTid == pSvcParam->iDecompStages) else if (1 + iCurTid == iDecompositionStages)
eNalRefIdc = NRI_PRI_LOW; eNalRefIdc = NRI_PRI_LOW;
else // more details for other temporal layers? else // more details for other temporal layers?
eNalRefIdc = NRI_PRI_HIGHEST; eNalRefIdc = NRI_PRI_HIGHEST;