Showing the changes to codec/encoder/core/src/encoder_ext.cpp (1 of 1 file). Show all
Unified · Split
| @@ -336,9 +336,15 @@ int32_t ParamValidationExt (SLogContext* pLogCtx, SWelsSvcCodingParam* pCodingPa · 335 unmodified lines | ||
| 336 | 336 | pCodingParam->bDeblockingParallelFlag = true; |
| 337 | 337 | } |
| 338 | 338 | |
| 339 | + // eSpsPpsIdStrategy checkings | |
| 339 | 340 | if (pCodingParam->iSpatialLayerNum > 1 && (SPS_LISTING & pCodingParam->eSpsPpsIdStrategy)) { |
| 340 | 341 | WelsLog (pLogCtx, WELS_LOG_INFO, |
| 341 | − "ParamValidationExt(), eSpsPpsIdStrategy adjusted to CONSTANT_ID"); | |
| 342 | + "ParamValidationExt(), eSpsPpsIdStrategy setting (%d) with multiple SpatialLayers (%d) not supported! eSpsPpsIdStrategy adjusted to CONSTANT_ID", pCodingParam->eSpsPpsIdStrategy, pCodingParam->iSpatialLayerNum); | |
| 343 | + pCodingParam->eSpsPpsIdStrategy = CONSTANT_ID; | |
| 344 | + } | |
| 345 | + if (pCodingParam->iUsageType == SCREEN_CONTENT_REAL_TIME && (SPS_LISTING & pCodingParam->eSpsPpsIdStrategy)) { | |
| 346 | + WelsLog (pLogCtx, WELS_LOG_INFO, | |
| 347 | + "ParamValidationExt(), eSpsPpsIdStrategy setting (%d) with iUsageType (%d) not supported! eSpsPpsIdStrategy adjusted to CONSTANT_ID", pCodingParam->eSpsPpsIdStrategy, pCodingParam->iUsageType); | |
| 342 | 348 | pCodingParam->eSpsPpsIdStrategy = CONSTANT_ID; |
| 343 | 349 | } |
| 344 | 350 | |
| @@ -1710,8 +1716,9 @@ int32_t RequestMemorySvc (sWelsEncCtx** ppCtx, SExistingParasetList* pExistingPa · 1365 unmodified lines | ||
| 1710 | 1716 | return 1; |
| 1711 | 1717 | } |
| 1712 | 1718 | |
| 1713 | − iNonVclLayersBsSizeCount = SSEI_BUFFER_SIZE + pParam->iSpatialLayerNum * SPS_BUFFER_SIZE + | |
| 1714 | − (1 + pParam->iSpatialLayerNum) * PPS_BUFFER_SIZE; | |
| 1719 | + const int32_t kiSpsSize = (pParam->eSpsPpsIdStrategy & SPS_LISTING) ? (MAX_SPS_COUNT * SPS_BUFFER_SIZE): (pParam->iSpatialLayerNum * SPS_BUFFER_SIZE); | |
| 1720 | + const int32_t kiPpsSize = (pParam->eSpsPpsIdStrategy & SPS_PPS_LISTING) ? (MAX_PPS_COUNT * SPS_BUFFER_SIZE) : ((1 + pParam->iSpatialLayerNum) * PPS_BUFFER_SIZE); | |
| 1721 | + iNonVclLayersBsSizeCount = SSEI_BUFFER_SIZE + kiSpsSize + kiPpsSize; | |
| 1715 | 1722 | |
| 1716 | 1723 | int32_t iLayerBsSize = 0; |
| 1717 | 1724 | iIndex = 0; |