shithub: openh264

Download patch

ref: 82e7dcd84fadd1a3ff153782b8cac785bc2a2fcc
parent: 8a96d06fa2fded2ac7f7c2b02942347fe8fc6d45
author: Sijia Chen <sijchen@cisco.com>
date: Fri Aug 14 13:01:19 EDT 2015

change the solution when invalid tid is found

--- a/codec/encoder/core/src/wels_preprocess.cpp
+++ b/codec/encoder/core/src/wels_preprocess.cpp
@@ -1037,7 +1037,10 @@
                                           (pCurPicture->iHeightInPixel >> 3) * STATIC_SCENE_MOTION_RATIO));
   const uint8_t iCurTid = GetTemporalLevel (&pSvcParam->sDependencyLayers[m_pEncCtx->sSpatialIndexMap[0].iDid],
                           m_pEncCtx->iCodingIndex, pSvcParam->uiGopSize);
-  const int32_t iClosestLtrFrameNum = (iCurTid != INVALID_TEMPORAL_ID ?  pCtx->pLtr[iTargetDid].iLastLtrIdx[iCurTid] : -1);//TBD
+  if (iCurTid == INVALID_TEMPORAL_ID) {
+    return LARGE_CHANGED_SCENE;
+  }
+  const int32_t iClosestLtrFrameNum = pCtx->pLtr[iTargetDid].iLastLtrIdx[iCurTid];
   if (pSvcParam->bEnableLongTermReference) {
     GetAvailableRefListLosslessScreenRefSelection (pSrcPicList, iCurTid, iClosestLtrFrameNum, &sAvailableRefList[0],
         iAvailableRefNum,