use the external setting for max_qp and min_qp
This commit is contained in:
parent
b2c08598bc
commit
f2d391980e
@ -202,7 +202,7 @@ int32_t ParamValidation (SLogContext* pLogCtx, SWelsSvcCodingParam* pCfg) {
|
|||||||
if (pCfg->iSpatialLayerNum > 1) {
|
if (pCfg->iSpatialLayerNum > 1) {
|
||||||
for (i = pCfg->iSpatialLayerNum - 1; i > 0; i--) {
|
for (i = pCfg->iSpatialLayerNum - 1; i > 0; i--) {
|
||||||
SSpatialLayerConfig* fDlpUp = &pCfg->sSpatialLayers[i];
|
SSpatialLayerConfig* fDlpUp = &pCfg->sSpatialLayers[i];
|
||||||
SSpatialLayerConfig* fDlp = &pCfg->sSpatialLayers[i-1];
|
SSpatialLayerConfig* fDlp = &pCfg->sSpatialLayers[i - 1];
|
||||||
if ((fDlp->iVideoWidth > fDlpUp->iVideoWidth) || (fDlp->iVideoHeight > fDlpUp->iVideoHeight)) {
|
if ((fDlp->iVideoWidth > fDlpUp->iVideoWidth) || (fDlp->iVideoHeight > fDlpUp->iVideoHeight)) {
|
||||||
WelsLog (pLogCtx, WELS_LOG_ERROR,
|
WelsLog (pLogCtx, WELS_LOG_ERROR,
|
||||||
"ParamValidation,Invalid resolution layer(%d) resolution(%d x %d) should be less than the upper spatial layer resolution(%d x %d) ",
|
"ParamValidation,Invalid resolution layer(%d) resolution(%d x %d) should be less than the upper spatial layer resolution(%d x %d) ",
|
||||||
@ -271,6 +271,18 @@ int32_t ParamValidation (SLogContext* pLogCtx, SWelsSvcCodingParam* pCfg) {
|
|||||||
WelsLog (pLogCtx, WELS_LOG_WARNING,
|
WelsLog (pLogCtx, WELS_LOG_WARNING,
|
||||||
"bEnableFrameSkip = %d,bitrate can't be controlled for RC_QUALITY_MODE,RC_BITRATE_MODE and RC_TIMESTAMP_MODE without enabling skip frame.",
|
"bEnableFrameSkip = %d,bitrate can't be controlled for RC_QUALITY_MODE,RC_BITRATE_MODE and RC_TIMESTAMP_MODE without enabling skip frame.",
|
||||||
pCfg->bEnableFrameSkip);
|
pCfg->bEnableFrameSkip);
|
||||||
|
if (pCfg->iRCMode == RC_QUALITY_MODE) {
|
||||||
|
pCfg->iMinQp = WELS_CLIP3 (pCfg->iMinQp , GOM_MIN_QP_MODE, GOM_MAX_QP_MODE);
|
||||||
|
pCfg->iMaxQp = WELS_CLIP3 (pCfg->iMaxQp , GOM_MIN_QP_MODE, GOM_MAX_QP_MODE);
|
||||||
|
if (pCfg->iMaxQp < pCfg->iMinQp)
|
||||||
|
pCfg->iMaxQp = GOM_MAX_QP_MODE;
|
||||||
|
} else {
|
||||||
|
pCfg->iMinQp = WELS_CLIP3 (pCfg->iMinQp , 0, 51);
|
||||||
|
pCfg->iMaxQp = WELS_CLIP3 (pCfg->iMaxQp , 0, 51);
|
||||||
|
if (pCfg->iMaxQp < pCfg->iMinQp)
|
||||||
|
pCfg->iMaxQp = 51;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// ref-frames validation
|
// ref-frames validation
|
||||||
if (((pCfg->iUsageType == CAMERA_VIDEO_REAL_TIME) || (pCfg->iUsageType == SCREEN_CONTENT_REAL_TIME))
|
if (((pCfg->iUsageType == CAMERA_VIDEO_REAL_TIME) || (pCfg->iUsageType == SCREEN_CONTENT_REAL_TIME))
|
||||||
@ -3709,7 +3721,8 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour
|
|||||||
if (iSpatialNum < 1) { // skip due to temporal layer settings (different frame rate)
|
if (iSpatialNum < 1) { // skip due to temporal layer settings (different frame rate)
|
||||||
++ pCtx->iCodingIndex;
|
++ pCtx->iCodingIndex;
|
||||||
pFbi->eFrameType = videoFrameTypeSkip;
|
pFbi->eFrameType = videoFrameTypeSkip;
|
||||||
WelsLog (& (pCtx->sLogCtx), WELS_LOG_DEBUG, "[Rc] Frame timestamp = %lld, skip one frame due to preprocessing return (temporal layer settings or else), continual skipped %d frames",
|
WelsLog (& (pCtx->sLogCtx), WELS_LOG_DEBUG,
|
||||||
|
"[Rc] Frame timestamp = %lld, skip one frame due to preprocessing return (temporal layer settings or else), continual skipped %d frames",
|
||||||
pSrcPic->uiTimeStamp, pCtx->iContinualSkipFrames);
|
pSrcPic->uiTimeStamp, pCtx->iContinualSkipFrames);
|
||||||
return ENC_RETURN_SUCCESS;
|
return ENC_RETURN_SUCCESS;
|
||||||
}
|
}
|
||||||
@ -3719,7 +3732,8 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour
|
|||||||
if (pCtx->pFuncList->pfRc.pfWelsUpdateBufferWhenSkip)
|
if (pCtx->pFuncList->pfRc.pfWelsUpdateBufferWhenSkip)
|
||||||
pCtx->pFuncList->pfRc.pfWelsUpdateBufferWhenSkip (pCtx, iSpatialNum);
|
pCtx->pFuncList->pfRc.pfWelsUpdateBufferWhenSkip (pCtx, iSpatialNum);
|
||||||
pFbi->eFrameType = eFrameType;
|
pFbi->eFrameType = eFrameType;
|
||||||
WelsLog (& (pCtx->sLogCtx), WELS_LOG_DEBUG, "[Rc] Frame timestamp = %lld, skip one frame due to target_br, continual skipped %d frames",
|
WelsLog (& (pCtx->sLogCtx), WELS_LOG_DEBUG,
|
||||||
|
"[Rc] Frame timestamp = %lld, skip one frame due to target_br, continual skipped %d frames",
|
||||||
pSrcPic->uiTimeStamp, pCtx->iContinualSkipFrames);
|
pSrcPic->uiTimeStamp, pCtx->iContinualSkipFrames);
|
||||||
return ENC_RETURN_SUCCESS;
|
return ENC_RETURN_SUCCESS;
|
||||||
}
|
}
|
||||||
@ -3730,7 +3744,8 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour
|
|||||||
(uint32_t)pSrcPic->uiTimeStamp);
|
(uint32_t)pSrcPic->uiTimeStamp);
|
||||||
if (bSkip) {
|
if (bSkip) {
|
||||||
pFbi->eFrameType = videoFrameTypeSkip;
|
pFbi->eFrameType = videoFrameTypeSkip;
|
||||||
WelsLog (& (pCtx->sLogCtx), WELS_LOG_DEBUG, "[Rc] Frame timestamp = %lld, skip one frame due to max_br, continual skipped %d frames",
|
WelsLog (& (pCtx->sLogCtx), WELS_LOG_DEBUG,
|
||||||
|
"[Rc] Frame timestamp = %lld, skip one frame due to max_br, continual skipped %d frames",
|
||||||
pSrcPic->uiTimeStamp, pCtx->iContinualSkipFrames);
|
pSrcPic->uiTimeStamp, pCtx->iContinualSkipFrames);
|
||||||
return ENC_RETURN_SUCCESS;
|
return ENC_RETURN_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -154,8 +154,9 @@ void RcInitSequenceParameter (sWelsEncCtx* pEncCtx) {
|
|||||||
|
|
||||||
pWelsSvcRc->iNumberMbGom = iMbWidth * iGomRowMode0;
|
pWelsSvcRc->iNumberMbGom = iMbWidth * iGomRowMode0;
|
||||||
|
|
||||||
pWelsSvcRc->iMinQp = GOM_MIN_QP_MODE;
|
pWelsSvcRc->iMinQp = pEncCtx->pSvcParam->iMinQp;
|
||||||
pWelsSvcRc->iMaxQp = GOM_MAX_QP_MODE;
|
|
||||||
|
pWelsSvcRc->iMaxQp = pEncCtx->pSvcParam->iMaxQp;
|
||||||
|
|
||||||
pWelsSvcRc->iFrameDeltaQpUpper = LAST_FRAME_QP_RANGE_UPPER_MODE1 - ((LAST_FRAME_QP_RANGE_UPPER_MODE1 -
|
pWelsSvcRc->iFrameDeltaQpUpper = LAST_FRAME_QP_RANGE_UPPER_MODE1 - ((LAST_FRAME_QP_RANGE_UPPER_MODE1 -
|
||||||
LAST_FRAME_QP_RANGE_UPPER_MODE0) * pWelsSvcRc->iRcVaryRatio / MAX_BITS_VARY_PERCENTAGE);
|
LAST_FRAME_QP_RANGE_UPPER_MODE0) * pWelsSvcRc->iRcVaryRatio / MAX_BITS_VARY_PERCENTAGE);
|
||||||
@ -414,7 +415,7 @@ void RcInitIdrQp (sWelsEncCtx* pEncCtx) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
pWelsSvcRc->iInitialQp = dInitialQPArray[iBppIndex][i];
|
pWelsSvcRc->iInitialQp = dInitialQPArray[iBppIndex][i];
|
||||||
pWelsSvcRc->iInitialQp = WELS_CLIP3 (pWelsSvcRc->iInitialQp, MIN_IDR_QP, MAX_IDR_QP);
|
pWelsSvcRc->iInitialQp = WELS_CLIP3 (pWelsSvcRc->iInitialQp, pEncCtx->pSvcParam->iMinQp, pEncCtx->pSvcParam->iMaxQp);
|
||||||
pEncCtx->iGlobalQp = pWelsSvcRc->iInitialQp;
|
pEncCtx->iGlobalQp = pWelsSvcRc->iInitialQp;
|
||||||
pWelsSvcRc->iQStep = RcConvertQp2QStep (pEncCtx->iGlobalQp);
|
pWelsSvcRc->iQStep = RcConvertQp2QStep (pEncCtx->iGlobalQp);
|
||||||
pWelsSvcRc->iLastCalculatedQScale = pEncCtx->iGlobalQp;
|
pWelsSvcRc->iLastCalculatedQScale = pEncCtx->iGlobalQp;
|
||||||
@ -429,7 +430,7 @@ void RcCalculateIdrQp (sWelsEncCtx* pEncCtx) {
|
|||||||
}
|
}
|
||||||
pWelsSvcRc->iInitialQp = RcConvertQStep2Qp (WELS_DIV_ROUND (pWelsSvcRc->iIntraComplexity,
|
pWelsSvcRc->iInitialQp = RcConvertQStep2Qp (WELS_DIV_ROUND (pWelsSvcRc->iIntraComplexity,
|
||||||
pWelsSvcRc->iTargetBits));
|
pWelsSvcRc->iTargetBits));
|
||||||
pWelsSvcRc->iInitialQp = WELS_CLIP3 (pWelsSvcRc->iInitialQp, MIN_IDR_QP, MAX_IDR_QP);
|
pWelsSvcRc->iInitialQp = WELS_CLIP3 (pWelsSvcRc->iInitialQp, pEncCtx->pSvcParam->iMinQp, pEncCtx->pSvcParam->iMaxQp);
|
||||||
pEncCtx->iGlobalQp = pWelsSvcRc->iInitialQp;
|
pEncCtx->iGlobalQp = pWelsSvcRc->iInitialQp;
|
||||||
pWelsSvcRc->iQStep = RcConvertQp2QStep (pEncCtx->iGlobalQp);
|
pWelsSvcRc->iQStep = RcConvertQp2QStep (pEncCtx->iGlobalQp);
|
||||||
pWelsSvcRc->iLastCalculatedQScale = pEncCtx->iGlobalQp;
|
pWelsSvcRc->iLastCalculatedQScale = pEncCtx->iGlobalQp;
|
||||||
@ -460,14 +461,14 @@ void RcCalculatePictureQp (sWelsEncCtx* pEncCtx) {
|
|||||||
iLumaQp = WELS_CLIP3 (iLumaQp,
|
iLumaQp = WELS_CLIP3 (iLumaQp,
|
||||||
pWelsSvcRc->iLastCalculatedQScale - pWelsSvcRc->iFrameDeltaQpLower + iDeltaQpTemporal,
|
pWelsSvcRc->iLastCalculatedQScale - pWelsSvcRc->iFrameDeltaQpLower + iDeltaQpTemporal,
|
||||||
pWelsSvcRc->iLastCalculatedQScale + pWelsSvcRc->iFrameDeltaQpUpper + iDeltaQpTemporal);
|
pWelsSvcRc->iLastCalculatedQScale + pWelsSvcRc->iFrameDeltaQpUpper + iDeltaQpTemporal);
|
||||||
iLumaQp = WELS_CLIP3 (iLumaQp, GOM_MIN_QP_MODE, MAX_LOW_BR_QP);
|
iLumaQp = WELS_CLIP3 (iLumaQp, pEncCtx->pSvcParam->iMinQp, pEncCtx->pSvcParam->iMaxQp);
|
||||||
|
|
||||||
pWelsSvcRc->iQStep = RcConvertQp2QStep (iLumaQp);
|
pWelsSvcRc->iQStep = RcConvertQp2QStep (iLumaQp);
|
||||||
pWelsSvcRc->iLastCalculatedQScale = iLumaQp;
|
pWelsSvcRc->iLastCalculatedQScale = iLumaQp;
|
||||||
|
|
||||||
if (pEncCtx->pSvcParam->bEnableAdaptiveQuant) {
|
if (pEncCtx->pSvcParam->bEnableAdaptiveQuant) {
|
||||||
iLumaQp = WELS_CLIP3 ((iLumaQp * INT_MULTIPLY - pEncCtx->pVaa->sAdaptiveQuantParam.iAverMotionTextureIndexToDeltaQp) /
|
iLumaQp = WELS_CLIP3 ((iLumaQp * INT_MULTIPLY - pEncCtx->pVaa->sAdaptiveQuantParam.iAverMotionTextureIndexToDeltaQp) /
|
||||||
INT_MULTIPLY, GOM_MIN_QP_MODE, MAX_LOW_BR_QP);
|
INT_MULTIPLY, pEncCtx->pSvcParam->iMinQp, pEncCtx->pSvcParam->iMaxQp);
|
||||||
}
|
}
|
||||||
|
|
||||||
pEncCtx->iGlobalQp = iLumaQp;
|
pEncCtx->iGlobalQp = iLumaQp;
|
||||||
@ -497,7 +498,7 @@ void RcCalculatePictureQp (sWelsEncCtx* pEncCtx) {
|
|||||||
pWelsSvcRc->iLastCalculatedQScale + pWelsSvcRc->iFrameDeltaQpUpper + iDeltaQpTemporal);
|
pWelsSvcRc->iLastCalculatedQScale + pWelsSvcRc->iFrameDeltaQpUpper + iDeltaQpTemporal);
|
||||||
}
|
}
|
||||||
|
|
||||||
iLumaQp = WELS_CLIP3 (iLumaQp, GOM_MIN_QP_MODE, GOM_MAX_QP_MODE);
|
iLumaQp = WELS_CLIP3 (iLumaQp, pEncCtx->pSvcParam->iMinQp, pEncCtx->pSvcParam->iMaxQp);
|
||||||
|
|
||||||
pWelsSvcRc->iQStep = RcConvertQp2QStep (iLumaQp);
|
pWelsSvcRc->iQStep = RcConvertQp2QStep (iLumaQp);
|
||||||
pWelsSvcRc->iLastCalculatedQScale = iLumaQp;
|
pWelsSvcRc->iLastCalculatedQScale = iLumaQp;
|
||||||
|
@ -130,8 +130,8 @@ TEST_P (DecodeEncodeTest, CompareOutput) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
static const DecodeEncodeFileParam kFileParamArray[] = {
|
static const DecodeEncodeFileParam kFileParamArray[] = {
|
||||||
{"res/test_vd_1d.264", "9d4d682679a0746edda2824687f00ba6db91a2a8", 320, 192, 12.0f},
|
{"res/test_vd_1d.264", "0d38e143df069d13a5e74cfd03f7ba92964a13d6", 320, 192, 12.0f},
|
||||||
{"res/test_vd_rc.264", "23dab419a16c6e894518ca93444666e9336aef63", 320, 192, 12.0f},
|
{"res/test_vd_rc.264", "ea1e6c3bacd59312c18f9da0be105ba1fb8e57bb", 320, 192, 12.0f},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -103,27 +103,27 @@ TEST_P (EncoderOutputTest, CompareOutput) {
|
|||||||
static const EncodeFileParam kFileParamArray[] = {
|
static const EncodeFileParam kFileParamArray[] = {
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"e36b6169dcb5bbb90e64291250ec65995d62c846", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"bfe882345e17346a76438dad967ecd8a15052e0b", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_160x96_6fps.yuv",
|
"res/CiscoVT2people_160x96_6fps.yuv",
|
||||||
"04c73f202a29befd57ee49d242688f3e6ddfecbc", CAMERA_VIDEO_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"9879c0e65e0f2d166c450c371c95a1e36eadfa4e", CAMERA_VIDEO_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Static_152_100.yuv",
|
"res/Static_152_100.yuv",
|
||||||
"c959ae52c5469bfc37bb31870c6a7259a1bb1917", CAMERA_VIDEO_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"f2a4089dbf7278f9e7204351d6ce93e913d6ea1f", CAMERA_VIDEO_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"f03ca6a679cd12c90542e351eabfce0d902ffad2", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_ROWMB_SLICE, false, 1, false, false, false // One slice per MB row
|
"3ea419b2ea341fe548dbe65be0e955ffea59483a", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_ROWMB_SLICE, false, 1, false, false, false // One slice per MB row
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"c7f37486e00c1f18715c7aaf10444f03111418cf", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, true, 1, false, false, false
|
"7614af78a3cb16df8187c1db5492f82f3440a63b", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, true, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"c493a8087050d2993f39ad1081940dd707e6fb3e", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 2, false, false, false
|
"833a7ae798720f72d6a0b46e5cd1f046c0fdd758", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 2, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
||||||
@ -131,20 +131,20 @@ static const EncodeFileParam kFileParamArray[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
||||||
"cd10602a951712c1b93bef82a445415723e52af6", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_SINGLE_SLICE, false, 4, false, false, false
|
"40bc1ffec7febdb725ae99954bfa4cb64f070891", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_SINGLE_SLICE, false, 4, false, false, false
|
||||||
},
|
},
|
||||||
// the following values may be adjusted for times since we start tuning the strategy
|
// the following values may be adjusted for times since we start tuning the strategy
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"9b8ba682313ed9cd0512563859e050942a3e776e", SCREEN_CONTENT_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"6ce04eca6d8a6127ae1a6ee3e0d67977f806f5e2", SCREEN_CONTENT_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_160x96_6fps.yuv",
|
"res/CiscoVT2people_160x96_6fps.yuv",
|
||||||
"2706c61e9459196b4161f4bbb9444a08308ae8c5", SCREEN_CONTENT_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"2a9942d8d67509712828a5268483141bb8c9b30f", SCREEN_CONTENT_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Static_152_100.yuv",
|
"res/Static_152_100.yuv",
|
||||||
"d8457a47946e91b01310d8de9afa21ac00df8edb", SCREEN_CONTENT_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"2041510ebc2810596495d694672ada66f6ec3a0e", SCREEN_CONTENT_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
||||||
@ -157,7 +157,7 @@ static const EncodeFileParam kFileParamArray[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"7aaab6ef2dc5f95c3a2869979eba59553936e36f", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, true //turn on cabac
|
"aae07cf34b065871921f742cdf25a4bf4d623935", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, true //turn on cabac
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user