Showing the changes to codec/decoder/core/src/decoder_core.cpp (1 of 5 files). Show all
Unified · Split
| @@ -76,6 +76,8 @@ static inline int32_t DecodeFrameConstruction (PWelsDecoderContext pCtx, uint8_t · 75 unmodified lines | ||
| 76 | 76 | bFrameCompleteFlag = false; //return later after output buffer is done |
| 77 | 77 | if (pCtx->bInstantDecFlag) //no-delay decoding, wait for new slice |
| 78 | 78 | return -1; |
| 79 | + } else if (pCurDq->sLayerInfo.sNalHeaderExt.bIdrFlag && (pCtx->iErrorCode == dsErrorFree)) { //complete non-ECed IDR frame done | |
| 80 | + pCtx->bDecErrorConedFlag = false; | |
| 79 | 81 | } |
| 80 | 82 | |
| 81 | 83 | pCtx->iTotalNumMbRec = 0; |
| @@ -1959,7 +1961,6 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBuf · 1877 unmodified lines | ||
| 1959 | 1961 | if (NeedErrorCon (pCtx)) { |
| 1960 | 1962 | ImplementErrorCon (pCtx); |
| 1961 | 1963 | pCtx->iTotalNumMbRec = pCtx->pSps->iMbWidth * pCtx->pSps->iMbHeight; |
| 1962 | − pCtx->iErrorCode |= dsDataErrorConcealed; | |
| 1963 | 1964 | } |
| 1964 | 1965 | } |
| 1965 | 1966 | |
| @@ -2009,7 +2010,6 @@ bool CheckAndDoEC (PWelsDecoderContext pCtx, uint8_t** ppDst, SBufferInfo* pDstI · 43 unmodified lines | ||
| 2009 | 2010 | pCtx->iPrevFrameNum = pCtx->sLastSliceHeader.iFrameNum; //save frame_num |
| 2010 | 2011 | if (pCtx->bLastHasMmco5) |
| 2011 | 2012 | pCtx->iPrevFrameNum = 0; |
| 2012 | − pCtx->iErrorCode |= dsDataErrorConcealed; | |
| 2013 | 2013 | } |
| 2014 | 2014 | } |
| 2015 | 2015 | return ERR_NONE; |