History

remove RC enable flag, use RC Mode to indicate RC on or off

volvet committed 12 years ago

Commit d98ba611 parent 501c77f12 files · +40 −44Browse files

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

Unified · Split

codec/encoder/core/src/encoder_ext.cpp+8−9
@@ -231,7 +231,7 @@ int32_t ParamValidationExt (sWelsEncCtx*pCtx,SWelsSvcCodingParam* pCodingParam) · 230 unmodified lines
231 fDlp->sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;231 fDlp->sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;
232 break;232 break;
233 }233 }
234 if (pCodingParam->bEnableRc) { // multiple slices verify with gom234 if (pCodingParam->iRCMode != RC_OFF_MODE) { // multiple slices verify with gom
235 //check uiSliceNum235 //check uiSliceNum
236 GomValidCheckSliceNum (iMbWidth, iMbHeight, &fDlp->sSliceCfg.sSliceArgument.uiSliceNum);236 GomValidCheckSliceNum (iMbWidth, iMbHeight, &fDlp->sSliceCfg.sSliceArgument.uiSliceNum);
237 assert (fDlp->sSliceCfg.sSliceArgument.uiSliceNum > 1);237 assert (fDlp->sSliceCfg.sSliceArgument.uiSliceNum > 1);
@@ -285,7 +285,7 @@ int32_t ParamValidationExt (sWelsEncCtx*pCtx,SWelsSvcCodingParam* pCodingParam) · 47 unmodified lines
285 fDlp->sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;285 fDlp->sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;
286 break;286 break;
287 }287 }
288 if (pCodingParam->bEnableRc && fDlp->sSliceCfg.sSliceArgument.uiSliceNum > 1) {288 if ((pCodingParam->iRCMode!=RC_OFF_MODE) && fDlp->sSliceCfg.sSliceArgument.uiSliceNum > 1) {
289 WelsLog (pCtx, WELS_LOG_ERROR, "ParamValidationExt(), WARNING: GOM based RC do not support SM_RASTER_SLICE!\n");289 WelsLog (pCtx, WELS_LOG_ERROR, "ParamValidationExt(), WARNING: GOM based RC do not support SM_RASTER_SLICE!\n");
290 }290 }
291 // considering the coding efficient and performance, iCountMbNum constraint by MIN_NUM_MB_PER_SLICE condition of multi-pSlice mode settting291 // considering the coding efficient and performance, iCountMbNum constraint by MIN_NUM_MB_PER_SLICE condition of multi-pSlice mode settting
@@ -853,7 +853,7 @@ static inline int32_t InitDqLayers (sWelsEncCtx** ppCtx) { · 561 unmodified lines
853 // Need port pSps/pPps initialization due to spatial scalability changed853 // Need port pSps/pPps initialization due to spatial scalability changed
854 if (!bUseSubsetSps) {854 if (!bUseSubsetSps) {
855 WelsInitSps (pSps, pDlayerParam, pParam->uiIntraPeriod, pParam->iNumRefFrame, iSpsId,855 WelsInitSps (pSps, pDlayerParam, pParam->uiIntraPeriod, pParam->iNumRefFrame, iSpsId,
856 pParam->bEnableFrameCroppingFlag, pParam->bEnableRc);856 pParam->bEnableFrameCroppingFlag, pParam->iRCMode != RC_OFF_MODE);
857 857
858 if (iDlayerCount > 1) {858 if (iDlayerCount > 1) {
859 pSps->bConstraintSet0Flag = true;859 pSps->bConstraintSet0Flag = true;
@@ -862,7 +862,7 @@ static inline int32_t InitDqLayers (sWelsEncCtx** ppCtx) { · 2 unmodified lines
862 }862 }
863 } else {863 } else {
864 WelsInitSubsetSps (pSubsetSps, pDlayerParam, pParam->uiIntraPeriod, pParam->iNumRefFrame, iSpsId,864 WelsInitSubsetSps (pSubsetSps, pDlayerParam, pParam->uiIntraPeriod, pParam->iNumRefFrame, iSpsId,
865 pParam->bEnableFrameCroppingFlag, pParam->bEnableRc);865 pParam->bEnableFrameCroppingFlag, pParam->iRCMode!=RC_OFF_MODE);
866 }866 }
867 867
868 // initialize pPps868 // initialize pPps
@@ -1674,7 +1674,7 @@ int32_t InitSliceSettings (SWelsSvcCodingParam* pCodingParam, const int32_t kiCp · 805 unmodified lines
1674 if (iSliceNum > iMaxSliceCount)1674 if (iSliceNum > iMaxSliceCount)
1675 iMaxSliceCount = iSliceNum;1675 iMaxSliceCount = iSliceNum;
1676 // need perform check due uiSliceNum might change, although has been initialized somewhere outside1676 // need perform check due uiSliceNum might change, although has been initialized somewhere outside
1677 if (pCodingParam->bEnableRc) {1677 if (pCodingParam->iRCMode!=RC_OFF_MODE) {
1678 GomValidCheckSliceMbNum (kiMbWidth, kiMbHeight, pSlcArg);1678 GomValidCheckSliceMbNum (kiMbWidth, kiMbHeight, pSlcArg);
1679 } else {1679 } else {
1680 CheckFixedSliceNumMultiSliceSetting (kiMbNumInFrame, pSlcArg);1680 CheckFixedSliceNumMultiSliceSetting (kiMbNumInFrame, pSlcArg);
@@ -1705,7 +1705,7 @@ int32_t InitSliceSettings (SWelsSvcCodingParam* pCodingParam, const int32_t kiCp · 24 unmodified lines
1705 pDlp->sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;1705 pDlp->sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;
1706 break;1706 break;
1707 }1707 }
1708 if (pCodingParam->bEnableRc) { // multiple slices verify with gom1708 if (pCodingParam->iRCMode != RC_OFF_MODE) { // multiple slices verify with gom
1709 //check uiSliceNum1709 //check uiSliceNum
1710 GomValidCheckSliceNum (kiMbWidth, kiMbHeight, &pDlp->sSliceCfg.sSliceArgument.uiSliceNum);1710 GomValidCheckSliceNum (kiMbWidth, kiMbHeight, &pDlp->sSliceCfg.sSliceArgument.uiSliceNum);
1711 assert (pDlp->sSliceCfg.sSliceArgument.uiSliceNum > 1);1711 assert (pDlp->sSliceCfg.sSliceArgument.uiSliceNum > 1);
@@ -1922,7 +1922,7 @@ int32_t WelsInitEncoderExt (sWelsEncCtx** ppCtx, SWelsSvcCodingParam* pCodingPar · 210 unmodified lines
1922 if (pCodingParam->iMultipleThreadIdc > 1)1922 if (pCodingParam->iMultipleThreadIdc > 1)
1923 iRet = CreateSliceThreads (pCtx);1923 iRet = CreateSliceThreads (pCtx);
1924 1924
1925 WelsRcInitModule (pCtx, pCtx->pSvcParam->bEnableRc ? WELS_RC_GOM : WELS_RC_DISABLE);1925 WelsRcInitModule (pCtx, pCtx->pSvcParam->iRCMode!=RC_OFF_MODE ? WELS_RC_GOM : WELS_RC_DISABLE);
1926 1926
1927 pCtx->pVpp = new CWelsPreProcess (pCtx);1927 pCtx->pVpp = new CWelsPreProcess (pCtx);
1928 if (pCtx->pVpp == NULL) {1928 if (pCtx->pVpp == NULL) {
@@ -2194,7 +2194,7 @@ void WelsInitCurrentDlayerMltslc (sWelsEncCtx* pCtx, int32_t iPartitionNum) { · 265 unmodified lines
2194 uint8_t iCurDid = pCtx->uiDependencyId;2194 uint8_t iCurDid = pCtx->uiDependencyId;
2195 uint32_t uiFrmByte = 0;2195 uint32_t uiFrmByte = 0;
2196 2196
2197 if (pCtx->pSvcParam->bEnableRc) {2197 if (pCtx->pSvcParam->iRCMode != RC_OFF_MODE) {
2198 //RC case2198 //RC case
2199 uiFrmByte = (2199 uiFrmByte = (
2200 ((uint32_t) (pCtx->pSvcParam->sDependencyLayers[iCurDid].iSpatialBitrate)2200 ((uint32_t) (pCtx->pSvcParam->sDependencyLayers[iCurDid].iSpatialBitrate)
@@ -3475,7 +3475,6 @@ int32_t WelsEncoderParamAdjust (sWelsEncCtx** ppCtx, SWelsSvcCodingParam* pNewPa · 1274 unmodified lines
3475 pOldParam->iLoopFilterBetaOffset = pNewParam->iLoopFilterBetaOffset; // BetaOffset: valid range [-6, 6], default 03475 pOldParam->iLoopFilterBetaOffset = pNewParam->iLoopFilterBetaOffset; // BetaOffset: valid range [-6, 6], default 0
3476 3476
3477 /* Rate Control */3477 /* Rate Control */
3478 pOldParam->bEnableRc = pNewParam->bEnableRc;
3479 pOldParam->iRCMode = pNewParam->iRCMode;3478 pOldParam->iRCMode = pNewParam->iRCMode;
3480 pOldParam->iTargetBitrate = pNewParam->iTargetBitrate; // overall target bitrate introduced in RC module3479 pOldParam->iTargetBitrate = pNewParam->iTargetBitrate; // overall target bitrate introduced in RC module
3481 pOldParam->iPaddingFlag = pNewParam->iPaddingFlag;3480 pOldParam->iPaddingFlag = pNewParam->iPaddingFlag;

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