diff --git a/codec/decoder/core/src/decoder_core.cpp b/codec/decoder/core/src/decoder_core.cpp index f10dccb7..0db0ca6a 100644 --- a/codec/decoder/core/src/decoder_core.cpp +++ b/codec/decoder/core/src/decoder_core.cpp @@ -2416,8 +2416,10 @@ bool CheckAndFinishLastPic (PWelsDecoderContext pCtx, uint8_t** ppDst, SBufferIn pCtx->bFrameFinish = true; //clear frame pending status here! } else { if (DecodeFrameConstruction (pCtx, ppDst, pDstInfo)) { - if (pCtx->sLastNalHdrExt.sNalUnitHeader.uiNalRefIdc > 0) + if ((pCtx->sLastNalHdrExt.sNalUnitHeader.uiNalRefIdc > 0) && (pCtx->sLastNalHdrExt.uiTemporalId == 0)) pCtx->iErrorCode |= dsNoParamSets; + else + pCtx->iErrorCode |= dsBitstreamError; pCtx->pDec = NULL; return false; }