ref: f668e1be98d7614213f3de462066b104fbda8819
parent: 607d814e0f8c59ca26f91ea6ad0f339e01d7b6f0
author: dong zhang <dongzha@cisco.com>
date: Tue Dec 2 04:34:18 EST 2014
fix issue 1535
--- a/codec/encoder/core/src/encoder_ext.cpp
+++ b/codec/encoder/core/src/encoder_ext.cpp
@@ -2272,20 +2272,18 @@
const int32_t iThreadCount = (*ppCtx)->pSvcParam->iCountThreadsNum;
int32_t iThreadIdx = 0;
- if ((*ppCtx)->pSliceThreading->pExitEncodeEvent != NULL) {
- while (iThreadIdx < iThreadCount) {
- int res = 0;
- if ((*ppCtx)->pSliceThreading->pThreadHandles[iThreadIdx]) {
- WelsEventSignal (& (*ppCtx)->pSliceThreading->pExitEncodeEvent[iThreadIdx]);
- WelsEventSignal (& (*ppCtx)->pSliceThreading->pThreadMasterEvent[iThreadIdx]);
- res = WelsThreadJoin ((*ppCtx)->pSliceThreading->pThreadHandles[iThreadIdx]); // waiting thread exit
- WelsLog (& (*ppCtx)->sLogCtx, WELS_LOG_INFO, "WelsUninitEncoderExt(), pthread_join(pThreadHandles%d) return %d..",
- iThreadIdx,
- res);
- (*ppCtx)->pSliceThreading->pThreadHandles[iThreadIdx] = 0;
- }
- ++ iThreadIdx;
+ while (iThreadIdx < iThreadCount) {
+ int res = 0;
+ if ((*ppCtx)->pSliceThreading->pThreadHandles[iThreadIdx]) {
+ WelsEventSignal (& (*ppCtx)->pSliceThreading->pExitEncodeEvent[iThreadIdx]);
+ WelsEventSignal (& (*ppCtx)->pSliceThreading->pThreadMasterEvent[iThreadIdx]);
+ res = WelsThreadJoin ((*ppCtx)->pSliceThreading->pThreadHandles[iThreadIdx]); // waiting thread exit
+ WelsLog (& (*ppCtx)->sLogCtx, WELS_LOG_INFO, "WelsUninitEncoderExt(), pthread_join(pThreadHandles%d) return %d..",
+ iThreadIdx,
+ res);
+ (*ppCtx)->pSliceThreading->pThreadHandles[iThreadIdx] = 0;
}
+ ++ iThreadIdx;
}
}