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

Method SimulateSliceInOneLayer

test/encoder/EncUT_SliceBufferReallocate.cpp:406–435  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

404}
405
406void CSliceBufferReallocatTest::SimulateSliceInOneLayer() {
407 int32_t iLayerIdx = 0;
408 SSpatialLayerConfig* pLayerCfg = &m_EncContext.pSvcParam->sSpatialLayers[iLayerIdx];
409 int32_t iTotalSliceBuffer = m_EncContext.pCurDqLayer->iMaxSliceNum;
410 int32_t iSimulateSliceNum = rand() % iTotalSliceBuffer + 1;
411
412 if (SM_SIZELIMITED_SLICE == pLayerCfg->sSliceArgument.uiSliceMode) {
413 int32_t iPartNum = m_EncContext.iActiveThreadsNum;
414 int32_t iSlicNumPerPart = iSimulateSliceNum / iPartNum;
415 int32_t iMaxSlcNumInThrd = m_EncContext.pCurDqLayer->sSliceBufferInfo[0].iMaxSliceNum;
416 int32_t iLastPartSlcNum = 0;
417
418 iSlicNumPerPart = WelsClip3 (iSlicNumPerPart, 1, iMaxSlcNumInThrd);
419 iLastPartSlcNum = iSimulateSliceNum - iSlicNumPerPart * (iPartNum - 1);
420 iLastPartSlcNum = WelsClip3 (iLastPartSlcNum, 1, iMaxSlcNumInThrd);
421
422 for (int32_t iPartIdx = 0; iPartIdx < iPartNum; iPartIdx ++) {
423 int32_t iSlcNumInPart = (iPartIdx < (iPartNum - 1)) ? iSlicNumPerPart : iLastPartSlcNum;
424 SimulateSliceInOnePartition (iPartNum, iPartIdx, iSlcNumInPart);
425 }
426 } else {
427 for (int32_t iSlcIdx = 0; iSlcIdx < iSimulateSliceNum; iSlcIdx ++) {
428 int32_t iSlcThrdIdx = RandAvailableThread (&m_EncContext, 1);
429 ASSERT_TRUE (-1 != iSlcThrdIdx);
430
431 SimulateEncodedOneSlice (iSlcIdx, iSlcThrdIdx);
432 m_EncContext.pCurDqLayer->sSliceEncCtx.iSliceNumInFrame++;
433 }
434 }
435}
436
437TEST_F (CSliceBufferReallocatTest, Reallocate_in_one_partition) {
438 sWelsEncCtx* pCtx = &m_EncContext;

Callers

nothing calls this directly

Calls 2

WelsClip3Function · 0.85
RandAvailableThreadFunction · 0.85

Tested by

no test coverage detected