Showing the changes to codec/encoder/core/src/wels_task_encoder.cpp (1 of 5 files). Show all
Unified · Split
| @@ -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 | } |