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 | namespace WelsEnc { | 79 | namespace WelsEnc { |
| 80 | void UpdateMbListNeighborParallel (SSliceCtx* pSliceCtx, | 80 | void UpdateMbListNeighborParallel (SDqLayer* pCurDq, |
| 81 | SMB* pMbList, | 81 | SMB* pMbList, |
| 82 | const int32_t uiSliceIdc) { | 82 | const int32_t uiSliceIdc) { |
| 83 | SSliceCtx* pSliceCtx = pCurDq->pSliceEncCtx; | ||
| 83 | const uint16_t* kpMbMap = pSliceCtx->pOverallMbMap; | 84 | const uint16_t* kpMbMap = pSliceCtx->pOverallMbMap; |
| 84 | const int32_t kiMbWidth = pSliceCtx->iMbWidth; | 85 | const int32_t kiMbWidth = pSliceCtx->iMbWidth; |
| 85 | int32_t iIdx = pSliceCtx->pFirstMbInSlice[uiSliceIdc]; | 86 | int32_t iIdx = pSliceCtx->pFirstMbInSlice[uiSliceIdc]; |
| @@ -960,7 +961,7 @@ WELS_THREAD_ROUTINE_TYPE CodingSliceThreadProc (void* arg) { · 874 unmodified lines | |||
| 960 | iSliceIdx = | 961 | iSliceIdx = |
| 961 | iEventIdx; // pPrivateData->iSliceIndex; old threads can not be terminated, pPrivateData is not correct for applicable | 962 | iEventIdx; // pPrivateData->iSliceIndex; old threads can not be terminated, pPrivateData is not correct for applicable |
| 962 | pCurDq = pEncPEncCtx->pCurDqLayer; | 963 | pCurDq = pEncPEncCtx->pCurDqLayer; |
| 963 | UpdateMbListNeighborParallel (pCurDq->pSliceEncCtx, pCurDq->sMbDataP, iSliceIdx); | 964 | UpdateMbListNeighborParallel (pCurDq, pCurDq->sMbDataP, iSliceIdx); |
| 964 | WelsEventSignal ( | 965 | WelsEventSignal ( |
| 965 | &pEncPEncCtx->pSliceThreading->pFinUpdateMbListEvent[iEventIdx]); // mean finished update pMb list for this pSlice | 966 | &pEncPEncCtx->pSliceThreading->pFinUpdateMbListEvent[iEventIdx]); // mean finished update pMb list for this pSlice |
| 966 | } else { // WELS_THREAD_ERROR_WAIT_TIMEOUT, or WELS_THREAD_ERROR_WAIT_FAILED | 967 | } else { // WELS_THREAD_ERROR_WAIT_TIMEOUT, or WELS_THREAD_ERROR_WAIT_FAILED |