shithub: openh264

Download patch

ref: b55f1bdfe2f6b9b2714bfe178d6174e8070b7029
parent: 0f4499121a35ff33a5c733919366134c0e0cbb0b
author: huili2 <[email protected]>
date: Thu Jun 26 18:13:16 EDT 2014

add return error if data lost

--- a/codec/api/svc/codec_app_def.h
+++ b/codec/api/svc/codec_app_def.h
@@ -58,6 +58,7 @@
   dsBitstreamError	= 0x04,	/* Error bitstreams(maybe broken internal frame) the decoder cared */
   dsDepLayerLost		= 0x08,	/* Dependented layer is ever lost */
   dsNoParamSets		= 0x10, /* No parameter set NALs involved */
+  dsDataErrorConcealed  = 0x20, /* current data Error concealed specified */
 
   /* Errors derived from logic level */
   dsInvalidArgument	= 0x1000,	/* Invalid argument specified */
--- a/codec/decoder/core/src/decoder_core.cpp
+++ b/codec/decoder/core/src/decoder_core.cpp
@@ -1943,6 +1943,7 @@
         if (NeedErrorCon (pCtx)) {
           ImplementErrorCon (pCtx);
           pCtx->iTotalNumMbRec = pCtx->pSps->iMbWidth * pCtx->pSps->iMbHeight;
+          pCtx->iErrorCode |= dsDataErrorConcealed;
         }
       }
 
@@ -1992,6 +1993,7 @@
       pCtx->iPrevFrameNum = pCtx->sLastSliceHeader.iFrameNum; //save frame_num
       if (pCtx->bLastHasMmco5)
         pCtx->iPrevFrameNum = 0;
+      pCtx->iErrorCode |= dsDataErrorConcealed;
     }
   }
   return ERR_NONE;