Showing the changes to codec/encoder/core/src/slice_multi_threading.cpp (1 of 14 files). Show all
Unified · Split
| @@ -131,7 +131,7 @@ void CalcSliceComplexRatio (void* pRatio, SSliceCtx* pSliceCtx, uint32_t* pSlice · 130 unmodified lines | |||
| 131 | WelsEmms(); | 131 | WelsEmms(); |
| 132 | 132 | ||
| 133 | while (iSliceIdx < kiSliceCount) { | 133 | while (iSliceIdx < kiSliceCount) { |
| 134 | iAvI[iSliceIdx] = WELS_DIV_ROUND(INT_MULTIPLY * pCountMbInSlice[iSliceIdx], pSliceTime[iSliceIdx]); | 134 | iAvI[iSliceIdx] = WELS_DIV_ROUND (INT_MULTIPLY * pCountMbInSlice[iSliceIdx], pSliceTime[iSliceIdx]); |
| 135 | MT_TRACE_LOG (NULL, WELS_LOG_DEBUG, "[MT] CalcSliceComplexRatio(), pSliceConsumeTime[%d]= %d us, slice_run= %d\n", | 135 | MT_TRACE_LOG (NULL, WELS_LOG_DEBUG, "[MT] CalcSliceComplexRatio(), pSliceConsumeTime[%d]= %d us, slice_run= %d\n", |
| 136 | iSliceIdx, | 136 | iSliceIdx, |
| 137 | pSliceTime[iSliceIdx], pCountMbInSlice[iSliceIdx]); | 137 | pSliceTime[iSliceIdx], pCountMbInSlice[iSliceIdx]); |
| @@ -140,7 +140,7 @@ void CalcSliceComplexRatio (void* pRatio, SSliceCtx* pSliceCtx, uint32_t* pSlice · 2 unmodified lines | |||
| 140 | ++ iSliceIdx; | 140 | ++ iSliceIdx; |
| 141 | } | 141 | } |
| 142 | while (-- iSliceIdx >= 0) { | 142 | while (-- iSliceIdx >= 0) { |
| 143 | pRatioList[iSliceIdx] = WELS_DIV_ROUND(INT_MULTIPLY * iAvI[iSliceIdx], iSumAv); | 143 | pRatioList[iSliceIdx] = WELS_DIV_ROUND (INT_MULTIPLY * iAvI[iSliceIdx], iSumAv); |
| 144 | } | 144 | } |
| 145 | } | 145 | } |
| 146 | 146 | ||
| @@ -236,7 +236,7 @@ void DynamicAdjustSlicing (sWelsEncCtx* pCtx, · 89 unmodified lines | |||
| 236 | 236 | ||
| 237 | iSliceIdx = 0; | 237 | iSliceIdx = 0; |
| 238 | while (iSliceIdx + 1 < kiCountSliceNum) { | 238 | while (iSliceIdx + 1 < kiCountSliceNum) { |
| 239 | int32_t iNumMbAssigning = WELS_DIV_ROUND(kiCountNumMb * pSliceComplexRatio[iSliceIdx], INT_MULTIPLY); | 239 | int32_t iNumMbAssigning = WELS_DIV_ROUND (kiCountNumMb * pSliceComplexRatio[iSliceIdx], INT_MULTIPLY); |
| 240 | 240 | ||
| 241 | // GOM boundary aligned | 241 | // GOM boundary aligned |
| 242 | if (pCtx->pSvcParam->iRCMode != RC_OFF_MODE) { | 242 | if (pCtx->pSvcParam->iRCMode != RC_OFF_MODE) { |
| @@ -259,14 +259,15 @@ void DynamicAdjustSlicing (sWelsEncCtx* pCtx, · 16 unmodified lines | |||
| 259 | iRunLen[iSliceIdx] = iNumMbAssigning; | 259 | iRunLen[iSliceIdx] = iNumMbAssigning; |
| 260 | MT_TRACE_LOG (pCtx, WELS_LOG_DEBUG, | 260 | MT_TRACE_LOG (pCtx, WELS_LOG_DEBUG, |
| 261 | "[MT] DynamicAdjustSlicing(), uiSliceIdx= %d, pSliceComplexRatio= %.2f, slice_run_org= %d, slice_run_adj= %d\n", | 261 | "[MT] DynamicAdjustSlicing(), uiSliceIdx= %d, pSliceComplexRatio= %.2f, slice_run_org= %d, slice_run_adj= %d\n", |
| 262 | iSliceIdx, pSliceComplexRatio[iSliceIdx]* 1.0f / INT_MULTIPLY, pSliceCtx->pCountMbNumInSlice[iSliceIdx], iNumMbAssigning); | 262 | iSliceIdx, pSliceComplexRatio[iSliceIdx] * 1.0f / INT_MULTIPLY, pSliceCtx->pCountMbNumInSlice[iSliceIdx], |
| 263 | iNumMbAssigning); | ||
| 263 | ++ iSliceIdx; | 264 | ++ iSliceIdx; |
| 264 | iMaximalMbNum = iMbNumLeft - (kiCountSliceNum - iSliceIdx - 1) * iMinimalMbNum; // get maximal num_mb in left parts | 265 | iMaximalMbNum = iMbNumLeft - (kiCountSliceNum - iSliceIdx - 1) * iMinimalMbNum; // get maximal num_mb in left parts |
| 265 | } | 266 | } |
| 266 | iRunLen[iSliceIdx] = iMbNumLeft; | 267 | iRunLen[iSliceIdx] = iMbNumLeft; |
| 267 | MT_TRACE_LOG (pCtx, WELS_LOG_DEBUG, | 268 | MT_TRACE_LOG (pCtx, WELS_LOG_DEBUG, |
| 268 | "[MT] DynamicAdjustSlicing(), iSliceIdx= %d, pSliceComplexRatio= %.2f, slice_run_org= %d, slice_run_adj= %d\n", | 269 | "[MT] DynamicAdjustSlicing(), iSliceIdx= %d, pSliceComplexRatio= %.2f, slice_run_org= %d, slice_run_adj= %d\n", |
| 269 | iSliceIdx, pSliceComplexRatio[iSliceIdx]* 1.0f / INT_MULTIPLY, pSliceCtx->pCountMbNumInSlice[iSliceIdx], iMbNumLeft); | 270 | iSliceIdx, pSliceComplexRatio[iSliceIdx] * 1.0f / INT_MULTIPLY, pSliceCtx->pCountMbNumInSlice[iSliceIdx], iMbNumLeft); |
| 270 | 271 | ||
| 271 | 272 | ||
| 272 | if (DynamicAdjustSlicePEncCtxAll (pSliceCtx, iRunLen) == 0) { | 273 | if (DynamicAdjustSlicePEncCtxAll (pSliceCtx, iRunLen) == 0) { |
| @@ -651,7 +652,7 @@ int32_t WriteSliceBs (sWelsEncCtx* pCtx, uint8_t* pSliceBsBuf, const int32_t iSl · 378 unmodified lines | |||
| 651 | int32_t iNalIdx = 0; | 652 | int32_t iNalIdx = 0; |
| 652 | int32_t iNalSize = 0; | 653 | int32_t iNalSize = 0; |
| 653 | int32_t iReturn = ENC_RETURN_SUCCESS; | 654 | int32_t iReturn = ENC_RETURN_SUCCESS; |
| 654 | const int32_t kiWrittenLength = pSliceBs->sBsWrite.pBufPtr - pSliceBs->sBsWrite.pBuf; | 655 | const int32_t kiWrittenLength = (int32_t) (pSliceBs->sBsWrite.pBufPtr - pSliceBs->sBsWrite.pBuf); |
| 655 | 656 | ||
| 656 | iSliceSize = 0; | 657 | iSliceSize = 0; |
| 657 | assert (kiNalCnt <= 2); | 658 | assert (kiNalCnt <= 2); |