History

Refactoring: Wrap all the operations related to eSpsPpsIdStrategy to class, to improve code readability

sijchen committed 10 years ago

Commit ffb85041 parent c30cc4114 files · +1126 −494Browse files

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

Unified · Split

codec/encoder/core/src/svc_encode_slice.cpp+7−19
@@ -52,7 +52,7 @@ namespace WelsEnc { · 51 unmodified lines
5252
5353 typedef int32_t (*PWelsCodingSliceFunc) (sWelsEncCtx* pCtx, SSlice* pSlice);
5454 typedef void (*PWelsSliceHeaderWriteFunc) (sWelsEncCtx* pCtx, SBitStringAux* pBs, SDqLayer* pCurLayer, SSlice* pSlice,
55− int32_t* pPpsIdDelta);
55+ IWelsParametersetStrategy* pParametersetStrategy);
5656
5757 void UpdateNonZeroCountCache (SMB* pMb, SMbCache* pMbCache) {
5858 ST32 (&pMbCache->iNonZeroCoeffCount[9], LD32 (&pMb->pNonZeroCount[ 0]));
@@ -276,7 +276,7 @@ void WriteRefPicMarking (SBitStringAux* pBs, SSliceHeader* pSliceHeader, SNalUni · 217 unmodified lines
276276 }
277277
278278 void WelsSliceHeaderWrite (sWelsEncCtx* pCtx, SBitStringAux* pBs, SDqLayer* pCurLayer, SSlice* pSlice,
279− int32_t* pPpsIdDelta) {
279+ IWelsParametersetStrategy* pParametersetStrategy) {
280280 SWelsSPS* pSps = pCurLayer->sLayerInfo.pSpsP;
281281 SWelsPPS* pPps = pCurLayer->sLayerInfo.pPpsP;
282282 SSliceHeader* pSliceHeader = &pSlice->sSliceHeaderExt.sSliceHeader;
@@ -285,7 +285,7 @@ void WelsSliceHeaderWrite (sWelsEncCtx* pCtx, SBitStringAux* pBs, SDqLayer* pCur · 2 unmodified lines
285285 BsWriteUE (pBs, pSliceHeader->iFirstMbInSlice);
286286 BsWriteUE (pBs, pSliceHeader->eSliceType); /* same type things */
287287
288− BsWriteUE (pBs, pSliceHeader->pPps->iPpsId + ((pPpsIdDelta != NULL) ? pPpsIdDelta[pSliceHeader->pPps->iPpsId] : 0));
288+ BsWriteUE (pBs, pSliceHeader->pPps->iPpsId + pParametersetStrategy->GetPpsIdOffset (pSliceHeader->pPps->iPpsId));
289289
290290 BsWriteBits (pBs, pSps->uiLog2MaxFrameNum, pSliceHeader->iFrameNum);
291291
@@ -342,7 +342,7 @@ void WelsSliceHeaderWrite (sWelsEncCtx* pCtx, SBitStringAux* pBs, SDqLayer* pCur · 50 unmodified lines
342342 }
343343
344344 void WelsSliceHeaderExtWrite (sWelsEncCtx* pCtx, SBitStringAux* pBs, SDqLayer* pCurLayer, SSlice* pSlice,
345− int32_t* pPpsIdDelta) {
345+ IWelsParametersetStrategy* pParametersetStrategy) {
346346 SWelsSPS* pSps = pCurLayer->sLayerInfo.pSpsP;
347347 SWelsPPS* pPps = pCurLayer->sLayerInfo.pPpsP;
348348 SSubsetSps* pSubSps = pCurLayer->sLayerInfo.pSubsetSpsP;
@@ -353,7 +353,8 @@ void WelsSliceHeaderExtWrite (sWelsEncCtx* pCtx, SBitStringAux* pBs, SDqLayer* p · 4 unmodified lines
353353 BsWriteUE (pBs, pSliceHeader->iFirstMbInSlice);
354354 BsWriteUE (pBs, pSliceHeader->eSliceType); /* same type things */
355355
356− BsWriteUE (pBs, pSliceHeader->pPps->iPpsId + ((pPpsIdDelta != NULL) ? pPpsIdDelta[pSliceHeader->pPps->iPpsId] : 0));
356+ BsWriteUE (pBs, pSliceHeader->pPps->iPpsId +
357+ pParametersetStrategy->GetPpsIdOffset (pSliceHeader->pPps->iPpsId));
357358
358359 BsWriteBits (pBs, pSps->uiLog2MaxFrameNum, pSliceHeader->iFrameNum);
359360
@@ -926,20 +927,7 @@ int32_t WelsCodeOneSlice (sWelsEncCtx* pEncCtx, const int32_t kiSliceIdx, const · 566 unmodified lines
926927 WelsSliceHeaderExtInit (pEncCtx, pCurLayer, pCurSlice);
927928
928929 g_pWelsWriteSliceHeader[pCurSlice->bSliceHeaderExtFlag] (pEncCtx, pBs, pCurLayer, pCurSlice,
929− ((SPS_PPS_LISTING != pEncCtx->pSvcParam->eSpsPpsIdStrategy) ? (&
930− (pEncCtx->sPSOVector.sParaSetOffsetVariable[PARA_SET_TYPE_PPS].iParaSetIdDelta[0])) : NULL));
931−
932−#if _DEBUG
933− if (INCREASING_ID & pEncCtx->sPSOVector.eSpsPpsIdStrategy) {
934− const int32_t kiEncoderPpsId = pCurSlice->sSliceHeaderExt.sSliceHeader.pPps->iPpsId;
935− const int32_t kiTmpPpsIdInBs = kiEncoderPpsId +
936− pEncCtx->sPSOVector.sParaSetOffsetVariable[PARA_SET_TYPE_PPS].iParaSetIdDelta[ kiEncoderPpsId ];
937− assert (MAX_PPS_COUNT > kiTmpPpsIdInBs);
938−
939− //when activated need to sure there is avialable PPS
940− assert (pEncCtx->sPSOVector.sParaSetOffsetVariable[PARA_SET_TYPE_PPS].bUsedParaSetIdInBs[kiTmpPpsIdInBs]);
941− }
942−#endif
930+ pEncCtx->pFuncList->pParametersetStrategy);
943931
944932 pCurSlice->uiLastMbQp = pCurLayer->sLayerInfo.pPpsP->iPicInitQp + pCurSlice->sSliceHeaderExt.sSliceHeader.iSliceQpDelta;
945933

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