History

Multi-thread-fixed:RBC#1680:ppSliceInLayer instead of pSliceInLayer for all slice buffer management

huade committed 9 years ago

Commit 8ff579b1 parent 01e31ff11 files · +162 −153Browse files

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

Unified · Split

codec/encoder/core/src/svc_encode_slice.cpp+5−5
@@ -94,7 +94,7 @@ void WelsSliceHeaderExtInit (sWelsEncCtx* pEncCtx, SDqLayer* pCurLayer, SSlice* · 93 unmodified lines
9494
9595 pCurSliceExt->bStoreRefBasePicFlag = false;
9696
97− pCurSliceHeader->iFirstMbInSlice = WelsGetFirstMbOfSlice (pCurLayer->sLayerInfo.pSliceInLayer, pSlice->uiSliceIdx);
97+ pCurSliceHeader->iFirstMbInSlice = WelsGetFirstMbOfSlice (pCurLayer->ppSliceInLayer, pSlice->uiSliceIdx);
9898
9999 pCurSliceHeader->iFrameNum = pParamInternal->iFrameNum;
100100 pCurSliceHeader->uiIdrPicId = pParamInternal->uiIdrPicId;
@@ -915,7 +915,7 @@ void FreeSliceBuffer (SSlice*& pSliceList, const int32_t kiMaxSliceNum, CMemoryA · 814 unmodified lines
915915 int32_t WelsCodeOneSlice (sWelsEncCtx* pEncCtx, const int32_t kiSliceIdx, const int32_t kiNalType) {
916916 SDqLayer* pCurLayer = pEncCtx->pCurDqLayer;
917917 SNalUnitHeaderExt* pNalHeadExt = &pCurLayer->sLayerInfo.sNalHeaderExt;
918− SSlice* pCurSlice = &pCurLayer->sLayerInfo.pSliceInLayer[kiSliceIdx];
918+ SSlice* pCurSlice = pCurLayer->ppSliceInLayer[kiSliceIdx];
919919 SBitStringAux* pBs = pCurSlice->pSliceBsa;
920920 const int32_t kiDynamicSliceFlag =
921921 (pEncCtx->pSvcParam->sSpatialLayers[pEncCtx->uiDependencyId].sSliceArgument.uiSliceMode
@@ -974,7 +974,7 @@ void UpdateMbNeighbourInfoForNextSlice (SDqLayer* pCurDq, · 52 unmodified lines
974974 void AddSliceBoundary (sWelsEncCtx* pEncCtx, SSlice* pCurSlice, SSliceCtx* pSliceCtx, SMB* pCurMb,
975975 int32_t iFirstMbIdxOfNextSlice, const int32_t kiLastMbIdxInPartition) {
976976 SDqLayer* pCurLayer = pEncCtx->pCurDqLayer;
977− SSlice* pSliceInLayer = pCurLayer->sLayerInfo.pSliceInLayer;
977+ SSlice** ppSliceInLayer = pCurLayer->ppSliceInLayer;
978978 int32_t iCurMbIdx = pCurMb->iMbXY;
979979 uint16_t iCurSliceIdc = pSliceCtx->pOverallMbMap[ iCurMbIdx ];
980980 const int32_t kiSliceIdxStep = pEncCtx->iActiveThreadsNum;
@@ -987,7 +987,7 @@ void AddSliceBoundary (sWelsEncCtx* pEncCtx, SSlice* pCurSlice, SSliceCtx* pSlic · 6 unmodified lines
987987 pCurSlice->sSliceHeaderExt.uiNumMbsInSlice = 1 + iCurMbIdx - pCurSlice->sSliceHeaderExt.sSliceHeader.iFirstMbInSlice;
988988
989989 //pNextSlice pointer/initialization
990− pNextSlice = & (pCurLayer->sLayerInfo.pSliceInLayer[ iNextSliceIdc ]);
990+ pNextSlice = pCurLayer->ppSliceInLayer[ iNextSliceIdc ];
991991
992992 #if _DEBUG
993993 assert (NULL != pNextSlice);
@@ -999,7 +999,7 @@ void AddSliceBoundary (sWelsEncCtx* pEncCtx, SSlice* pCurSlice, SSliceCtx* pSlic · 5 unmodified lines
999999 (NAL_UNIT_CODED_SLICE_EXT == pCurLayer->sLayerInfo.sNalHeaderExt.sNalUnitHeader.eNalUnitType);
10001000 memcpy (&pNextSlice->sSliceHeaderExt, &pCurSlice->sSliceHeaderExt,
10011001 sizeof (SSliceHeaderExt)); // confirmed_safe_unsafe_usage
1002− pSliceInLayer[iNextSliceIdc].sSliceHeaderExt.sSliceHeader.iFirstMbInSlice = iFirstMbIdxOfNextSlice;
1002+ ppSliceInLayer[iNextSliceIdc]->sSliceHeaderExt.sSliceHeader.iFirstMbInSlice = iFirstMbIdxOfNextSlice;
10031003 WelsSetMemMultiplebytes_c (pSliceCtx->pOverallMbMap + iFirstMbIdxOfNextSlice, iNextSliceIdc,
10041004 (kiLastMbIdxInPartition - iFirstMbIdxOfNextSlice + 1), sizeof (uint16_t));
10051005

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