History

Multi-thread-fixed:RBC#1721:replace ppSliceInLayer by pSliceInThread

huade committed 9 years ago

Commit 71750df1 parent c62e70d5 files · +58 −41Browse files

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

Unified · Split

codec/encoder/core/src/wels_task_encoder.cpp+10−10
@@ -113,7 +113,7 @@ WelsErrorType CWelsSliceEncodingTask::InitTask() { · 112 unmodified lines
113113 }
114114
115115 // InitOneSliceInThread();
116− m_pSlice = m_pCtx->pCurDqLayer->ppSliceInLayer[m_iSliceIdx];
116+ m_pSlice = &m_pCtx->pCurDqLayer->sSliceThreadInfo.pSliceInThread[0][m_iSliceIdx];
117117 m_pSliceBs = &m_pSlice->sSliceBs;
118118
119119 m_pSliceBs->uiBsPos = 0;
@@ -166,9 +166,9 @@ WelsErrorType CWelsSliceEncodingTask::ExecuteTask() { · 46 unmodified lines
166166 }
167167
168168 WelsLoadNalForSlice (m_pSliceBs, m_eNalType, m_eNalRefIdc);
169− SSlice* pCurSlice = m_pCtx->pCurDqLayer->ppSliceInLayer[m_iSliceIdx];
170− assert (m_iSliceIdx == (int) pCurSlice->uiSliceIdx);
171− int32_t iReturn = WelsCodeOneSlice (m_pCtx, pCurSlice, m_eNalType);
169+
170+ assert (m_iSliceIdx == (int) m_pSlice->uiSliceIdx);
171+ int32_t iReturn = WelsCodeOneSlice (m_pCtx, m_pSlice, m_eNalType);
172172 if (ENC_RETURN_SUCCESS != iReturn) {
173173 return iReturn;
174174 }
@@ -239,11 +239,11 @@ WelsErrorType CWelsConstrainedSizeSlicingEncodingTask::ExecuteTask() { · 64 unmodified lines
239239 SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx;
240240 const int32_t kiSliceIdxStep = m_pCtx->iActiveThreadsNum;
241241 SSpatialLayerInternal* pParamInternal = &m_pCtx->pSvcParam->sDependencyLayers[m_pCtx->uiDependencyId];
242− SSliceHeaderExt* pStartSliceHeaderExt = &pCurDq->ppSliceInLayer[m_iSliceIdx]->sSliceHeaderExt;
243242 const int32_t kiPartitionId = m_iSliceIdx % kiSliceIdxStep;
244243 const int32_t kiFirstMbInPartition = pCurDq->pFirstMbIdxOfPartition[kiPartitionId];
245244 const int32_t kiEndMbIdxInPartition = pCurDq->pEndMbIdxOfPartition[kiPartitionId];
246− pStartSliceHeaderExt->sSliceHeader.iFirstMbInSlice = kiFirstMbInPartition;
245+ m_pSlice = &pCurDq->sSliceThreadInfo.pSliceInThread[0][m_iSliceIdx];
246+ m_pSlice->sSliceHeaderExt.sSliceHeader.iFirstMbInSlice = kiFirstMbInPartition;
247247 pCurDq->pNumSliceCodedOfPartition[kiPartitionId] = 1;
248248 pCurDq->pLastCodedMbIdxOfPartition[kiPartitionId] = 0;
249249
@@ -261,7 +261,7 @@ WelsErrorType CWelsConstrainedSizeSlicingEncodingTask::ExecuteTask() { · 11 unmodified lines
261261 return ENC_RETURN_KNOWN_ISSUE;
262262 }
263263
264− m_pSlice = pCurDq->ppSliceInLayer[iLocalSliceIdx];
264+ m_pSlice = &pCurDq->sSliceThreadInfo.pSliceInThread[0][iLocalSliceIdx];
265265 m_pSliceBs = &m_pSlice->sSliceBs;
266266
267267 m_pSliceBs->uiBsPos = 0;
@@ -283,9 +283,9 @@ WelsErrorType CWelsConstrainedSizeSlicingEncodingTask::ExecuteTask() { · 15 unmodified lines
283283 }
284284
285285 WelsLoadNalForSlice (m_pSliceBs, m_eNalType, m_eNalRefIdc);
286− SSlice* pCurSlice = m_pCtx->pCurDqLayer->ppSliceInLayer[iLocalSliceIdx];
287− assert (iLocalSliceIdx == (int) pCurSlice->uiSliceIdx);
288− int32_t iReturn = WelsCodeOneSlice (m_pCtx, pCurSlice, m_eNalType);
286+
287+ assert (iLocalSliceIdx == (int) m_pSlice->uiSliceIdx);
288+ int32_t iReturn = WelsCodeOneSlice (m_pCtx, m_pSlice, m_eNalType);
289289 if (ENC_RETURN_SUCCESS != iReturn) {
290290 return iReturn;
291291 }

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