Showing the changes to codec/encoder/plus/src/welsEncoderExt.cpp (1 of 4 files). Show all
Unified · Split
| @@ -256,41 +256,6 @@ int CWelsH264SVCEncoder::InitializeInternal (SWelsSvcCodingParam* pCfg) { · 255 unmodified lines | ||
| 256 | 256 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 257 | 257 | "CWelsH264SVCEncoder::Initialize, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", |
| 258 | 258 | m_uiCountFrameNum, m_iCspInternal); |
| 259 | − WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | |
| 260 | − "coding_param->iPicWidth= %d;coding_param->iPicHeight= %d;coding_param->iTargetBitrate= %d;coding_param->iRCMode= %d;coding_param->iTemporalLayerNum= %d;coding_param->iSpatialLayerNum= %d;coding_param->fFrameRate= %.6ff;coding_param->iInputCsp= %d;coding_param->uiIntraPeriod= %d;coding_param->bEnableSpsPpsIdAddition = %d;coding_param->bPrefixNalAddingCtrl = %d;coding_param->bEnableDenoise= %d;coding_param->bEnableBackgroundDetection= %d;coding_param->bEnableAdaptiveQuant= %d;coding_param->bEnableFrameSkip= %d;coding_param->bEnableCropPic= %d;coding_param->bEnableLongTermReference= %d;coding_param->iLtrMarkPeriod= %d;", | |
| 261 | − sEncodingParam.iPicWidth, | |
| 262 | − sEncodingParam.iPicHeight, | |
| 263 | − sEncodingParam.iTargetBitrate, | |
| 264 | − sEncodingParam.iRCMode, | |
| 265 | − sEncodingParam.iTemporalLayerNum, | |
| 266 | − sEncodingParam.iSpatialLayerNum, | |
| 267 | − sEncodingParam.fMaxFrameRate, | |
| 268 | − sEncodingParam.iInputCsp, | |
| 269 | − sEncodingParam.uiIntraPeriod, | |
| 270 | − sEncodingParam.bEnableSpsPpsIdAddition, | |
| 271 | − sEncodingParam.bPrefixNalAddingCtrl, | |
| 272 | − sEncodingParam.bEnableDenoise, | |
| 273 | − sEncodingParam.bEnableBackgroundDetection, | |
| 274 | − sEncodingParam.bEnableAdaptiveQuant, | |
| 275 | − sEncodingParam.bEnableFrameSkip, | |
| 276 | − sEncodingParam.bEnableCropPic, | |
| 277 | − sEncodingParam.bEnableLongTermReference, | |
| 278 | − sEncodingParam.iLtrMarkPeriod); | |
| 279 | − int32_t i = 0; | |
| 280 | − while (i < sEncodingParam.iSpatialLayerNum) { | |
| 281 | − SSpatialLayerConfig* spatial_cfg = &sEncodingParam.sSpatialLayers[i]; | |
| 282 | − WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | |
| 283 | − "coding_param->sSpatialLayers[%d]: .iVideoWidth= %d; .iVideoHeight= %d; .fFrameRate= %.6ff; .iSpatialBitrate= %d; .sSliceCfg.uiSliceMode= %d; .sSliceCfg.sSliceArgument.uiSliceNum= %d; .sSliceCfg.sSliceArgument.uiSliceSizeConstraint= %d;", | |
| 284 | − i, spatial_cfg->iVideoWidth, | |
| 285 | − spatial_cfg->iVideoHeight, | |
| 286 | − spatial_cfg->fFrameRate, | |
| 287 | − spatial_cfg->iSpatialBitrate, | |
| 288 | − spatial_cfg->sSliceCfg.uiSliceMode, | |
| 289 | − spatial_cfg->sSliceCfg.sSliceArgument.uiSliceNum, | |
| 290 | − spatial_cfg->sSliceCfg.sSliceArgument.uiSliceSizeConstraint | |
| 291 | − ); | |
| 292 | − ++ i; | |
| 293 | − } | |
| 294 | 259 | #endif//REC_FRAME_COUNT |
| 295 | 260 | |
| 296 | 261 | // Check valid parameters |
| @@ -378,6 +343,7 @@ int CWelsH264SVCEncoder::InitializeInternal (SWelsSvcCodingParam* pCfg) { · 81 unmodified lines | ||
| 378 | 343 | m_iMaxPicWidth = pCfg->iPicWidth; |
| 379 | 344 | m_iMaxPicHeight = pCfg->iPicHeight; |
| 380 | 345 | |
| 346 | + TraceParamInfo(pCfg); | |
| 381 | 347 | if (WelsInitEncoderExt (&m_pEncContext, pCfg, &m_pWelsTrace->m_sLogCtx)) { |
| 382 | 348 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, "CWelsH264SVCEncoder::Initialize(), WelsInitEncoderExt failed."); |
| 383 | 349 | Uninitialize(); |
| @@ -559,6 +525,60 @@ void CWelsH264SVCEncoder::CheckReferenceNumSetting (int32_t iNumRef) { · 175 unmodified lines | ||
| 559 | 525 | "doesn't support the number of reference frame(%d) change to auto select mode", iNumRef); |
| 560 | 526 | } |
| 561 | 527 | } |
| 528 | +void CWelsH264SVCEncoder::TraceParamInfo(SEncParamExt *pParam){ | |
| 529 | + WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | |
| 530 | + "iUsageType = %d,iPicWidth= %d;iPicHeight= %d;iTargetBitrate= %d;iMaxBitrate= %d;iRCMode= %d;iPaddingFlag= %d;iTemporalLayerNum= %d;iSpatialLayerNum= %d;fFrameRate= %.6ff;uiIntraPeriod= %d;\ | |
| 531 | + bEnableSpsPpsIdAddition = %d;bPrefixNalAddingCtrl = %d;bEnableDenoise= %d;bEnableBackgroundDetection= %d;bEnableAdaptiveQuant= %d;bEnableAdaptiveQuant= %d;bEnableLongTermReference= %d;iLtrMarkPeriod= %d;\ | |
| 532 | + iComplexityMode = %d;iNumRefFrame = %d;iEntropyCodingModeFlag = %d;bEnableFrameSkip = %d;uiMaxNalSize = %d;bEnableLongTermReference = %d;iLTRRefNum = %d;iMultipleThreadIdc = %d;iLoopFilterDisableIdc = %d", | |
| 533 | + pParam->iUsageType, | |
| 534 | + pParam->iPicWidth, | |
| 535 | + pParam->iPicHeight, | |
| 536 | + pParam->iTargetBitrate, | |
| 537 | + pParam->iMaxBitrate, | |
| 538 | + pParam->iRCMode, | |
| 539 | + pParam->iPaddingFlag, | |
| 540 | + pParam->iTemporalLayerNum, | |
| 541 | + pParam->iSpatialLayerNum, | |
| 542 | + pParam->fMaxFrameRate, | |
| 543 | + pParam->uiIntraPeriod, | |
| 544 | + pParam->bEnableSpsPpsIdAddition, | |
| 545 | + pParam->bPrefixNalAddingCtrl, | |
| 546 | + pParam->bEnableDenoise, | |
| 547 | + pParam->bEnableBackgroundDetection, | |
| 548 | + pParam->bEnableAdaptiveQuant, | |
| 549 | + pParam->bEnableFrameSkip, | |
| 550 | + pParam->bEnableLongTermReference, | |
| 551 | + pParam->iLtrMarkPeriod, | |
| 552 | + pParam->iComplexityMode, | |
| 553 | + pParam->iNumRefFrame, | |
| 554 | + pParam->iEntropyCodingModeFlag, | |
| 555 | + pParam->bEnableFrameSkip, | |
| 556 | + pParam->uiMaxNalSize, | |
| 557 | + pParam->bEnableLongTermReference, | |
| 558 | + pParam->iLTRRefNum, | |
| 559 | + pParam->iMultipleThreadIdc, | |
| 560 | + pParam->iLoopFilterDisableIdc | |
| 561 | + ); | |
| 562 | + int32_t i = 0; | |
| 563 | + while (i < pParam->iSpatialLayerNum) { | |
| 564 | + SSpatialLayerConfig* pSpatialCfg = &pParam->sSpatialLayers[i]; | |
| 565 | + WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | |
| 566 | + "sSpatialLayers[%d]: .iVideoWidth= %d; .iVideoHeight= %d; .fFrameRate= %.6ff; .iSpatialBitrate= %d; .iMaxSpatialBitrate= %d; .sSliceCfg.uiSliceMode= %d; .sSliceCfg.sSliceArgument.iSliceNum= %d; .sSliceCfg.sSliceArgument.uiSliceSizeConstraint= %d;\ | |
| 567 | + uiProfileIdc = %d;uiLevelIdc = %d", | |
| 568 | + i, pSpatialCfg->iVideoWidth, | |
| 569 | + pSpatialCfg->iVideoHeight, | |
| 570 | + pSpatialCfg->fFrameRate, | |
| 571 | + pSpatialCfg->iSpatialBitrate, | |
| 572 | + pSpatialCfg->iMaxSpatialBitrate, | |
| 573 | + pSpatialCfg->sSliceCfg.uiSliceMode, | |
| 574 | + pSpatialCfg->sSliceCfg.sSliceArgument.uiSliceNum, | |
| 575 | + pSpatialCfg->sSliceCfg.sSliceArgument.uiSliceSizeConstraint, | |
| 576 | + pSpatialCfg->uiProfileIdc, | |
| 577 | + pSpatialCfg->uiLevelIdc | |
| 578 | + ); | |
| 579 | + ++ i; | |
| 580 | + } | |
| 581 | +} | |
| 562 | 582 | /************************************************************************ |
| 563 | 583 | * InDataFormat, IDRInterval, SVC Encode Param, Frame Rate, Bitrate,.. |
| 564 | 584 | ************************************************************************/ |
| @@ -624,42 +644,7 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 59 unmodified lines | ||
| 624 | 644 | int32_t iTargetHeight = 0; |
| 625 | 645 | |
| 626 | 646 | memcpy (&sEncodingParam, pOption, sizeof (SEncParamExt)); // confirmed_safe_unsafe_usage |
| 627 | − WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | |
| 628 | − "coding_param->iPicWidth= %d;coding_param->iPicHeight= %d;coding_param->iTargetBitrate= %d; coding_param->iMaxBitrate= %d; coding_param->iRCMode= %d;coding_param->iPaddingFlag= %d;coding_param->iTemporalLayerNum= %d;coding_param->iSpatialLayerNum= %d;coding_param->fFrameRate= %.6ff;coding_param->uiIntraPeriod= %d;coding_param->bEnableSpsPpsIdAddition = %d;coding_param->bPrefixNalAddingCtrl = %d;coding_param->bEnableDenoise= %d;coding_param->bEnableBackgroundDetection= %d;coding_param->bEnableAdaptiveQuant= %d;coding_param->bEnableAdaptiveQuant= %d;coding_param->bEnableLongTermReference= %d;coding_param->iLtrMarkPeriod= %d;", | |
| 629 | − sEncodingParam.iPicWidth, | |
| 630 | − sEncodingParam.iPicHeight, | |
| 631 | − sEncodingParam.iTargetBitrate, | |
| 632 | − sEncodingParam.iMaxBitrate, | |
| 633 | − sEncodingParam.iRCMode, | |
| 634 | − sEncodingParam.iPaddingFlag, | |
| 635 | − sEncodingParam.iTemporalLayerNum, | |
| 636 | − sEncodingParam.iSpatialLayerNum, | |
| 637 | − sEncodingParam.fMaxFrameRate, | |
| 638 | − sEncodingParam.uiIntraPeriod, | |
| 639 | − sEncodingParam.bEnableSpsPpsIdAddition, | |
| 640 | − sEncodingParam.bPrefixNalAddingCtrl, | |
| 641 | − sEncodingParam.bEnableDenoise, | |
| 642 | − sEncodingParam.bEnableBackgroundDetection, | |
| 643 | − sEncodingParam.bEnableAdaptiveQuant, | |
| 644 | − sEncodingParam.bEnableFrameSkip, | |
| 645 | − sEncodingParam.bEnableLongTermReference, | |
| 646 | − sEncodingParam.iLtrMarkPeriod); | |
| 647 | − int32_t i = 0; | |
| 648 | − while (i < sEncodingParam.iSpatialLayerNum) { | |
| 649 | − SSpatialLayerConfig* pSpatialCfg = &sEncodingParam.sSpatialLayers[i]; | |
| 650 | − WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | |
| 651 | − "coding_param->sSpatialLayers[%d]: .iVideoWidth= %d; .iVideoHeight= %d; .fFrameRate= %.6ff; .iSpatialBitrate= %d; .iMaxSpatialBitrate= %d; .sSliceCfg.uiSliceMode= %d; .sSliceCfg.sSliceArgument.iSliceNum= %d; .sSliceCfg.sSliceArgument.uiSliceSizeConstraint= %d;", | |
| 652 | − i, pSpatialCfg->iVideoWidth, | |
| 653 | − pSpatialCfg->iVideoHeight, | |
| 654 | − pSpatialCfg->fFrameRate, | |
| 655 | − pSpatialCfg->iSpatialBitrate, | |
| 656 | − pSpatialCfg->iMaxSpatialBitrate, | |
| 657 | − pSpatialCfg->sSliceCfg.uiSliceMode, | |
| 658 | − pSpatialCfg->sSliceCfg.sSliceArgument.uiSliceNum, | |
| 659 | − pSpatialCfg->sSliceCfg.sSliceArgument.uiSliceSizeConstraint | |
| 660 | − ); | |
| 661 | − ++ i; | |
| 662 | − } | |
| 647 | + TraceParamInfo(&sEncodingParam); | |
| 663 | 648 | #ifdef OUTPUT_BIT_STREAM |
| 664 | 649 | if (sEncodingParam.sSpatialLayers[sEncodingParam.iSpatialLayerNum - 1].iVideoWidth != |
| 665 | 650 | m_pEncContext->pSvcParam->sDependencyLayers[m_pEncContext->pSvcParam->iSpatialLayerNum - 1].iActualWidth) { |