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
113 }113 }
114 114
115 // InitOneSliceInThread();115 // InitOneSliceInThread();
116 m_pSlice = m_pCtx->pCurDqLayer->ppSliceInLayer[m_iSliceIdx];116 m_pSlice = &m_pCtx->pCurDqLayer->sSliceThreadInfo.pSliceInThread[0][m_iSliceIdx];
117 m_pSliceBs = &m_pSlice->sSliceBs;117 m_pSliceBs = &m_pSlice->sSliceBs;
118 118
119 m_pSliceBs->uiBsPos = 0;119 m_pSliceBs->uiBsPos = 0;
@@ -166,9 +166,9 @@ WelsErrorType CWelsSliceEncodingTask::ExecuteTask() { · 46 unmodified lines
166 }166 }
167 167
168 WelsLoadNalForSlice (m_pSliceBs, m_eNalType, m_eNalRefIdc);168 WelsLoadNalForSlice (m_pSliceBs, m_eNalType, m_eNalRefIdc);
169 SSlice* pCurSlice = m_pCtx->pCurDqLayer->ppSliceInLayer[m_iSliceIdx];169
170 assert (m_iSliceIdx == (int) pCurSlice->uiSliceIdx);170 assert (m_iSliceIdx == (int) m_pSlice->uiSliceIdx);
171 int32_t iReturn = WelsCodeOneSlice (m_pCtx, pCurSlice, m_eNalType);171 int32_t iReturn = WelsCodeOneSlice (m_pCtx, m_pSlice, m_eNalType);
172 if (ENC_RETURN_SUCCESS != iReturn) {172 if (ENC_RETURN_SUCCESS != iReturn) {
173 return iReturn;173 return iReturn;
174 }174 }
@@ -239,11 +239,11 @@ WelsErrorType CWelsConstrainedSizeSlicingEncodingTask::ExecuteTask() { · 64 unmodified lines
239 SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx;239 SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx;
240 const int32_t kiSliceIdxStep = m_pCtx->iActiveThreadsNum;240 const int32_t kiSliceIdxStep = m_pCtx->iActiveThreadsNum;
241 SSpatialLayerInternal* pParamInternal = &m_pCtx->pSvcParam->sDependencyLayers[m_pCtx->uiDependencyId];241 SSpatialLayerInternal* pParamInternal = &m_pCtx->pSvcParam->sDependencyLayers[m_pCtx->uiDependencyId];
242 SSliceHeaderExt* pStartSliceHeaderExt = &pCurDq->ppSliceInLayer[m_iSliceIdx]->sSliceHeaderExt;
243 const int32_t kiPartitionId = m_iSliceIdx % kiSliceIdxStep;242 const int32_t kiPartitionId = m_iSliceIdx % kiSliceIdxStep;
244 const int32_t kiFirstMbInPartition = pCurDq->pFirstMbIdxOfPartition[kiPartitionId];243 const int32_t kiFirstMbInPartition = pCurDq->pFirstMbIdxOfPartition[kiPartitionId];
245 const int32_t kiEndMbIdxInPartition = pCurDq->pEndMbIdxOfPartition[kiPartitionId];244 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;
247 pCurDq->pNumSliceCodedOfPartition[kiPartitionId] = 1;247 pCurDq->pNumSliceCodedOfPartition[kiPartitionId] = 1;
248 pCurDq->pLastCodedMbIdxOfPartition[kiPartitionId] = 0;248 pCurDq->pLastCodedMbIdxOfPartition[kiPartitionId] = 0;
249 249
@@ -261,7 +261,7 @@ WelsErrorType CWelsConstrainedSizeSlicingEncodingTask::ExecuteTask() { · 11 unmodified lines
261 return ENC_RETURN_KNOWN_ISSUE;261 return ENC_RETURN_KNOWN_ISSUE;
262 }262 }
263 263
264 m_pSlice = pCurDq->ppSliceInLayer[iLocalSliceIdx];264 m_pSlice = &pCurDq->sSliceThreadInfo.pSliceInThread[0][iLocalSliceIdx];
265 m_pSliceBs = &m_pSlice->sSliceBs;265 m_pSliceBs = &m_pSlice->sSliceBs;
266 266
267 m_pSliceBs->uiBsPos = 0;267 m_pSliceBs->uiBsPos = 0;
@@ -283,9 +283,9 @@ WelsErrorType CWelsConstrainedSizeSlicingEncodingTask::ExecuteTask() { · 15 unmodified lines
283 }283 }
284 284
285 WelsLoadNalForSlice (m_pSliceBs, m_eNalType, m_eNalRefIdc);285 WelsLoadNalForSlice (m_pSliceBs, m_eNalType, m_eNalRefIdc);
286 SSlice* pCurSlice = m_pCtx->pCurDqLayer->ppSliceInLayer[iLocalSliceIdx];286
287 assert (iLocalSliceIdx == (int) pCurSlice->uiSliceIdx);287 assert (iLocalSliceIdx == (int) m_pSlice->uiSliceIdx);
288 int32_t iReturn = WelsCodeOneSlice (m_pCtx, pCurSlice, m_eNalType);288 int32_t iReturn = WelsCodeOneSlice (m_pCtx, m_pSlice, m_eNalType);
289 if (ENC_RETURN_SUCCESS != iReturn) {289 if (ENC_RETURN_SUCCESS != iReturn) {
290 return iReturn;290 return iReturn;
291 }291 }

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