History

mark decoder always ECed status until correct IDR comes

huili2 committed 12 years ago

Commit ce436741 parent 6ff2b845 files · +11 −2Browse files

Showing the changes to codec/decoder/core/src/decoder_core.cpp (1 of 5 files). Show all

Unified · Split

codec/decoder/core/src/decoder_core.cpp+2−2
@@ -76,6 +76,8 @@ static inline int32_t DecodeFrameConstruction (PWelsDecoderContext pCtx, uint8_t · 75 unmodified lines
7676 bFrameCompleteFlag = false; //return later after output buffer is done
7777 if (pCtx->bInstantDecFlag) //no-delay decoding, wait for new slice
7878 return -1;
79+ } else if (pCurDq->sLayerInfo.sNalHeaderExt.bIdrFlag && (pCtx->iErrorCode == dsErrorFree)) { //complete non-ECed IDR frame done
80+ pCtx->bDecErrorConedFlag = false;
7981 }
8082
8183 pCtx->iTotalNumMbRec = 0;
@@ -1959,7 +1961,6 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBuf · 1877 unmodified lines
19591961 if (NeedErrorCon (pCtx)) {
19601962 ImplementErrorCon (pCtx);
19611963 pCtx->iTotalNumMbRec = pCtx->pSps->iMbWidth * pCtx->pSps->iMbHeight;
1962− pCtx->iErrorCode |= dsDataErrorConcealed;
19631964 }
19641965 }
19651966
@@ -2009,7 +2010,6 @@ bool CheckAndDoEC (PWelsDecoderContext pCtx, uint8_t** ppDst, SBufferInfo* pDstI · 43 unmodified lines
20092010 pCtx->iPrevFrameNum = pCtx->sLastSliceHeader.iFrameNum; //save frame_num
20102011 if (pCtx->bLastHasMmco5)
20112012 pCtx->iPrevFrameNum = 0;
2012− pCtx->iErrorCode |= dsDataErrorConcealed;
20132013 }
20142014 }
20152015 return ERR_NONE;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t