History

refactor for slice buffer init/allocate/free

huade committed 10 years ago

Commit a7a5b7b1 parent 33bb96f7 files · +334 −158Browse files

Showing the changes to codec/encoder/core/src/slice_multi_threading.cpp (1 of 7 files). Show all

Unified · Split

codec/encoder/core/src/slice_multi_threading.cpp+1−21
@@ -271,6 +271,7 @@ int32_t RequestMtResource (sWelsEncCtx** ppCtx, SWelsSvcCodingParam* pCodingPara · 270 unmodified lines
271 271
272 assert (iThreadNum > 0);272 assert (iThreadNum > 0);
273 iMaxSliceNumInThread = ((*ppCtx)->iMaxSliceCount / iThreadNum + 1) * 2;273 iMaxSliceNumInThread = ((*ppCtx)->iMaxSliceCount / iThreadNum + 1) * 2;
274 iMaxSliceNumInThread = WELS_MIN ((*ppCtx)->iMaxSliceCount, (int) iMaxSliceNumInThread);
274 275
275 pSmt = (SSliceThreading*)pMa->WelsMalloc (sizeof (SSliceThreading), "SSliceThreading");276 pSmt = (SSliceThreading*)pMa->WelsMalloc (sizeof (SSliceThreading), "SSliceThreading");
276 WELS_VERIFY_RETURN_PROC_IF (1, (NULL == pSmt), FreeMemorySvc (ppCtx))277 WELS_VERIFY_RETURN_PROC_IF (1, (NULL == pSmt), FreeMemorySvc (ppCtx))
@@ -307,8 +308,6 @@ int32_t RequestMtResource (sWelsEncCtx** ppCtx, SWelsSvcCodingParam* pCodingPara · 30 unmodified lines
307 pSmt->pThreadPEncCtx[iIdx].pWelsPEncCtx = (void*) *ppCtx;308 pSmt->pThreadPEncCtx[iIdx].pWelsPEncCtx = (void*) *ppCtx;
308 pSmt->pThreadPEncCtx[iIdx].iSliceIndex = iIdx;309 pSmt->pThreadPEncCtx[iIdx].iSliceIndex = iIdx;
309 pSmt->pThreadPEncCtx[iIdx].iThreadIndex = iIdx;310 pSmt->pThreadPEncCtx[iIdx].iThreadIndex = iIdx;
310 pSmt->iMaxSliceNumInThread[iIdx] = iMaxSliceNumInThread;
311 pSmt->iEncodedSliceNumInThread[iIdx] = 0;
312 pSmt->pThreadHandles[iIdx] = 0;311 pSmt->pThreadHandles[iIdx] = 0;
313 312
314 WelsSnprintf (name, SEM_NAME_MAX, "ee%d%s", iIdx, pSmt->eventNamespace);313 WelsSnprintf (name, SEM_NAME_MAX, "ee%d%s", iIdx, pSmt->eventNamespace);
@@ -332,19 +331,10 @@ int32_t RequestMtResource (sWelsEncCtx** ppCtx, SWelsSvcCodingParam* pCodingPara · 17 unmodified lines
332 err = WelsEventOpen (&pSmt->pReadySliceCodingEvent[iIdx], name);331 err = WelsEventOpen (&pSmt->pReadySliceCodingEvent[iIdx], name);
333 MT_TRACE_LOG (pLogCtx, WELS_LOG_INFO, "[MT] Open pReadySliceCodingEvent%d = 0x%p named(%s) ret%d err%d", iIdx,332 MT_TRACE_LOG (pLogCtx, WELS_LOG_INFO, "[MT] Open pReadySliceCodingEvent%d = 0x%p named(%s) ret%d err%d", iIdx,
334 (void*)pSmt->pReadySliceCodingEvent[iIdx], name, err, errno);333 (void*)pSmt->pReadySliceCodingEvent[iIdx], name, err, errno);
335
336 pSmt->pSliceInThread[iIdx] = (SSlice*)pMa->WelsMalloc (sizeof (SSlice)*iMaxSliceNumInThread, "pSmt->pSliceInThread");
337 WELS_VERIFY_RETURN_PROC_IF (1, (NULL == pSmt->pSliceInThread[iIdx]), FreeMemorySvc (ppCtx))
338
339 pSmt->piSliceIndexInThread[iIdx] = (int32_t *)pMa->WelsMalloc (iMaxSliceNumInThread, "pSmt->piSliceIndexInThread");
340 WELS_VERIFY_RETURN_PROC_IF (1, (NULL == pSmt->piSliceIndexInThread[iIdx]), FreeMemorySvc (ppCtx))
341
342 ++ iIdx;334 ++ iIdx;
343 }335 }
344 for (; iIdx < MAX_THREADS_NUM; iIdx++) {336 for (; iIdx < MAX_THREADS_NUM; iIdx++) {
345 pSmt->pThreadBsBuffer[iIdx] = NULL;337 pSmt->pThreadBsBuffer[iIdx] = NULL;
346 pSmt->pSliceInThread[iIdx] = NULL;
347 pSmt->piSliceIndexInThread[iIdx] = NULL;
348 }338 }
349 339
350 WelsSnprintf (name, SEM_NAME_MAX, "scm%s", pSmt->eventNamespace);340 WelsSnprintf (name, SEM_NAME_MAX, "scm%s", pSmt->eventNamespace);
@@ -432,16 +422,6 @@ void ReleaseMtResource (sWelsEncCtx** ppCtx) { · 81 unmodified lines
432 pMa->WelsFree (pSmt->pThreadBsBuffer[i], "pSmt->pThreadBsBuffer");422 pMa->WelsFree (pSmt->pThreadBsBuffer[i], "pSmt->pThreadBsBuffer");
433 pSmt->pThreadBsBuffer[i] = NULL;423 pSmt->pThreadBsBuffer[i] = NULL;
434 }424 }
435
436 if (pSmt->pSliceInThread[i]) {
437 pMa->WelsFree (pSmt->pSliceInThread[i], "pSmt->pSliceInThread");
438 pSmt->pSliceInThread[i] = NULL;
439 }
440
441 if (pSmt->piSliceIndexInThread[i]) {
442 pMa->WelsFree (pSmt->piSliceIndexInThread[i], "pSmt->piSliceIndexInThread");
443 pSmt->piSliceIndexInThread[i] = NULL;
444 }
445 }425 }
446 memset (&pSmt->bThreadBsBufferUsage, 0, MAX_THREADS_NUM * sizeof (bool));426 memset (&pSmt->bThreadBsBufferUsage, 0, MAX_THREADS_NUM * sizeof (bool));
447 427

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t