History

add encoder svc/avc style check

huili2 committed 9 years ago

Commit 28838521 parent 1c33f2f1 file · +58 −0Browse files

Showing the changes to test/api/encode_options_test.cpp (1 of 1 file). Show all

Unified · Split

test/api/encode_options_test.cpp+58−0
@@ -2058,3 +2058,61 @@ TEST_F (EncodeDecodeTestAPI, ProfileLevelSetting) { · 2057 unmodified lines
20582058 rv = encoder_->Uninitialize();
20592059 ASSERT_TRUE (rv == cmResultSuccess) << "rv = " << rv;
20602060 }
2061+
2062+TEST_F (EncodeDecodeTestAPI, AVCSVCExtensionCheck) {
2063+ int iWidth = 640;
2064+ int iHeight = 360;
2065+ float fFrameRate = rand() % 30 + 0.5f;
2066+ int iTotalFrame = 10; //total test enc frame num
2067+ int iSliceNum = 1;
2068+
2069+ int iRet;
2070+ int iSpatialLayerNumList[] = {1, 3};
2071+ int iLoopNum = 5;
2072+ for (int i = 0; i < iLoopNum; ++i) {
2073+ // prepare params
2074+ SEncParamExt sParam;
2075+ encoder_->GetDefaultParams (&sParam);
2076+ int iCurrSpatialLayerNum = iSpatialLayerNumList[rand() % 2];
2077+ prepareParamDefault (iCurrSpatialLayerNum, iSliceNum, iWidth, iHeight, fFrameRate, &sParam);
2078+ sParam.bSimulcastAVC = rand() & 1; //0 or 1
2079+ sParam.iRCMode = RC_TIMESTAMP_MODE;
2080+ sParam.iNumRefFrame = 1;
2081+ sParam.fMaxFrameRate = fFrameRate;
2082+ sParam.sSpatialLayers[0].iSpatialBitrate = sParam.iTargetBitrate = 500;
2083+ sParam.sSpatialLayers[1].iSpatialBitrate = sParam.iTargetBitrate = 1000;
2084+ sParam.sSpatialLayers[2].iSpatialBitrate = sParam.iTargetBitrate = 2200;
2085+ sParam.iTargetBitrate = 4000;
2086+ //int TraceLevel = WELS_LOG_DEBUG;
2087+ //encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &TraceLevel);
2088+ //decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &TraceLevel);
2089+ iRet = encoder_->InitializeExt (&sParam);
2090+ ASSERT_TRUE (iRet == cmResultSuccess) << "InitializeExt: iRet = " << iRet << " at " << sParam.iPicWidth << "x" <<
2091+ sParam.iPicHeight;
2092+ ASSERT_TRUE (InitialEncDec (iWidth, iHeight));
2093+ int iLen = 0;
2094+ for (int j = 0; j < iTotalFrame; ++j) {
2095+ EncodeOneFrame (0);
2096+ encToDecData (info, iLen);
2097+ uint8_t cTypeByte;
2098+ for (int iLayer = 0; iLayer < info.iLayerNum; ++iLayer) {
2099+ SLayerBSInfo* pLayerBsInfo = &info.sLayerInfo[iLayer];
2100+ for (int iPacketNum = 0; iPacketNum < pLayerBsInfo->iNalCount; ++iPacketNum) {
2101+ cTypeByte = (* (pLayerBsInfo->pBsBuf + 4)) & 0x1f;
2102+ if (sParam.bSimulcastAVC) {
2103+ EXPECT_TRUE (cTypeByte <= 8) << "simulcastAVC, spatial_id = " << pLayerBsInfo->uiSpatialId << ", typeByte = " <<
2104+ cTypeByte;
2105+ } else {
2106+ if (pLayerBsInfo->uiSpatialId == 0)
2107+ EXPECT_TRUE (cTypeByte <= 8 || cTypeByte == 14) << "simulcastSVC, spatial_id = 0, typeByte = " << cTypeByte;
2108+ else
2109+ EXPECT_TRUE (cTypeByte >= 14) << "simulcastSVC, spatial_id = " << pLayerBsInfo->uiSpatialId << ", typeByte = " <<
2110+ cTypeByte;;
2111+ }
2112+ }
2113+ }
2114+ }
2115+ iRet = encoder_->Uninitialize();
2116+ ASSERT_TRUE (iRet == cmResultSuccess) << "rv = " << iRet;
2117+ }
2118+}

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