shithub: openh264

Download patch

ref: 32d1510d296d0dd5189b5432bbc0edd83cfb49b9
parent: aeed1fa67733afd8f6bd82480fe6a8ec2fa59f92
parent: 682b0b73352b9fc6633bc74f33dea2d4fed39053
author: huili2 <huili2@cisco.com>
date: Tue Jun 9 05:10:36 EDT 2015

Merge pull request #1981 from HaiboZhu/Debug_mosaic_T30

Bug fix about PrevRefFrameNum update logic error

--- a/codec/decoder/core/src/decoder_core.cpp
+++ b/codec/decoder/core/src/decoder_core.cpp
@@ -2345,7 +2345,8 @@
     }
 
     // need update frame_num due current frame is well decoded
-    pCtx->iPrevFrameNum	= pSh->iFrameNum;
+    if (pCurAu->pNalUnitsList[pCurAu->uiStartPos]->sNalHeaderExt.sNalUnitHeader.uiNalRefIdc > 0)
+      pCtx->iPrevFrameNum	= pSh->iFrameNum;
     if (pCtx->bLastHasMmco5)
       pCtx->iPrevFrameNum = 0;
   }
@@ -2403,7 +2404,8 @@
       }
     }
     pCtx->pDec = NULL;
-    pCtx->iPrevFrameNum = pCtx->sLastSliceHeader.iFrameNum; //save frame_num
+    if (pAu->pNalUnitsList[pAu->uiStartPos]->sNalHeaderExt.sNalUnitHeader.uiNalRefIdc > 0)
+      pCtx->iPrevFrameNum = pCtx->sLastSliceHeader.iFrameNum; //save frame_num
     if (pCtx->bLastHasMmco5)
       pCtx->iPrevFrameNum = 0;
   }