History

move strategy related pointer to class

sijchen committed 10 years ago

Commit 00747541 parent f623aa36 files · +136 −37Browse files

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

Unified · Split

codec/encoder/core/src/encoder_ext.cpp+11−4
@@ -1983,6 +1983,9 @@ int32_t RequestMemorySvc (sWelsEncCtx** ppCtx, SExistingParasetList* pExistingPa · 1982 unmodified lines
1983 return 1;1983 return 1;
1984 }1984 }
1985 1985
1986 (*ppCtx)->pReferenceStrategy = IWelsReferenceStrategy::CreateReferenceStrategy((*ppCtx), pParam->iUsageType, pParam->bEnableLongTermReference);
1987 WELS_VERIFY_RETURN_PROC_IF (1, (NULL == (*ppCtx)->pReferenceStrategy), FreeMemorySvc (ppCtx))
1988
1986 (*ppCtx)->pIntra4x4PredModeBlocks = static_cast<int8_t*>1989 (*ppCtx)->pIntra4x4PredModeBlocks = static_cast<int8_t*>
1987 (pMa->WelsMallocz (iCountMaxMbNum * INTRA_4x4_MODE_NUM, "pIntra4x4PredModeBlocks"));1990 (pMa->WelsMallocz (iCountMaxMbNum * INTRA_4x4_MODE_NUM, "pIntra4x4PredModeBlocks"));
1988 WELS_VERIFY_RETURN_PROC_IF (1, (NULL == (*ppCtx)->pIntra4x4PredModeBlocks), FreeMemorySvc (ppCtx))1991 WELS_VERIFY_RETURN_PROC_IF (1, (NULL == (*ppCtx)->pIntra4x4PredModeBlocks), FreeMemorySvc (ppCtx))
@@ -2171,6 +2174,10 @@ void FreeMemorySvc (sWelsEncCtx** ppCtx) { · 182 unmodified lines
2171 if (pParam != NULL && pParam->iMultipleThreadIdc > 1)2174 if (pParam != NULL && pParam->iMultipleThreadIdc > 1)
2172 ReleaseMtResource (ppCtx);2175 ReleaseMtResource (ppCtx);
2173 2176
2177 if (NULL != pCtx->pReferenceStrategy) {
2178 WELS_DELETE_OP(pCtx->pReferenceStrategy);
2179 }
2180
2174 // frame bitstream pBuffer2181 // frame bitstream pBuffer
2175 if (NULL != pCtx->pFrameBs) {2182 if (NULL != pCtx->pFrameBs) {
2176 pMa->WelsFree (pCtx->pFrameBs, "pFrameBs");2183 pMa->WelsFree (pCtx->pFrameBs, "pFrameBs");
@@ -4013,8 +4020,8 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour · 1836 unmodified lines
4013 4020
4014 WelsInitCurrentLayer (pCtx, iCurWidth, iCurHeight);4021 WelsInitCurrentLayer (pCtx, iCurWidth, iCurHeight);
4015 4022
4016 pCtx->pFuncList->pMarkPic (pCtx);4023 pCtx->pReferenceStrategy->MarkPic ();
4017 if (!pCtx->pFuncList->pBuildRefList (pCtx, pParamInternal->iPOC, 0)) {4024 if (!pCtx->pReferenceStrategy->BuildRefList (pParamInternal->iPOC, 0)) {
4018 WelsLog (pLogCtx, WELS_LOG_WARNING,4025 WelsLog (pLogCtx, WELS_LOG_WARNING,
4019 "WelsEncoderEncodeExt(), WelsBuildRefList failed for P frames, pCtx->iNumRef0= %d. ForceCodingIDR!",4026 "WelsEncoderEncodeExt(), WelsBuildRefList failed for P frames, pCtx->iNumRef0= %d. ForceCodingIDR!",
4020 pCtx->iNumRef0);4027 pCtx->iNumRef0);
@@ -4023,7 +4030,7 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour · 2 unmodified lines
4023 break;4030 break;
4024 }4031 }
4025 if (pCtx->eSliceType != I_SLICE) {4032 if (pCtx->eSliceType != I_SLICE) {
4026 pCtx->pFuncList->pAfterBuildRefList (pCtx);4033 pCtx->pReferenceStrategy->AfterBuildRefList ();
4027 }4034 }
4028#ifdef LONG_TERM_REF_DUMP4035#ifdef LONG_TERM_REF_DUMP
4029 DumpRef (pCtx);4036 DumpRef (pCtx);
@@ -4277,7 +4284,7 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour · 247 unmodified lines
4277 4284
4278 // reference picture list update4285 // reference picture list update
4279 if (eNalRefIdc != NRI_PRI_LOWEST) {4286 if (eNalRefIdc != NRI_PRI_LOWEST) {
4280 if (!pCtx->pFuncList->pUpdateRefList (pCtx)) {4287 if (!pCtx->pReferenceStrategy->UpdateRefList ()) {
4281 WelsLog (pLogCtx, WELS_LOG_WARNING, "WelsEncoderEncodeExt(), WelsUpdateRefList failed. ForceCodingIDR!");4288 WelsLog (pLogCtx, WELS_LOG_WARNING, "WelsEncoderEncodeExt(), WelsUpdateRefList failed. ForceCodingIDR!");
4282 //the above is to set the next frame to be IDR4289 //the above is to set the next frame to be IDR
4283 pCtx->iEncoderError = ENC_RETURN_CORRECTED;4290 pCtx->iEncoderError = ENC_RETURN_CORRECTED;

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