History

add UNSPECIFIED value for max bit rate setting

Sijia Chen committed 11 years ago

Commit 0b2c82d1 parent 810b9773 files · +19 −3Browse files

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

Unified · Split

codec/encoder/core/src/encoder_ext.cpp+15−1
@@ -494,6 +494,20 @@ void WelsEncoderApplyBitRate (SLogContext* pLogCtx, SWelsSvcCodingParam* pParam, · 493 unmodified lines
494 pLayerParam = & (pParam->sSpatialLayers[i]);494 pLayerParam = & (pParam->sSpatialLayers[i]);
495 fRatio = pLayerParam->iSpatialBitrate / (static_cast<float> (iOrigTotalBitrate));495 fRatio = pLayerParam->iSpatialBitrate / (static_cast<float> (iOrigTotalBitrate));
496 pLayerParam->iSpatialBitrate = static_cast<int32_t> (pParam->iTargetBitrate * fRatio);496 pLayerParam->iSpatialBitrate = static_cast<int32_t> (pParam->iTargetBitrate * fRatio);
497 if ( UNSPECIFIED_BIT_RATE != pLayerParam->iMaxSpatialBitrate && pLayerParam->iSpatialBitrate > pLayerParam->iMaxSpatialBitrate ) {
498 WelsLog (pLogCtx, WELS_LOG_WARNING,
499 "WelsEncoderApplyBitRate(), iSpatialBitrate(%d) > iMaxSpatialBitrate(%d) at Layer %d, limiting iSpatialBitrate to iMaxSpatialBitrate!",
500 pLayerParam->iSpatialBitrate, pLayerParam->iMaxSpatialBitrate, iLayer);
501 pLayerParam->iSpatialBitrate = pLayerParam->iMaxSpatialBitrate;
502 }
503 }
504 } else {
505 SSpatialLayerConfig* pLayerParam = & (pParam->sSpatialLayers[iLayer]);
506 if ( UNSPECIFIED_BIT_RATE != pLayerParam->iMaxSpatialBitrate && pLayerParam->iSpatialBitrate > pLayerParam->iMaxSpatialBitrate ) {
507 WelsLog (pLogCtx, WELS_LOG_WARNING,
508 "WelsEncoderApplyBitRate(), iSpatialBitrate(%d) > iMaxSpatialBitrate(%d) at Layer %d, limiting iSpatialBitrate to iMaxSpatialBitrate!",
509 pLayerParam->iSpatialBitrate, pLayerParam->iMaxSpatialBitrate, iLayer);
510 pLayerParam->iSpatialBitrate = pLayerParam->iMaxSpatialBitrate;
497 }511 }
498 }512 }
499}513}
@@ -3005,7 +3019,7 @@ bool CheckFrameSkipBasedMaxbr (sWelsEncCtx* pCtx, int32_t iSpatialNum, EVideoFra · 2505 unmodified lines
3005 if (pCtx->pSvcParam->bEnableFrameSkip) {3019 if (pCtx->pSvcParam->bEnableFrameSkip) {
3006 if ((RC_QUALITY_MODE == pCtx->pSvcParam->iRCMode) || (RC_BITRATE_MODE == pCtx->pSvcParam->iRCMode)) {3020 if ((RC_QUALITY_MODE == pCtx->pSvcParam->iRCMode) || (RC_BITRATE_MODE == pCtx->pSvcParam->iRCMode)) {
3007 for (int32_t i = 0; i < iSpatialNum; i++) {3021 for (int32_t i = 0; i < iSpatialNum; i++) {
3008 if (0 == pCtx->pSvcParam->sSpatialLayers[i].iMaxSpatialBitrate) {3022 if (UNSPECIFIED_BIT_RATE == pCtx->pSvcParam->sSpatialLayers[i].iMaxSpatialBitrate) {
3009 break;3023 break;
3010 }3024 }
3011 pCtx->uiDependencyId = (uint8_t) (pSpatialIndexMap + i)->iDid;3025 pCtx->uiDependencyId = (uint8_t) (pSpatialIndexMap + i)->iDid;

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