enable Scroll detection into workflow

This commit is contained in:
lyao2
2014-05-15 09:11:58 +08:00
parent 3d5990500b
commit bd7c04f738
5 changed files with 123 additions and 66 deletions

View File

@@ -997,7 +997,8 @@ ESceneChangeIdc CWelsPreProcess::DetectSceneChangeScreen (sWelsEncCtx* pCtx, SPi
for (iScdIdx = 0; iScdIdx < iAvailableRefNum; iScdIdx ++) {
pCurBlockStaticPointer = pVaaExt->pVaaBlockStaticIdc[iScdIdx];
sSceneChangeResult.eSceneChangeIdc = SIMILAR_SCENE;
sSceneChangeResult.pStaticBlockIdc = pCurBlockStaticPointer;//
sSceneChangeResult.pStaticBlockIdc = pCurBlockStaticPointer;
sSceneChangeResult.sScrollResult.bScrollDetectFlag = false;
pRefPicInfo = & (sAvailableRefList[iScdIdx]);
assert (NULL != pRefPicInfo);
@@ -1005,8 +1006,22 @@ ESceneChangeIdc CWelsPreProcess::DetectSceneChangeScreen (sWelsEncCtx* pCtx, SPi
InitPixMap (pRefPic, &sRefMap);
bIsClosestLtrFrame = (pRefPic->iLongTermPicNum == iClosestLtrFrameNum);
if (0 == iScdIdx) {
int32_t ret = 1;
SScrollDetectionParam* pScrollDetectInfo = & (pVaaExt->sScrollDetectInfo);
memset (pScrollDetectInfo, 0, sizeof (SScrollDetectionParam));
int32_t iMethodIdx = METHOD_SCROLL_DETECTION;
m_pInterfaceVp->Set (iMethodIdx, (void*) (pScrollDetectInfo));
ret = m_pInterfaceVp->Process (iMethodIdx, &sSrcMap, &sRefMap);
if (ret == 0) {
m_pInterfaceVp->Get (iMethodIdx, (void*) (pScrollDetectInfo));
}
sSceneChangeResult.sScrollResult = pVaaExt->sScrollDetectInfo;
}
//TBD scrolling detection
m_pInterfaceVp->Set (iSceneChangeMethodIdx, (void*) (&sSceneChangeResult));
ret = m_pInterfaceVp->Process (iSceneChangeMethodIdx, &sSrcMap, &sRefMap);