History

remove pCountMbNumInSlice from SSliceCtx

huade committed 10 years ago

Commit d02addd1 parent 60f36eb8 files · +40 −72Browse files

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

Unified · Split

codec/encoder/core/src/encoder_ext.cpp+6−21
@@ -2766,18 +2766,18 @@ void UpdateSlicepEncCtxWithPartition (SDqLayer* pCurDq, int32_t iPartitionNum) { · 2765 unmodified lines
27662766 i = 0;
27672767 while (i < iPartitionNum) {
27682768 if (i + 1 == iPartitionNum) {
2769− pSliceCtx->pCountMbNumInSlice[i] = iAssignableMbLeft;
2769+ pSliceInLayer[i].iCountMbNumInSlice = iAssignableMbLeft;
27702770 } else {
2771− pSliceCtx->pCountMbNumInSlice[i] = iCountMbNumPerPartition;
2771+ pSliceInLayer[i].iCountMbNumInSlice = iCountMbNumPerPartition;
27722772 }
27732773 pSliceInLayer[i].sSliceHeaderExt.sSliceHeader.iFirstMbInSlice = iFirstMbIdx;
27742774
27752775 WelsSetMemMultiplebytes_c (pSliceCtx->pOverallMbMap + iFirstMbIdx, i,
2776− pSliceCtx->pCountMbNumInSlice[i], sizeof (uint16_t));
2776+ pSliceInLayer[i].iCountMbNumInSlice, sizeof (uint16_t));
27772777
27782778 // for next partition(or pSlice)
2779− iFirstMbIdx += pSliceCtx->pCountMbNumInSlice[i];
2780− iAssignableMbLeft -= pSliceCtx->pCountMbNumInSlice[i];
2779+ iFirstMbIdx += pSliceInLayer[i].iCountMbNumInSlice;
2780+ iAssignableMbLeft -= pSliceInLayer[i].iCountMbNumInSlice;
27812781 ++ i;
27822782 }
27832783 }
@@ -4803,21 +4803,6 @@ int32_t DynSliceRealloc (sWelsEncCtx* pCtx, · 2019 unmodified lines
48034803 }
48044804 pMA->WelsFree (pCurLayer->sLayerInfo.pSliceInLayer, "Slice");
48054805 pCurLayer->sLayerInfo.pSliceInLayer = pSlice;
4806− int32_t* pCountMbNumInSlice = (int32_t*)pMA->WelsMalloc (iMaxSliceNum * sizeof (int32_t),
4807− "pSliceSeg->pCountMbNumInSlice");
4808− if (NULL == pCountMbNumInSlice) {
4809− WelsLog (& (pCtx->sLogCtx), WELS_LOG_ERROR,
4810− "CWelsH264SVCEncoder::DynSliceRealloc: realloc pCountMbNumInSlice not successful");
4811− return ENC_RETURN_MEMALLOCERR;
4812− }
4813− memcpy (pCountMbNumInSlice, pCurLayer->sSliceEncCtx.pCountMbNumInSlice, sizeof (int32_t) * iMaxSliceNumOld);
4814− uiSliceIdx = iMaxSliceNumOld;
4815− while (uiSliceIdx < iMaxSliceNum) {
4816− pCountMbNumInSlice[uiSliceIdx] = pCurLayer->sSliceEncCtx.iMbNumInFrame;
4817− uiSliceIdx++;
4818− }
4819− pMA->WelsFree (pCurLayer->sSliceEncCtx.pCountMbNumInSlice, "pSliceSeg->pCountMbNumInSlice");
4820− pCurLayer->sSliceEncCtx.pCountMbNumInSlice = pCountMbNumInSlice;
48214806
48224807 //deal with rate control variables
48234808 const int32_t kiCurDid = pCtx->uiDependencyId;
@@ -4837,7 +4822,7 @@ int32_t DynSliceRealloc (sWelsEncCtx* pCtx, · 13 unmodified lines
48374822 pSORC->iCalculatedQpSlice = pCtx->iGlobalQp;
48384823 pSORC->iTotalQpSlice = 0;
48394824 pSORC->iTotalMbSlice = 0;
4840− pSORC->iTargetBitsSlice = WELS_DIV_ROUND (kiBitsPerMb * pCurLayer->sSliceEncCtx.pCountMbNumInSlice[uiSliceIdx],
4825+ pSORC->iTargetBitsSlice = WELS_DIV_ROUND (kiBitsPerMb * pCurLayer->sLayerInfo.pSliceInLayer[uiSliceIdx].iCountMbNumInSlice,
48414826 INT_MULTIPLY);
48424827 pSORC->iFrameBitsSlice = 0;
48434828 pSORC->iGomBitsSlice = 0;

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