History

complete the encoder interface of bit rate and frame rate updating

sijchen committed 12 years ago

Commit 4999b811 parent 8df05664 files · +67 −6Browse files

Showing the changes to codec/encoder/plus/src/welsEncoderExt.cpp (1 of 4 files). Show all

Unified · Split

codec/encoder/plus/src/welsEncoderExt.cpp+14−6
@@ -942,19 +942,27 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 941 unmodified lines
942942 "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_FRAME_RATE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x, iValue= %d\n",
943943 m_uiCountFrameNum, m_iCspInternal, iValue);
944944 #endif//REC_FRAME_COUNT
945− m_pEncContext->pSvcParam->fMaxFrameRate = iValue;
946−
945+ if (iValue<=0) {
946+ return cmInitParaError;
947+ }
948+ //adjust to valid range
949+ m_pEncContext->pSvcParam->fMaxFrameRate = WELS_CLIP3 (iValue, MIN_FRAME_RATE, MAX_FRAME_RATE);
950+ WelsEncoderApplyFrameRate (m_pEncContext->pSvcParam);
947951 }
948952 break;
949953 case ENCODER_OPTION_BITRATE: { // Target bit-rate
950954 int32_t iValue = * ((int32_t*)pOption);
951955 #ifdef REC_FRAME_COUNT
952956 WelsLog (m_pEncContext, WELS_LOG_INFO,
953− "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_BITRATE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x, iValue= %d\n",
954− m_uiCountFrameNum, m_iCspInternal, iValue);
957+ "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_BITRATE, m_uiCountFrameNum= %d, m_iCspInternal= 0x%x, iValue= %d\n",
958+ m_uiCountFrameNum, m_iCspInternal, iValue);
955959 #endif//REC_FRAME_COUNT
956− m_pEncContext->pSvcParam->iTargetBitrate = iValue;
957−
960+ if (iValue<=0) {
961+ return cmInitParaError;
962+ }
963+ //adjust to valid range
964+ m_pEncContext->pSvcParam->iTargetBitrate = WELS_CLIP3 (iValue, MIN_BIT_RATE, MAX_BIT_RATE);
965+ WelsEncoderApplyBitRate (m_pEncContext->pSvcParam);
958966 }
959967 break;
960968 case ENCODER_OPTION_RC_MODE: { // 0:quality mode;1:bit-rate mode

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