shithub: openh264

Download patch

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);
 }