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

Function CalcSliceComplexRatio

codec/encoder/core/src/slice_multi_threading.cpp:88–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86}
87
88void CalcSliceComplexRatio (SDqLayer* pCurDq) {
89 SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx;
90 SSlice** ppSliceInLayer = pCurDq->ppSliceInLayer;
91 int32_t iSumAv = 0;
92 const int32_t kiSliceCount = pSliceCtx->iSliceNumInFrame;
93 int32_t iSliceIdx = 0;
94 int32_t iAvI[MAX_SLICES_NUM];
95
96 assert (kiSliceCount <= MAX_SLICES_NUM);
97 WelsEmms();
98
99 while (iSliceIdx < kiSliceCount) {
100 iAvI[iSliceIdx] = WELS_DIV_ROUND (INT_MULTIPLY * ppSliceInLayer[iSliceIdx]->iCountMbNumInSlice,
101 ppSliceInLayer[iSliceIdx]->uiSliceConsumeTime);
102 MT_TRACE_LOG (NULL, WELS_LOG_DEBUG, "[MT] CalcSliceComplexRatio(), uiSliceConsumeTime[%d]= %d us, slice_run= %d",
103 iSliceIdx,
104 ppSliceInLayer[iSliceIdx]->uiSliceConsumeTime, ppSliceInLayer[iSliceIdx]->iCountMbNumInSlice);
105 iSumAv += iAvI[iSliceIdx];
106
107 ++ iSliceIdx;
108 }
109 while (-- iSliceIdx >= 0) {
110 ppSliceInLayer[iSliceIdx]->iSliceComplexRatio = WELS_DIV_ROUND (INT_MULTIPLY * iAvI[iSliceIdx], iSumAv);
111 }
112}
113
114int32_t NeedDynamicAdjust (SSlice** ppSliceInLayer, const int32_t iSliceNum) {
115 if (NULL == ppSliceInLayer) {

Callers 1

WelsEncoderEncodeExtFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected