shithub: openh264

Download patch

ref: 64380c46b8af0aaf34ed21495bbd6c3b9198950a
parent: 7d6035d5d4bfc8db4fb5d496ddfee85921178e04
author: Licai Guo <[email protected]>
date: Sun Jan 19 13:54:45 EST 2014

fix 961370

--- a/codec/decoder/core/src/au_parser.cpp
+++ b/codec/decoder/core/src/au_parser.cpp
@@ -206,6 +206,16 @@
     pCurNal = &pCtx->sPrefixNal;
 
     if (iNalSize < NAL_UNIT_HEADER_EXT_SIZE) {
+      pCtx->iErrorCode |= dsBitstreamError;
+
+      PAccessUnit pCurAu	   = pCtx->pAccessUnitList;
+      uint32_t uiAvailNalNum = pCurAu->uiAvailUnitsNum;
+      ForceClearCurrentNal (pCurAu);
+
+      if (uiAvailNalNum > 1) {
+        pCurAu->uiEndPos = uiAvailNalNum - 2;
+        pCtx->bAuReadyFlag = true;
+      }
       return NULL;
     }
 
@@ -250,6 +260,14 @@
 
     if (pNalUnitHeader->eNalUnitType == NAL_UNIT_CODED_SLICE_EXT) {
       if (iNalSize < NAL_UNIT_HEADER_EXT_SIZE) {
+        pCtx->iErrorCode |= dsBitstreamError;
+
+        ForceClearCurrentNal (pCurAu);
+
+        if (uiAvailNalNum > 1) {
+          pCurAu->uiEndPos = uiAvailNalNum - 2;
+          pCtx->bAuReadyFlag = true;
+        }
         return NULL;
       }