mem mem decstatictis time change time change set decTime=0
Showing the changes to codec/decoder/core/src/error_concealment.cpp (1 of 9 files). Show all
Unified · Split
| @@ -98,9 +98,10 @@ void DoErrorConSliceCopy (PWelsDecoderContext pCtx) { · 97 unmodified lines | |||
| 98 | PPicture pDstPic = pCtx->pDec; | 98 | PPicture pDstPic = pCtx->pDec; |
| 99 | PPicture pSrcPic = pCtx->pPreviousDecodedPictureInDpb; | 99 | PPicture pSrcPic = pCtx->pPreviousDecodedPictureInDpb; |
| 100 | 100 | ||
| 101 | int32_t iMbNum = pCtx->pSps->iMbWidth * pCtx->pSps->iMbHeight; | ||
| 101 | //uint8_t *pDstData[3], *pSrcData[3]; | 102 | //uint8_t *pDstData[3], *pSrcData[3]; |
| 102 | bool* pMbCorrectlyDecodedFlag = pCtx->pCurDqLayer->pMbCorrectlyDecodedFlag; | 103 | bool* pMbCorrectlyDecodedFlag = pCtx->pCurDqLayer->pMbCorrectlyDecodedFlag; |
| 103 | 104 | int32_t iMbEcedNum = 0; | |
| 104 | //Do slice copy late | 105 | //Do slice copy late |
| 105 | int32_t iMbXyIndex; | 106 | int32_t iMbXyIndex; |
| 106 | uint8_t* pSrcData, *pDstData; | 107 | uint8_t* pSrcData, *pDstData; |
| @@ -110,6 +111,7 @@ void DoErrorConSliceCopy (PWelsDecoderContext pCtx) { · 3 unmodified lines | |||
| 110 | for (int32_t iMbX = 0; iMbX < iMbWidth; ++iMbX) { | 111 | for (int32_t iMbX = 0; iMbX < iMbWidth; ++iMbX) { |
| 111 | iMbXyIndex = iMbY * iMbWidth + iMbX; | 112 | iMbXyIndex = iMbY * iMbWidth + iMbX; |
| 112 | if (!pMbCorrectlyDecodedFlag[iMbXyIndex]) { | 113 | if (!pMbCorrectlyDecodedFlag[iMbXyIndex]) { |
| 114 | iMbEcedNum++; | ||
| 113 | if (pSrcPic != NULL) { | 115 | if (pSrcPic != NULL) { |
| 114 | iSrcStride = pSrcPic->iLinesize[0]; | 116 | iSrcStride = pSrcPic->iLinesize[0]; |
| 115 | //Y component | 117 | //Y component |
| @@ -147,6 +149,9 @@ void DoErrorConSliceCopy (PWelsDecoderContext pCtx) { · 31 unmodified lines | |||
| 147 | } //!pMbCorrectlyDecodedFlag[iMbXyIndex] | 149 | } //!pMbCorrectlyDecodedFlag[iMbXyIndex] |
| 148 | } //iMbX | 150 | } //iMbX |
| 149 | } //iMbY | 151 | } //iMbY |
| 152 | |||
| 153 | pCtx->sDecoderStatistics.uiAvgEcRatio = (pCtx->sDecoderStatistics.uiAvgEcRatio * pCtx->sDecoderStatistics.uiEcFrameNum) | ||
| 154 | + ((iMbEcedNum * 100) / iMbNum) ; | ||
| 150 | } | 155 | } |
| 151 | 156 | ||
| 152 | 157 | ||