History

fixing OverallMbMap for slice_idx>255 and some log improvements

Sijia Chen committed 12 years ago

Commit 54c677c1 parent 08baf658 files · +87 −32Browse files

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

Unified · Split

codec/encoder/core/src/svc_encode_slice.cpp+9−6
@@ -776,7 +776,7 @@ void UpdateMbNeighbourInfoForNextSlice (SSliceCtx* pSliceCtx, · 775 unmodified lines
776776 bool bLeftTop;
777777 bool bRightTop;
778778 int32_t iLeftXY, iTopXY, iLeftTopXY, iRightTopXY;
779− const uint8_t kuiSliceIdc = WelsMbToSliceIdc (pSliceCtx, kiMbXY);
779+ const uint16_t kuiSliceIdc = WelsMbToSliceIdc (pSliceCtx, kiMbXY);
780780
781781 pMb->uiSliceIdc = kuiSliceIdc;
782782 iLeftXY = kiMbXY - 1;
@@ -814,9 +814,9 @@ void AddSliceBoundary (sWelsEncCtx* pEncCtx, SSlice* pCurSlice, SSliceCtx* pSlic · 31 unmodified lines
814814 int32_t iFirstMbIdxOfNextSlice, const int32_t kiLastMbIdxInPartition) {
815815 SDqLayer* pCurLayer = pEncCtx->pCurDqLayer;
816816 int32_t iCurMbIdx = pCurMb->iMbXY;
817− int32_t iCurSliceIdc = pSliceCtx->pOverallMbMap[ iCurMbIdx ];
817+ uint16_t iCurSliceIdc = pSliceCtx->pOverallMbMap[ iCurMbIdx ];
818818 const int32_t kiSliceIdxStep = pEncCtx->iActiveThreadsNum;
819− int32_t iNextSliceIdc = iCurSliceIdc + kiSliceIdxStep;
819+ uint16_t iNextSliceIdc = iCurSliceIdc + kiSliceIdxStep;
820820 SSlice* pNextSlice = NULL;
821821
822822 SMB* pMbList = pCurLayer->sMbDataP;
@@ -839,9 +839,8 @@ void AddSliceBoundary (sWelsEncCtx* pEncCtx, SSlice* pCurSlice, SSliceCtx* pSlic · 16 unmodified lines
839839 sizeof (SSliceHeaderExt)); // confirmed_safe_unsafe_usage
840840
841841 pSliceCtx->pFirstMbInSlice[iNextSliceIdc] = iFirstMbIdxOfNextSlice;
842−
843− memset (pSliceCtx->pOverallMbMap + iFirstMbIdxOfNextSlice, (uint8_t)iNextSliceIdc,
844− (kiLastMbIdxInPartition - iFirstMbIdxOfNextSlice + 1)*sizeof (uint8_t));
842+ WelsSetMemMultiplebytes_c (pSliceCtx->pOverallMbMap + iFirstMbIdxOfNextSlice, iNextSliceIdc,
843+ (kiLastMbIdxInPartition - iFirstMbIdxOfNextSlice + 1), sizeof(uint16_t));
845844
846845 //DYNAMIC_SLICING_ONE_THREAD: update pMbList slice_neighbor_info
847846 UpdateMbNeighbourInfoForNextSlice (pSliceCtx, pMbList, iFirstMbIdxOfNextSlice, kiLastMbIdxInPartition);
@@ -875,6 +874,10 @@ bool DynSlcJudgeSliceBoundaryStepBack (void* pCtx, void* pSlice, SSliceCtx* pSli · 27 unmodified lines
875874 && JUMPPACKETSIZE_JUDGE (uiLen, iCurMbIdx, pSliceCtx->uiSliceSizeConstraint)) /*jump_avoiding_pack_exceed*/
876875 && kbCurMbNotLastMbOfCurPartition) { //decide to add new pSlice
877876
877+ WelsLog (&pEncCtx->sLogCtx, WELS_LOG_DETAIL,
878+ "DynSlcJudgeSliceBoundaryStepBack: AddSliceBoundary: iCurMbIdx=%d, uiLen=%d, uiSliceIdx=%d", iCurMbIdx, uiLen,
879+ pCurSlice->uiSliceIdx);
880+
878881 if (pEncCtx->pSvcParam->iMultipleThreadIdc > 1) {
879882 WelsMutexLock (&pEncCtx->pSliceThreading->mutexSliceNumUpdate);
880883 //lock the acessing to this variable: pSliceCtx->iSliceNumInFrame

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