MCPcopy Create free account
hub / github.com/cisco/openh264 / TEST_P

Function TEST_P

test/api/encode_options_test.cpp:1330–1433  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1328 ::testing::ValuesIn (kOptionParamArray));
1329
1330TEST_P (EncodeTestAPI, SetEncOptionSize) {
1331 EncodeOptionParam p = GetParam();
1332 memset (&param_, 0, sizeof (SEncParamExt));
1333 encoder_->GetDefaultParams (&param_);
1334 param_.uiMaxNalSize = p.uiMaxNalLen;
1335 param_.iTemporalLayerNum = (rand() % 4) + 1;
1336 param_.iSpatialLayerNum = 1;
1337 param_.iUsageType = CAMERA_VIDEO_REAL_TIME;
1338 param_.iPicWidth = p.iWidth;
1339 param_.iPicHeight = p.iHeight;
1340 param_.fMaxFrameRate = p.fFramerate;
1341 param_.iRCMode = RC_OFF_MODE; //rc off
1342 param_.iMultipleThreadIdc = p.iThreads;
1343 param_.iNumRefFrame = AUTO_REF_PIC_COUNT;
1344 param_.sSpatialLayers[0].iVideoWidth = p.iWidth;
1345 param_.sSpatialLayers[0].iVideoHeight = p.iHeight;
1346 param_.sSpatialLayers[0].fFrameRate = p.fFramerate;
1347
1348 int iSliceModeTestNum = 1;
1349 if (SM_RESERVED == p.eSliceMode) {
1350 iSliceModeTestNum = SLICE_MODE_NUM;
1351 }
1352
1353 for (int iSliceIdx = 0; iSliceIdx < iSliceModeTestNum; iSliceIdx++) {
1354 if (1 == iSliceModeTestNum) {
1355 param_.sSpatialLayers[0].sSliceArgument.uiSliceMode = p.eSliceMode;
1356 } else {
1357 param_.sSpatialLayers[0].sSliceArgument.uiSliceMode = static_cast<SliceModeEnum> (iSliceIdx);
1358 }
1359
1360 FILE* pFile = NULL;
1361 if (p.sFileSave != NULL && strlen (p.sFileSave) > 0) {
1362 pFile = fopen (p.sFileSave, "wb");
1363 }
1364
1365 if (SM_FIXEDSLCNUM_SLICE == param_.sSpatialLayers[0].sSliceArgument.uiSliceMode) {
1366 param_.sSpatialLayers[0].sSliceArgument.uiSliceNum = 8;
1367 } else if (SM_RASTER_SLICE == param_.sSpatialLayers[0].sSliceArgument.uiSliceMode) {
1368 param_.sSpatialLayers[0].sSliceArgument.uiSliceMbNum[0] =
1369 param_.sSpatialLayers[0].sSliceArgument.uiSliceMbNum[1] =
1370 param_.sSpatialLayers[0].sSliceArgument.uiSliceMbNum[2] =
1371 param_.sSpatialLayers[0].sSliceArgument.uiSliceMbNum[3] = ((p.iWidth * p.iHeight) >> 10);
1372 } else if (SM_SIZELIMITED_SLICE == param_.sSpatialLayers[0].sSliceArgument.uiSliceMode && 450 > p.uiMaxNalLen) {
1373 param_.uiMaxNalSize = 450;
1374 param_.sSpatialLayers[0].sSliceArgument.uiSliceSizeConstraint = 450;
1375 }
1376
1377 int32_t iTraceLevel = WELS_LOG_QUIET;
1378 encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1379 decoder_->SetOption (DECODER_OPTION_TRACE_LEVEL, &iTraceLevel);
1380
1381 encoder_->Uninitialize();
1382 int rv = encoder_->InitializeExt (&param_);
1383 ASSERT_TRUE (rv == cmResultSuccess);
1384 ASSERT_TRUE (InitialEncDec (p.iWidth, p.iHeight));
1385
1386 int32_t iSpsPpsIdAddition = 1;
1387 encoder_->SetOption (ENCODER_OPTION_SPS_PPS_ID_STRATEGY, &iSpsPpsIdAddition);

Callers

nothing calls this directly

Calls 5

GetDefaultParamsMethod · 0.45
SetOptionMethod · 0.45
UninitializeMethod · 0.45
InitializeExtMethod · 0.45
DecodeFrameNoDelayMethod · 0.45

Tested by

no test coverage detected