Showing the changes to codec/encoder/plus/src/welsEncoderExt.cpp (1 of 2 files). Show all
Unified · Split
| @@ -313,7 +313,7 @@ int CWelsH264SVCEncoder::InitializeInternal (SWelsSvcCodingParam* pCfg) { · 312 unmodified lines | |||
| 313 | pCfg->iLTRRefNum = pCfg->bEnableLongTermReference ? LONG_TERM_REF_NUM : 0; | 313 | pCfg->iLTRRefNum = pCfg->bEnableLongTermReference ? LONG_TERM_REF_NUM : 0; |
| 314 | if (pCfg->iNumRefFrame == AUTO_REF_PIC_COUNT) { | 314 | if (pCfg->iNumRefFrame == AUTO_REF_PIC_COUNT) { |
| 315 | pCfg->iNumRefFrame = ((pCfg->uiGopSize >> 1) > 1) ? ((pCfg->uiGopSize >> 1) + pCfg->iLTRRefNum) : | 315 | pCfg->iNumRefFrame = ((pCfg->uiGopSize >> 1) > 1) ? ((pCfg->uiGopSize >> 1) + pCfg->iLTRRefNum) : |
| 316 | (MIN_REF_PIC_COUNT + pCfg->iLTRRefNum); | 316 | (MIN_REF_PIC_COUNT + pCfg->iLTRRefNum); |
| 317 | pCfg->iNumRefFrame = WELS_CLIP3 (pCfg->iNumRefFrame, MIN_REF_PIC_COUNT, MAX_REFERENCE_PICTURE_COUNT_NUM_CAMERA); | 317 | pCfg->iNumRefFrame = WELS_CLIP3 (pCfg->iNumRefFrame, MIN_REF_PIC_COUNT, MAX_REFERENCE_PICTURE_COUNT_NUM_CAMERA); |
| 318 | } | 318 | } |
| 319 | } | 319 | } |
| @@ -402,7 +402,8 @@ int CWelsH264SVCEncoder ::EncodeFrameInternal (const SSourcePicture* pSrcPic, S · 82 unmodified lines | |||
| 402 | const int32_t kiEncoderReturn = WelsEncoderEncodeExt (m_pEncContext, pBsInfo, pSrcPic); | 402 | const int32_t kiEncoderReturn = WelsEncoderEncodeExt (m_pEncContext, pBsInfo, pSrcPic); |
| 403 | const int64_t kiCurrentFrameMs = (WelsTime() - kiBeforeFrameUs) / 1000; | 403 | const int64_t kiCurrentFrameMs = (WelsTime() - kiBeforeFrameUs) / 1000; |
| 404 | 404 | ||
| 405 | if ((kiEncoderReturn == ENC_RETURN_MEMALLOCERR) || (kiEncoderReturn == ENC_RETURN_MEMOVERFLOWFOUND) || (kiEncoderReturn == ENC_RETURN_VLCOVERFLOWFOUND)) { | 405 | if ((kiEncoderReturn == ENC_RETURN_MEMALLOCERR) || (kiEncoderReturn == ENC_RETURN_MEMOVERFLOWFOUND) |
| 406 | || (kiEncoderReturn == ENC_RETURN_VLCOVERFLOWFOUND)) { | ||
| 406 | WelsUninitEncoderExt (&m_pEncContext); | 407 | WelsUninitEncoderExt (&m_pEncContext); |
| 407 | return cmMallocMemeError; | 408 | return cmMallocMemeError; |
| 408 | } else if ((kiEncoderReturn != ENC_RETURN_SUCCESS) && (kiEncoderReturn == ENC_RETURN_CORRECTED)) { | 409 | } else if ((kiEncoderReturn != ENC_RETURN_SUCCESS) && (kiEncoderReturn == ENC_RETURN_CORRECTED)) { |
| @@ -539,7 +540,7 @@ void CWelsH264SVCEncoder::TraceParamInfo (SEncParamExt* pParam) { · 130 unmodified lines | |||
| 539 | pSpatialCfg->sSliceArgument.uiSliceSizeConstraint, | 540 | pSpatialCfg->sSliceArgument.uiSliceSizeConstraint, |
| 540 | pSpatialCfg->uiProfileIdc, | 541 | pSpatialCfg->uiProfileIdc, |
| 541 | pSpatialCfg->uiLevelIdc | 542 | pSpatialCfg->uiLevelIdc |
| 542 | ); | 543 | ); |
| 543 | ++ i; | 544 | ++ i; |
| 544 | } | 545 | } |
| 545 | } | 546 | } |
| @@ -615,8 +616,10 @@ void CWelsH264SVCEncoder::UpdateStatistics (const int64_t kiCurrentFrameTs, EVid · 69 unmodified lines | |||
| 615 | 616 | ||
| 616 | if (WELS_ABS (pStatistics->fLatestFrameRate - m_pEncContext->pSvcParam->fMaxFrameRate) > 30) { | 617 | if (WELS_ABS (pStatistics->fLatestFrameRate - m_pEncContext->pSvcParam->fMaxFrameRate) > 30) { |
| 617 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_WARNING, | 618 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_WARNING, |
| 618 | "Actual input fLatestFrameRate = %f is quite different from framerate in setting %f, please check setting or timestamp unit (ms), cur_Ts = %" PRId64 " start_Ts = %" PRId64, | 619 | "Actual input fLatestFrameRate = %f is quite different from framerate in setting %f, please check setting or timestamp unit (ms), cur_Ts = %" |
| 619 | pStatistics->fLatestFrameRate, m_pEncContext->pSvcParam->fMaxFrameRate, kiCurrentFrameTs, static_cast<int64_t> (pStatistics->iStatisticsTs) ); | 620 | PRId64 " start_Ts = %" PRId64, |
| 621 | pStatistics->fLatestFrameRate, m_pEncContext->pSvcParam->fMaxFrameRate, kiCurrentFrameTs, | ||
| 622 | static_cast<int64_t> (pStatistics->iStatisticsTs)); | ||
| 620 | } | 623 | } |
| 621 | 624 | ||
| 622 | if (m_pEncContext->pSvcParam->iRCMode == RC_QUALITY_MODE || m_pEncContext->pSvcParam->iRCMode == RC_BITRATE_MODE) { | 625 | if (m_pEncContext->pSvcParam->iRCMode == RC_QUALITY_MODE || m_pEncContext->pSvcParam->iRCMode == RC_BITRATE_MODE) { |
| @@ -898,7 +901,7 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 275 unmodified lines | |||
| 898 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 901 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 899 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_RC_MODE iRCMode= %d (Note: not suggest changing RC-mode in middle of encoding)", | 902 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_RC_MODE iRCMode= %d (Note: not suggest changing RC-mode in middle of encoding)", |
| 900 | iValue); | 903 | iValue); |
| 901 | WelsRcInitFuncPointers(m_pEncContext, m_pEncContext->pSvcParam->iRCMode); | 904 | WelsRcInitFuncPointers (m_pEncContext, m_pEncContext->pSvcParam->iRCMode); |
| 902 | } | 905 | } |
| 903 | break; | 906 | break; |
| 904 | case ENCODER_OPTION_RC_FRAME_SKIP: { // 0:FRAME-SKIP disabled;1:FRAME-SKIP enabled | 907 | case ENCODER_OPTION_RC_FRAME_SKIP: { // 0:FRAME-SKIP disabled;1:FRAME-SKIP enabled |