commit
dbd4330508
@ -771,6 +771,9 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) {
|
|||||||
//adjust to valid range
|
//adjust to valid range
|
||||||
m_pEncContext->pSvcParam->fMaxFrameRate = WELS_CLIP3 (iValue, MIN_FRAME_RATE, MAX_FRAME_RATE);
|
m_pEncContext->pSvcParam->fMaxFrameRate = WELS_CLIP3 (iValue, MIN_FRAME_RATE, MAX_FRAME_RATE);
|
||||||
WelsEncoderApplyFrameRate (m_pEncContext->pSvcParam);
|
WelsEncoderApplyFrameRate (m_pEncContext->pSvcParam);
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_FRAME_RATE,m_pEncContext->pSvcParam->fMaxFrameRate= %f",
|
||||||
|
m_pEncContext->pSvcParam->fMaxFrameRate);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_BITRATE: { // Target bit-rate
|
case ENCODER_OPTION_BITRATE: { // Target bit-rate
|
||||||
@ -813,6 +816,8 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) {
|
|||||||
}
|
}
|
||||||
//adjust to valid range
|
//adjust to valid range
|
||||||
WelsEncoderApplyBitRate (&m_pWelsTrace->m_sLogCtx, m_pEncContext->pSvcParam, pInfo->iLayer);
|
WelsEncoderApplyBitRate (&m_pWelsTrace->m_sLogCtx, m_pEncContext->pSvcParam, pInfo->iLayer);
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_BITRATE layerId= %d,iSpatialBitrate = %d", pInfo->iLayer, iBitrate);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_MAX_BITRATE: { // Target bit-rate
|
case ENCODER_OPTION_MAX_BITRATE: { // Target bit-rate
|
||||||
@ -856,16 +861,25 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) {
|
|||||||
}
|
}
|
||||||
//adjust to valid range
|
//adjust to valid range
|
||||||
WelsEncoderApplyBitRate (&m_pWelsTrace->m_sLogCtx, m_pEncContext->pSvcParam, pInfo->iLayer);
|
WelsEncoderApplyBitRate (&m_pWelsTrace->m_sLogCtx, m_pEncContext->pSvcParam, pInfo->iLayer);
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_MAX_BITRATE layerId= %d,iMaxSpatialBitrate = %d", pInfo->iLayer,
|
||||||
|
iBitrate);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_RC_MODE: { // 0:quality mode;1:bit-rate mode;2:bitrate limited mode
|
case ENCODER_OPTION_RC_MODE: { // 0:quality mode;1:bit-rate mode;2:bitrate limited mode
|
||||||
int32_t iValue = * ((int32_t*)pOption);
|
int32_t iValue = * ((int32_t*)pOption);
|
||||||
m_pEncContext->pSvcParam->iRCMode = (RC_MODES) iValue;
|
m_pEncContext->pSvcParam->iRCMode = (RC_MODES) iValue;
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_RC_MODE iRCMode= %d ",
|
||||||
|
iValue);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_PADDING_PADDING: { // 0:disable padding;1:padding
|
case ENCODER_PADDING_PADDING: { // 0:disable padding;1:padding
|
||||||
int32_t iValue = * ((int32_t*)pOption);
|
int32_t iValue = * ((int32_t*)pOption);
|
||||||
m_pEncContext->pSvcParam->iPaddingFlag = iValue;
|
m_pEncContext->pSvcParam->iPaddingFlag = iValue;
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_PADDING_PADDING iPaddingFlag= %d ",
|
||||||
|
iValue);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_LTR_RECOVERY_REQUEST: {
|
case ENCODER_LTR_RECOVERY_REQUEST: {
|
||||||
@ -881,6 +895,9 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) {
|
|||||||
case ENCODER_LTR_MARKING_PERIOD: {
|
case ENCODER_LTR_MARKING_PERIOD: {
|
||||||
uint32_t iValue = * ((uint32_t*) (pOption));
|
uint32_t iValue = * ((uint32_t*) (pOption));
|
||||||
m_pEncContext->pSvcParam->iLtrMarkPeriod = iValue;
|
m_pEncContext->pSvcParam->iLtrMarkPeriod = iValue;
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_LTR_MARKING_PERIOD iLtrMarkPeriod= %d ",
|
||||||
|
iValue);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_LTR: {
|
case ENCODER_OPTION_LTR: {
|
||||||
@ -888,6 +905,10 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) {
|
|||||||
if (WelsEncoderApplyLTR (&m_pWelsTrace->m_sLogCtx, &m_pEncContext, pLTRValue)) {
|
if (WelsEncoderApplyLTR (&m_pWelsTrace->m_sLogCtx, &m_pEncContext, pLTRValue)) {
|
||||||
return cmInitParaError;
|
return cmInitParaError;
|
||||||
}
|
}
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_LTR,expected bEnableLongTermReference = %d,expeced iLTRRefNum = %d,actual bEnableLongTermReference = %d,actual iLTRRefNum = %d",
|
||||||
|
pLTRValue->bEnableLongTermReference, pLTRValue->iLTRRefNum, m_pEncContext->pSvcParam->bEnableLongTermReference,
|
||||||
|
m_pEncContext->pSvcParam->iLTRRefNum);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_ENABLE_SSEI: {
|
case ENCODER_OPTION_ENABLE_SSEI: {
|
||||||
@ -960,6 +981,10 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) {
|
|||||||
return cmInitParaError;
|
return cmInitParaError;
|
||||||
}
|
}
|
||||||
CheckProfileSetting (pProfileInfo->iLayer, pProfileInfo->uiProfileIdc);
|
CheckProfileSetting (pProfileInfo->iLayer, pProfileInfo->uiProfileIdc);
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_PROFILE,layerId = %d,expected profile = %d,actual profile = %d",
|
||||||
|
pProfileInfo->iLayer, pProfileInfo->uiProfileIdc,
|
||||||
|
m_pEncContext->pSvcParam->sSpatialLayers[pProfileInfo->iLayer].uiProfileIdc);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_LEVEL: {
|
case ENCODER_OPTION_LEVEL: {
|
||||||
@ -970,21 +995,31 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) {
|
|||||||
return cmInitParaError;
|
return cmInitParaError;
|
||||||
}
|
}
|
||||||
CheckLevelSetting (pLevelInfo->iLayer, pLevelInfo->uiLevelIdc);
|
CheckLevelSetting (pLevelInfo->iLayer, pLevelInfo->uiLevelIdc);
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_LEVEL,layerId = %d,expected level = %d,actual level = %d",
|
||||||
|
pLevelInfo->iLayer, pLevelInfo->uiLevelIdc, m_pEncContext->pSvcParam->sSpatialLayers[pLevelInfo->iLayer].uiLevelIdc);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_NUMBER_REF: {
|
case ENCODER_OPTION_NUMBER_REF: {
|
||||||
int32_t iValue = * ((int32_t*)pOption);
|
int32_t iValue = * ((int32_t*)pOption);
|
||||||
CheckReferenceNumSetting (iValue);
|
CheckReferenceNumSetting (iValue);
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_NUMBER_REF,expected refNum = %d,actual refnum = %d", iValue,
|
||||||
|
m_pEncContext->pSvcParam->iNumRefFrame);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_DELIVERY_STATUS: {
|
case ENCODER_OPTION_DELIVERY_STATUS: {
|
||||||
SDeliveryStatus* pValue = (static_cast<SDeliveryStatus*> (pOption));
|
SDeliveryStatus* pValue = (static_cast<SDeliveryStatus*> (pOption));
|
||||||
m_pEncContext->bDeliveryFlag = pValue->bDeliveryFlag;
|
m_pEncContext->bDeliveryFlag = pValue->bDeliveryFlag;
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_DELIVERY_STATUS,bDeliveryFlag = %d", pValue->bDeliveryFlag);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_COMPLEXITY: {
|
case ENCODER_OPTION_COMPLEXITY: {
|
||||||
int32_t iValue = * (static_cast<int32_t*> (pOption));
|
int32_t iValue = * (static_cast<int32_t*> (pOption));
|
||||||
m_pEncContext->pSvcParam->iComplexityMode = (ECOMPLEXITY_MODE)iValue;
|
m_pEncContext->pSvcParam->iComplexityMode = (ECOMPLEXITY_MODE)iValue;
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_COMPLEXITY,iComplexityMode = %d", iValue);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_GET_STATISTICS: {
|
case ENCODER_OPTION_GET_STATISTICS: {
|
||||||
@ -995,11 +1030,15 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) {
|
|||||||
case ENCODER_OPTION_STATISTICS_LOG_INTERVAL: {
|
case ENCODER_OPTION_STATISTICS_LOG_INTERVAL: {
|
||||||
int32_t iValue = * (static_cast<int32_t*> (pOption));
|
int32_t iValue = * (static_cast<int32_t*> (pOption));
|
||||||
m_pEncContext->iStatisticsLogInterval = iValue;
|
m_pEncContext->iStatisticsLogInterval = iValue;
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_STATISTICS_LOG_INTERVAL,iStatisticsLogInterval = %d", iValue);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENCODER_OPTION_IS_LOSSLESS_LINK: {
|
case ENCODER_OPTION_IS_LOSSLESS_LINK: {
|
||||||
bool bValue = * (static_cast<bool*> (pOption));
|
bool bValue = * (static_cast<bool*> (pOption));
|
||||||
m_pEncContext->pSvcParam->bIsLosslessLink = bValue;
|
m_pEncContext->pSvcParam->bIsLosslessLink = bValue;
|
||||||
|
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
|
||||||
|
"CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_IS_LOSSLESS_LINK,bIsLosslessLink = %d", bValue);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user