Add additional function PrefetchLastPicForThread and variables for better control of threaded decoding in the case of multi-slice with one slice group contains one slice.
Showing the changes to codec/decoder/core/src/decode_slice.cpp (1 of 9 files). Show all
Unified · Split
| @@ -1736,9 +1736,8 @@ int32_t WelsDecodeAndConstructSlice (PWelsDecoderContext pCtx) { · 1735 unmodified lines | |||
| 1736 | if (!pCurDqLayer->pMbCorrectlyDecodedFlag[iNextMbXyIndex]) { //already con-ed, overwrite | 1736 | if (!pCurDqLayer->pMbCorrectlyDecodedFlag[iNextMbXyIndex]) { //already con-ed, overwrite |
| 1737 | pCurDqLayer->pMbCorrectlyDecodedFlag[iNextMbXyIndex] = true; | 1737 | pCurDqLayer->pMbCorrectlyDecodedFlag[iNextMbXyIndex] = true; |
| 1738 | pCtx->pDec->iMbEcedPropNum += (pCurDqLayer->pMbRefConcealedFlag[iNextMbXyIndex] ? 1 : 0); | 1738 | pCtx->pDec->iMbEcedPropNum += (pCurDqLayer->pMbRefConcealedFlag[iNextMbXyIndex] ? 1 : 0); |
| 1739 | ++pCtx->iTotalNumMbRec; | ||
| 1740 | } | 1739 | } |
| 1741 | 1740 | ++pCtx->iTotalNumMbRec; | |
| 1742 | if (pCtx->iTotalNumMbRec > iTotalMbTargetLayer) { | 1741 | if (pCtx->iTotalNumMbRec > iTotalMbTargetLayer) { |
| 1743 | WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, | 1742 | WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, |
| 1744 | "WelsTargetSliceConstruction():::pCtx->iTotalNumMbRec:%d, iTotalMbTargetLayer:%d", | 1743 | "WelsTargetSliceConstruction():::pCtx->iTotalNumMbRec:%d, iTotalMbTargetLayer:%d", |