ref: 6cb5e468d050dfc49775a43b1704c3316b38bb90
parent: 14725d43561724d2cc4bae1e85f7206aa7d8a527
author: Huade Shi (huashi) <[email protected]>
date: Tue Apr 11 09:52:13 EDT 2017
Slice buffer design:fixes partitionID/last code slice in partition buffer error issue
--- a/codec/encoder/core/src/svc_encode_slice.cpp
+++ b/codec/encoder/core/src/svc_encode_slice.cpp
@@ -1284,7 +1284,7 @@
return ENC_RETURN_SUCCESS;
}
- int32_t iPartitionID = pLastCodedSlice->iSliceIdx / pCtx->iActiveThreadsNum;
+ int32_t iPartitionID = pLastCodedSlice->iSliceIdx % pCtx->iActiveThreadsNum;
int32_t iMBNumInPatition = pCtx->pCurDqLayer->EndMbIdxOfPartition[iPartitionID]
- pCtx->pCurDqLayer->FirstMbIdxOfPartition[iPartitionID] + 1;
int32_t iLeftMBNum = pCtx->pCurDqLayer->EndMbIdxOfPartition[iPartitionID]
@@ -1302,9 +1302,10 @@
const int32_t kiDlayerIdx,
const int32_t KiSlcBuffIdx) {
int32_t iMaxSliceNum = pDqLayer->sSliceBufferInfo[KiSlcBuffIdx].iMaxSliceNum;
+ int32_t iCodedSliceNum = pDqLayer->sSliceBufferInfo[KiSlcBuffIdx].iCodedSliceNum;
int32_t iMaxSliceNumNew = 0;
int32_t iRet = 0;
- SSlice* pLastCodedSlice = &pDqLayer->sSliceBufferInfo[KiSlcBuffIdx].pSliceBuffer [iMaxSliceNum - 1];
+ SSlice* pLastCodedSlice = &pDqLayer->sSliceBufferInfo[KiSlcBuffIdx].pSliceBuffer [iCodedSliceNum - 1];
SSliceArgument* pSliceArgument = & pCtx->pSvcParam->sSpatialLayers[kiDlayerIdx].sSliceArgument;
iRet = CalculateNewSliceNum (pCtx,