| 129 | } |
| 130 | |
| 131 | void CWelsSliceEncodingTask::FinishTask() { |
| 132 | WelsMutexLock (&m_pCtx->pSliceThreading->mutexThreadBsBufferUsage); |
| 133 | m_pCtx->pSliceThreading->bThreadBsBufferUsage[m_iThreadIdx] = false; |
| 134 | WelsMutexUnlock (&m_pCtx->pSliceThreading->mutexThreadBsBufferUsage); |
| 135 | |
| 136 | WelsLog (&m_pCtx->sLogCtx, WELS_LOG_DEBUG, |
| 137 | "[MT] CWelsSliceEncodingTask()FinishTask for m_iSliceIdx %d, unlock thread %d", |
| 138 | m_iSliceIdx, m_iThreadIdx); |
| 139 | |
| 140 | //sync multi-threading error |
| 141 | WelsMutexLock (&m_pCtx->mutexEncoderError); |
| 142 | if (ENC_RETURN_SUCCESS != m_eTaskResult) { |
| 143 | m_pCtx->iEncoderError |= m_eTaskResult; |
| 144 | } |
| 145 | WelsMutexUnlock (&m_pCtx->mutexEncoderError); |
| 146 | } |
| 147 | |
| 148 | WelsErrorType CWelsSliceEncodingTask::ExecuteTask() { |
| 149 |
nothing calls this directly
no test coverage detected