Showing the changes to codec/encoder/plus/src/welsEncoderExt.cpp (1 of 1 file). Show all
Unified · Split
| @@ -133,12 +133,6 @@ CWelsH264SVCEncoder::CWelsH264SVCEncoder() · 132 unmodified lines | |||
| 133 | CWelsH264SVCEncoder::~CWelsH264SVCEncoder() { | 133 | CWelsH264SVCEncoder::~CWelsH264SVCEncoder() { |
| 134 | if (m_pWelsTrace) { | 134 | if (m_pWelsTrace) { |
| 135 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsH264SVCEncoder::~CWelsH264SVCEncoder()"); | 135 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsH264SVCEncoder::~CWelsH264SVCEncoder()"); |
| 136 | |||
| 137 | #ifdef REC_FRAME_COUNT | ||
| 138 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 139 | "CWelsH264SVCEncoder::~CWelsH264SVCEncoder(), m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", m_uiCountFrameNum, | ||
| 140 | m_iCspInternal); | ||
| 141 | #endif | ||
| 142 | } | 136 | } |
| 143 | 137 | ||
| 144 | #ifdef REC_FRAME_COUNT | 138 | #ifdef REC_FRAME_COUNT |
| @@ -176,10 +170,6 @@ void CWelsH264SVCEncoder::InitEncoder (void) { · 31 unmodified lines | |||
| 176 | m_pWelsTrace->SetTraceLevel (WELS_LOG_ERROR); | 170 | m_pWelsTrace->SetTraceLevel (WELS_LOG_ERROR); |
| 177 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsH264SVCEncoder::InitEncoder(), openh264 codec version = %s", | 171 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsH264SVCEncoder::InitEncoder(), openh264 codec version = %s", |
| 178 | VERSION_NUMBER); | 172 | VERSION_NUMBER); |
| 179 | #ifdef REC_FRAME_COUNT | ||
| 180 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 181 | "CWelsH264SVCEncoder::InitEncoder, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", m_uiCountFrameNum, m_iCspInternal); | ||
| 182 | #endif | ||
| 183 | } | 173 | } |
| 184 | 174 | ||
| 185 | /* Interfaces override from ISVCEncoder */ | 175 | /* Interfaces override from ISVCEncoder */ |
| @@ -253,14 +243,6 @@ int CWelsH264SVCEncoder::InitializeInternal (SWelsSvcCodingParam* pCfg) { · 67 unmodified lines | |||
| 253 | m_bInitialFlag); | 243 | m_bInitialFlag); |
| 254 | Uninitialize(); | 244 | Uninitialize(); |
| 255 | } | 245 | } |
| 256 | |||
| 257 | #ifdef REC_FRAME_COUNT | ||
| 258 | SWelsSvcCodingParam& sEncodingParam = *pCfg; | ||
| 259 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 260 | "CWelsH264SVCEncoder::Initialize, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | ||
| 261 | m_uiCountFrameNum, m_iCspInternal); | ||
| 262 | #endif//REC_FRAME_COUNT | ||
| 263 | |||
| 264 | // Check valid parameters | 246 | // Check valid parameters |
| 265 | const int32_t iNumOfLayers = pCfg->iSpatialLayerNum; | 247 | const int32_t iNumOfLayers = pCfg->iSpatialLayerNum; |
| 266 | if (iNumOfLayers < 1 || iNumOfLayers > MAX_DEPENDENCY_LAYER) { | 248 | if (iNumOfLayers < 1 || iNumOfLayers > MAX_DEPENDENCY_LAYER) { |
| @@ -373,11 +355,6 @@ int32_t CWelsH264SVCEncoder::Uninitialize() { · 106 unmodified lines | |||
| 373 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsH264SVCEncoder::Uninitialize(), openh264 codec version = %s.", | 355 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsH264SVCEncoder::Uninitialize(), openh264 codec version = %s.", |
| 374 | VERSION_NUMBER); | 356 | VERSION_NUMBER); |
| 375 | 357 | ||
| 376 | #ifdef REC_FRAME_COUNT | ||
| 377 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 378 | "CWelsH264SVCEncoder::Uninitialize, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", m_uiCountFrameNum, m_iCspInternal); | ||
| 379 | #endif//REC_FRAME_COUNT | ||
| 380 | |||
| 381 | if (NULL != m_pEncContext) { | 358 | if (NULL != m_pEncContext) { |
| 382 | WelsUninitEncoderExt (&m_pEncContext); | 359 | WelsUninitEncoderExt (&m_pEncContext); |
| 383 | m_pEncContext = NULL; | 360 | m_pEncContext = NULL; |
| @@ -407,7 +384,7 @@ int CWelsH264SVCEncoder::EncodeFrame (const SSourcePicture* kpSrcPic, SFrameBSIn · 23 unmodified lines | |||
| 407 | #ifdef REC_FRAME_COUNT | 384 | #ifdef REC_FRAME_COUNT |
| 408 | ++ m_uiCountFrameNum; | 385 | ++ m_uiCountFrameNum; |
| 409 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 386 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 410 | "CWelsH264SVCEncoder::EncodeFrame(), m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", m_uiCountFrameNum, m_iCspInternal); | 387 | "CWelsH264SVCEncoder::EncodeFrame(), m_uiCountFrameNum= %d,", m_uiCountFrameNum); |
| 411 | #endif//REC_FRAME_COUNT | 388 | #endif//REC_FRAME_COUNT |
| 412 | 389 | ||
| 413 | #ifdef DUMP_SRC_PICTURE | 390 | #ifdef DUMP_SRC_PICTURE |
| @@ -495,13 +472,8 @@ int CWelsH264SVCEncoder::ForceIntraFrame (bool bIDR) { · 81 unmodified lines | |||
| 495 | if (! (m_pEncContext && m_bInitialFlag)) { | 472 | if (! (m_pEncContext && m_bInitialFlag)) { |
| 496 | return 1; | 473 | return 1; |
| 497 | } | 474 | } |
| 498 | |||
| 499 | #ifdef REC_FRAME_COUNT | ||
| 500 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 475 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 501 | "CWelsH264SVCEncoder::ForceIntraFrame(), bIDR= %d, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", bIDR, | 476 | "CWelsH264SVCEncoder::ForceIntraFrame(), bIDR= %d", bIDR); |
| 502 | m_uiCountFrameNum, m_iCspInternal); | ||
| 503 | #endif//REC_FRAME_COUNT | ||
| 504 | |||
| 505 | ForceCodingIDR (m_pEncContext); | 477 | ForceCodingIDR (m_pEncContext); |
| 506 | 478 | ||
| 507 | m_pEncContext->sEncoderStatistics.uiIDRReqNum++; | 479 | m_pEncContext->sEncoderStatistics.uiIDRReqNum++; |
| @@ -696,35 +668,20 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 188 unmodified lines | |||
| 696 | return cmInitParaError; | 668 | return cmInitParaError; |
| 697 | } | 669 | } |
| 698 | 670 | ||
| 699 | #ifdef REC_FRAME_COUNT | ||
| 700 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 701 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_DATAFORMAT, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x, iValue= %d", | ||
| 702 | m_uiCountFrameNum, m_iCspInternal, iValue); | ||
| 703 | #endif//REC_FRAME_COUNT | ||
| 704 | |||
| 705 | m_iCspInternal = iColorspace; | 671 | m_iCspInternal = iColorspace; |
| 706 | #ifdef REC_FRAME_COUNT | ||
| 707 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 672 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 708 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_DATAFORMAT, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | 673 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_DATAFORMAT, m_iCspInternal= 0x%x", m_iCspInternal); |
| 709 | m_uiCountFrameNum, m_iCspInternal); | ||
| 710 | #endif//REC_FRAME_COUNT | ||
| 711 | } | 674 | } |
| 712 | break; | 675 | break; |
| 713 | case ENCODER_OPTION_IDR_INTERVAL: { // IDR Interval | 676 | case ENCODER_OPTION_IDR_INTERVAL: { // IDR Interval |
| 714 | int32_t iValue = * ((int32_t*)pOption); | 677 | int32_t iValue = * ((int32_t*)pOption); |
| 715 | #ifdef REC_FRAME_COUNT | ||
| 716 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 678 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 717 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_IDR_INTERVAL, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x, iValue= %d", | 679 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_IDR_INTERVAL iValue= %d", iValue); |
| 718 | m_uiCountFrameNum, m_iCspInternal, iValue); | ||
| 719 | #endif//REC_FRAME_COUNT | ||
| 720 | |||
| 721 | if (iValue < -1 || iValue == 0) | 680 | if (iValue < -1 || iValue == 0) |
| 722 | iValue = 1; | 681 | iValue = 1; |
| 723 | if (iValue == (int32_t)m_pEncContext->pSvcParam->uiIntraPeriod) { | 682 | if (iValue == (int32_t)m_pEncContext->pSvcParam->uiIntraPeriod) { |
| 724 | return cmResultSuccess; | 683 | return cmResultSuccess; |
| 725 | } | 684 | } |
| 726 | |||
| 727 | |||
| 728 | m_pEncContext->pSvcParam->uiIntraPeriod = (uint32_t)iValue; | 685 | m_pEncContext->pSvcParam->uiIntraPeriod = (uint32_t)iValue; |
| 729 | } | 686 | } |
| 730 | break; | 687 | break; |
| @@ -746,6 +703,14 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 15 unmodified lines | |||
| 746 | m_iMaxPicWidth = iTargetWidth; | 703 | m_iMaxPicWidth = iTargetWidth; |
| 747 | m_iMaxPicHeight = iTargetHeight; | 704 | m_iMaxPicHeight = iTargetHeight; |
| 748 | } | 705 | } |
| 706 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 707 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_SVC_ENCODE_PARAM_BASE iUsageType = %d,iPicWidth= %d;iPicHeight= %d;iTargetBitrate= %d;fMaxFrameRate= %.6ff;iRCMode= %d", | ||
| 708 | sEncodingParam.iUsageType, | ||
| 709 | sEncodingParam.iPicWidth, | ||
| 710 | sEncodingParam.iPicHeight, | ||
| 711 | sEncodingParam.iTargetBitrate, | ||
| 712 | sEncodingParam.fMaxFrameRate, | ||
| 713 | sEncodingParam.iRCMode); | ||
| 749 | if (WelsEncoderParamAdjust (&m_pEncContext, &sConfig)) { | 714 | if (WelsEncoderParamAdjust (&m_pEncContext, &sConfig)) { |
| 750 | return cmInitParaError; | 715 | return cmInitParaError; |
| 751 | } | 716 | } |
| @@ -790,12 +755,6 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 38 unmodified lines | |||
| 790 | m_iMaxPicWidth = iTargetWidth; | 755 | m_iMaxPicWidth = iTargetWidth; |
| 791 | m_iMaxPicHeight = iTargetHeight; | 756 | m_iMaxPicHeight = iTargetHeight; |
| 792 | } | 757 | } |
| 793 | #ifdef REC_FRAME_COUNT | ||
| 794 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 795 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_SVC_ENCODE_PARAM_EXT, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | ||
| 796 | m_uiCountFrameNum, m_iCspInternal); | ||
| 797 | #endif//REC_FRAME_COUNT | ||
| 798 | |||
| 799 | /* Check every field whether there is new request for memory block changed or else, Oct. 24, 2008 */ | 758 | /* Check every field whether there is new request for memory block changed or else, Oct. 24, 2008 */ |
| 800 | if (WelsEncoderParamAdjust (&m_pEncContext, &sConfig)) { | 759 | if (WelsEncoderParamAdjust (&m_pEncContext, &sConfig)) { |
| 801 | return cmInitParaError; | 760 | return cmInitParaError; |
| @@ -804,11 +763,6 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 2 unmodified lines | |||
| 804 | break; | 763 | break; |
| 805 | case ENCODER_OPTION_FRAME_RATE: { // Maximal input frame rate | 764 | case ENCODER_OPTION_FRAME_RATE: { // Maximal input frame rate |
| 806 | float iValue = * ((float*)pOption); | 765 | float iValue = * ((float*)pOption); |
| 807 | #ifdef REC_FRAME_COUNT | ||
| 808 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 809 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_FRAME_RATE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x, iValue= %f", | ||
| 810 | m_uiCountFrameNum, m_iCspInternal, iValue); | ||
| 811 | #endif//REC_FRAME_COUNT | ||
| 812 | if (iValue <= 0) { | 766 | if (iValue <= 0) { |
| 813 | return cmInitParaError; | 767 | return cmInitParaError; |
| 814 | } | 768 | } |
| @@ -823,11 +777,6 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 8 unmodified lines | |||
| 823 | case ENCODER_OPTION_BITRATE: { // Target bit-rate | 777 | case ENCODER_OPTION_BITRATE: { // Target bit-rate |
| 824 | SBitrateInfo* pInfo = (static_cast<SBitrateInfo*> (pOption)); | 778 | SBitrateInfo* pInfo = (static_cast<SBitrateInfo*> (pOption)); |
| 825 | int32_t iBitrate = pInfo->iBitrate; | 779 | int32_t iBitrate = pInfo->iBitrate; |
| 826 | #ifdef REC_FRAME_COUNT | ||
| 827 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 828 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_BITRATE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x, iValue= %d", | ||
| 829 | m_uiCountFrameNum, m_iCspInternal, iValue); | ||
| 830 | #endif//REC_FRAME_COUNT | ||
| 831 | if (iBitrate <= 0) { | 780 | if (iBitrate <= 0) { |
| 832 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, | 781 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, |
| 833 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_BITRATE,iBitrate = %d", | 782 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_BITRATE,iBitrate = %d", |
| @@ -874,12 +823,6 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 40 unmodified lines | |||
| 874 | case ENCODER_OPTION_MAX_BITRATE: { // Target bit-rate | 823 | case ENCODER_OPTION_MAX_BITRATE: { // Target bit-rate |
| 875 | SBitrateInfo* pInfo = (static_cast<SBitrateInfo*> (pOption)); | 824 | SBitrateInfo* pInfo = (static_cast<SBitrateInfo*> (pOption)); |
| 876 | int32_t iBitrate = pInfo->iBitrate; | 825 | int32_t iBitrate = pInfo->iBitrate; |
| 877 | |||
| 878 | #ifdef REC_FRAME_COUNT | ||
| 879 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 880 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_BITRATE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x, iValue= %d", | ||
| 881 | m_uiCountFrameNum, m_iCspInternal, iValue); | ||
| 882 | #endif//REC_FRAME_COUNT | ||
| 883 | if (iBitrate <= 0) { | 826 | if (iBitrate <= 0) { |
| 884 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, | 827 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, |
| 885 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_MAX_BITRATE,iBitrate = %d", | 828 | "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_MAX_BITRATE,iBitrate = %d", |
| @@ -1119,58 +1062,40 @@ int CWelsH264SVCEncoder::GetOption (ENCODER_OPTION eOptionId, void* pOption) { · 233 unmodified lines | |||
| 1119 | } | 1062 | } |
| 1120 | break; | 1063 | break; |
| 1121 | case ENCODER_OPTION_DATAFORMAT: { // Input color space | 1064 | case ENCODER_OPTION_DATAFORMAT: { // Input color space |
| 1122 | #ifdef REC_FRAME_COUNT | ||
| 1123 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 1065 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 1124 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_DATAFORMAT, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | 1066 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_DATAFORMAT, m_iCspInternal= 0x%x", m_iCspInternal); |
| 1125 | m_uiCountFrameNum, m_iCspInternal); | ||
| 1126 | #endif//REC_FRAME_COUNT | ||
| 1127 | |||
| 1128 | * ((int32_t*)pOption) = m_iCspInternal; | 1067 | * ((int32_t*)pOption) = m_iCspInternal; |
| 1129 | } | 1068 | } |
| 1130 | break; | 1069 | break; |
| 1131 | case ENCODER_OPTION_IDR_INTERVAL: { // IDR Interval | 1070 | case ENCODER_OPTION_IDR_INTERVAL: { // IDR Interval |
| 1132 | #ifdef REC_FRAME_COUNT | ||
| 1133 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 1071 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 1134 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_IDR_INTERVAL, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | 1072 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_IDR_INTERVAL, uiIntraPeriod= %d", |
| 1135 | m_uiCountFrameNum, m_iCspInternal); | 1073 | m_pEncContext->pSvcParam->uiIntraPeriod); |
| 1136 | #endif//REC_FRAME_COUNT | ||
| 1137 | * ((int32_t*)pOption) = m_pEncContext->pSvcParam->uiIntraPeriod; | 1074 | * ((int32_t*)pOption) = m_pEncContext->pSvcParam->uiIntraPeriod; |
| 1138 | } | 1075 | } |
| 1139 | break; | 1076 | break; |
| 1140 | case ENCODER_OPTION_SVC_ENCODE_PARAM_EXT: { // SVC Encoding Parameter | 1077 | case ENCODER_OPTION_SVC_ENCODE_PARAM_EXT: { // SVC Encoding Parameter |
| 1141 | #ifdef REC_FRAME_COUNT | ||
| 1142 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 1078 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 1143 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_SVC_ENCODE_PARAM_EXT, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | 1079 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_SVC_ENCODE_PARAM_EXT"); |
| 1144 | m_uiCountFrameNum, m_iCspInternal); | ||
| 1145 | #endif//REC_FRAME_COUNT | ||
| 1146 | memcpy (pOption, m_pEncContext->pSvcParam, sizeof (SEncParamExt)); // confirmed_safe_unsafe_usage | 1080 | memcpy (pOption, m_pEncContext->pSvcParam, sizeof (SEncParamExt)); // confirmed_safe_unsafe_usage |
| 1147 | } | 1081 | } |
| 1148 | break; | 1082 | break; |
| 1149 | case ENCODER_OPTION_SVC_ENCODE_PARAM_BASE: { // SVC Encoding Parameter | 1083 | case ENCODER_OPTION_SVC_ENCODE_PARAM_BASE: { // SVC Encoding Parameter |
| 1150 | #ifdef REC_FRAME_COUNT | ||
| 1151 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 1084 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 1152 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_SVC_ENCODE_PARAM_BASE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | 1085 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_SVC_ENCODE_PARAM_BASE"); |
| 1153 | m_uiCountFrameNum, m_iCspInternal); | ||
| 1154 | #endif//REC_FRAME_COUNT | ||
| 1155 | m_pEncContext->pSvcParam->GetBaseParams ((SEncParamBase*) pOption); | 1086 | m_pEncContext->pSvcParam->GetBaseParams ((SEncParamBase*) pOption); |
| 1156 | } | 1087 | } |
| 1157 | break; | 1088 | break; |
| 1158 | 1089 | ||
| 1159 | case ENCODER_OPTION_FRAME_RATE: { // Maximal input frame rate | 1090 | case ENCODER_OPTION_FRAME_RATE: { // Maximal input frame rate |
| 1160 | #ifdef REC_FRAME_COUNT | ||
| 1161 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | 1091 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, |
| 1162 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_FRAME_RATE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | 1092 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_FRAME_RATE, fMaxFrameRate = %.6ff", |
| 1163 | m_uiCountFrameNum, m_iCspInternal); | 1093 | m_pEncContext->pSvcParam->fMaxFrameRate); |
| 1164 | #endif//REC_FRAME_COUNT | ||
| 1165 | * ((float*)pOption) = m_pEncContext->pSvcParam->fMaxFrameRate; | 1094 | * ((float*)pOption) = m_pEncContext->pSvcParam->fMaxFrameRate; |
| 1166 | } | 1095 | } |
| 1167 | break; | 1096 | break; |
| 1168 | case ENCODER_OPTION_BITRATE: { // Target bit-rate | 1097 | case ENCODER_OPTION_BITRATE: { // Target bit-rate |
| 1169 | #ifdef REC_FRAME_COUNT | 1098 | |
| 1170 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 1171 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_BITRATE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | ||
| 1172 | m_uiCountFrameNum, m_iCspInternal); | ||
| 1173 | #endif//REC_FRAME_COUNT | ||
| 1174 | SBitrateInfo* pInfo = (static_cast<SBitrateInfo*> (pOption)); | 1099 | SBitrateInfo* pInfo = (static_cast<SBitrateInfo*> (pOption)); |
| 1175 | if ((pInfo->iLayer != SPATIAL_LAYER_ALL) && (pInfo->iLayer != SPATIAL_LAYER_0) && (pInfo->iLayer != SPATIAL_LAYER_1) | 1100 | if ((pInfo->iLayer != SPATIAL_LAYER_ALL) && (pInfo->iLayer != SPATIAL_LAYER_0) && (pInfo->iLayer != SPATIAL_LAYER_1) |
| 1176 | && (pInfo->iLayer != SPATIAL_LAYER_2) && (pInfo->iLayer != SPATIAL_LAYER_3)) | 1101 | && (pInfo->iLayer != SPATIAL_LAYER_2) && (pInfo->iLayer != SPATIAL_LAYER_3)) |
| @@ -1180,14 +1105,12 @@ int CWelsH264SVCEncoder::GetOption (ENCODER_OPTION eOptionId, void* pOption) { · 3 unmodified lines | |||
| 1180 | } else { | 1105 | } else { |
| 1181 | pInfo->iBitrate = m_pEncContext->pSvcParam->sSpatialLayers[pInfo->iLayer].iSpatialBitrate; | 1106 | pInfo->iBitrate = m_pEncContext->pSvcParam->sSpatialLayers[pInfo->iLayer].iSpatialBitrate; |
| 1182 | } | 1107 | } |
| 1108 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 1109 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_BITRATE, layerId =%d,iBitrate = %d", | ||
| 1110 | pInfo->iLayer, pInfo->iBitrate); | ||
| 1183 | } | 1111 | } |
| 1184 | break; | 1112 | break; |
| 1185 | case ENCODER_OPTION_MAX_BITRATE: { // Target bit-rate | 1113 | case ENCODER_OPTION_MAX_BITRATE: { // Target bit-rate |
| 1186 | #ifdef REC_FRAME_COUNT | ||
| 1187 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 1188 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_MAX_BITRATE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x", | ||
| 1189 | m_uiCountFrameNum, m_iCspInternal); | ||
| 1190 | #endif//REC_FRAME_COUNT | ||
| 1191 | SBitrateInfo* pInfo = (static_cast<SBitrateInfo*> (pOption)); | 1114 | SBitrateInfo* pInfo = (static_cast<SBitrateInfo*> (pOption)); |
| 1192 | if ((pInfo->iLayer != SPATIAL_LAYER_ALL) && (pInfo->iLayer != SPATIAL_LAYER_0) && (pInfo->iLayer != SPATIAL_LAYER_1) | 1115 | if ((pInfo->iLayer != SPATIAL_LAYER_ALL) && (pInfo->iLayer != SPATIAL_LAYER_0) && (pInfo->iLayer != SPATIAL_LAYER_1) |
| 1193 | && (pInfo->iLayer != SPATIAL_LAYER_2) && (pInfo->iLayer != SPATIAL_LAYER_3)) | 1116 | && (pInfo->iLayer != SPATIAL_LAYER_2) && (pInfo->iLayer != SPATIAL_LAYER_3)) |
| @@ -1197,6 +1120,9 @@ int CWelsH264SVCEncoder::GetOption (ENCODER_OPTION eOptionId, void* pOption) { · 3 unmodified lines | |||
| 1197 | } else { | 1120 | } else { |
| 1198 | pInfo->iBitrate = m_pEncContext->pSvcParam->sSpatialLayers[pInfo->iLayer].iMaxSpatialBitrate; | 1121 | pInfo->iBitrate = m_pEncContext->pSvcParam->sSpatialLayers[pInfo->iLayer].iMaxSpatialBitrate; |
| 1199 | } | 1122 | } |
| 1123 | WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | ||
| 1124 | "CWelsH264SVCEncoder::GetOption():ENCODER_OPTION_MAX_BITRATE,, layerId =%d,iBitrate = %d", | ||
| 1125 | pInfo->iLayer, pInfo->iBitrate); | ||
| 1200 | } | 1126 | } |
| 1201 | break; | 1127 | break; |
| 1202 | case ENCODER_OPTION_GET_STATISTICS: { | 1128 | case ENCODER_OPTION_GET_STATISTICS: { |