MCPcopy Create free account
hub / github.com/cisco/openh264 / InitTask

Method InitTask

codec/encoder/core/src/wels_task_encoder.cpp:97–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95}
96
97WelsErrorType CWelsSliceEncodingTask::InitTask() {
98 m_eNalType = m_pCtx->eNalType;
99 m_eNalRefIdc = m_pCtx->eNalPriority;
100 m_bNeedPrefix = m_pCtx->bNeedPrefixNalFlag;
101
102 WelsMutexLock (&m_pCtx->pSliceThreading->mutexThreadBsBufferUsage);
103 m_iThreadIdx = QueryEmptyThread (m_pCtx->pSliceThreading->bThreadBsBufferUsage);
104 WelsMutexUnlock (&m_pCtx->pSliceThreading->mutexThreadBsBufferUsage);
105
106 WelsLog (&m_pCtx->sLogCtx, WELS_LOG_DEBUG,
107 "[MT] CWelsSliceEncodingTask()InitTask for m_iSliceIdx %d, lock thread %d",
108 m_iSliceIdx, m_iThreadIdx);
109 if (m_iThreadIdx < 0) {
110 WelsLog (&m_pCtx->sLogCtx, WELS_LOG_WARNING,
111 "[MT] CWelsSliceEncodingTask InitTask(), Cannot find available thread for m_iSliceIdx = %d", m_iSliceIdx);
112 return ENC_RETURN_UNEXPECTED;
113 }
114
115 int32_t iReturn = InitOneSliceInThread (m_pCtx, m_pSlice, m_iThreadIdx, m_pCtx->uiDependencyId, m_iSliceIdx);
116 WELS_VERIFY_RETURN_IFNEQ (iReturn, ENC_RETURN_SUCCESS)
117 m_pSliceBs = &m_pSlice->sSliceBs;
118
119 iReturn = SetSliceBoundaryInfo (m_pCtx->pCurDqLayer, m_pSlice, m_iSliceIdx);
120 WELS_VERIFY_RETURN_IFNEQ (iReturn, ENC_RETURN_SUCCESS)
121
122 SetOneSliceBsBufferUnderMultithread (m_pCtx, m_iThreadIdx, m_pSlice);
123
124 assert ((void*) (&m_pSliceBs->sBsWrite) == (void*)m_pSlice->pSliceBsa);
125 InitBits (&m_pSliceBs->sBsWrite, m_pSliceBs->pBsBuffer, m_pSliceBs->uiSize);
126 //printf ("CWelsSliceEncodingTask_InitTask slice %d\n", m_iSliceIdx);
127
128 return ENC_RETURN_SUCCESS;
129}
130
131void CWelsSliceEncodingTask::FinishTask() {
132 WelsMutexLock (&m_pCtx->pSliceThreading->mutexThreadBsBufferUsage);

Callers

nothing calls this directly

Calls 8

WelsMutexLockFunction · 0.85
WelsMutexUnlockFunction · 0.85
WelsLogFunction · 0.85
InitOneSliceInThreadFunction · 0.85
SetSliceBoundaryInfoFunction · 0.85
InitBitsFunction · 0.85
WelsTimeFunction · 0.85

Tested by

no test coverage detected