Showing the changes to codec/encoder/core/src/slice_multi_threading.cpp (1 of 3 files). Show all
Unified · Split
| @@ -77,9 +77,10 @@ · 76 unmodified lines | ||
| 77 | 77 | } |
| 78 | 78 | |
| 79 | 79 | namespace WelsEnc { |
| 80 | −void UpdateMbListNeighborParallel (SSliceCtx* pSliceCtx, | |
| 80 | +void UpdateMbListNeighborParallel (SDqLayer* pCurDq, | |
| 81 | 81 | SMB* pMbList, |
| 82 | 82 | const int32_t uiSliceIdc) { |
| 83 | + SSliceCtx* pSliceCtx = pCurDq->pSliceEncCtx; | |
| 83 | 84 | const uint16_t* kpMbMap = pSliceCtx->pOverallMbMap; |
| 84 | 85 | const int32_t kiMbWidth = pSliceCtx->iMbWidth; |
| 85 | 86 | int32_t iIdx = pSliceCtx->pFirstMbInSlice[uiSliceIdc]; |
| @@ -960,7 +961,7 @@ WELS_THREAD_ROUTINE_TYPE CodingSliceThreadProc (void* arg) { · 874 unmodified lines | ||
| 960 | 961 | iSliceIdx = |
| 961 | 962 | iEventIdx; // pPrivateData->iSliceIndex; old threads can not be terminated, pPrivateData is not correct for applicable |
| 962 | 963 | pCurDq = pEncPEncCtx->pCurDqLayer; |
| 963 | − UpdateMbListNeighborParallel (pCurDq->pSliceEncCtx, pCurDq->sMbDataP, iSliceIdx); | |
| 964 | + UpdateMbListNeighborParallel (pCurDq, pCurDq->sMbDataP, iSliceIdx); | |
| 964 | 965 | WelsEventSignal ( |
| 965 | 966 | &pEncPEncCtx->pSliceThreading->pFinUpdateMbListEvent[iEventIdx]); // mean finished update pMb list for this pSlice |
| 966 | 967 | } else { // WELS_THREAD_ERROR_WAIT_TIMEOUT, or WELS_THREAD_ERROR_WAIT_FAILED |