shithub: openh264

Download patch

ref: f8ca91f317504086cab5fb7cd67d86d0dc917086
parent: 300bbfb67b745a35bfff0e5819e9dde34c8061ab
parent: b55f1bdfe2f6b9b2714bfe178d6174e8070b7029
author: dongzha <[email protected]>
date: Fri Jun 27 11:56:02 EDT 2014

Merge pull request #1025 from huili2/EC_return_error

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
@@ -1944,6 +1944,7 @@
         if (NeedErrorCon (pCtx)) {
           ImplementErrorCon (pCtx);
           pCtx->iTotalNumMbRec = pCtx->pSps->iMbWidth * pCtx->pSps->iMbHeight;
+          pCtx->iErrorCode |= dsDataErrorConcealed;
         }
       }
 
@@ -1993,6 +1994,7 @@
       pCtx->iPrevFrameNum = pCtx->sLastSliceHeader.iFrameNum; //save frame_num
       if (pCtx->bLastHasMmco5)
         pCtx->iPrevFrameNum = 0;
+      pCtx->iErrorCode |= dsDataErrorConcealed;
     }
   }
   return ERR_NONE;