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

Function RcInitLayerMemory

codec/encoder/core/src/ratectl.cpp:61–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59}; //WELS_ROUND(INT_MULTIPLY*pow (2.0, (iQP - 4.0) / 6.0))
60
61void RcInitLayerMemory (SWelsSvcRc* pWelsSvcRc, CMemoryAlign* pMA, const int32_t kiMaxTl) {
62 const int32_t kiGomSize = pWelsSvcRc->iGomSize;
63 const int32_t kiGomSizeD = kiGomSize * sizeof (double);
64 const int32_t kiGomSizeI = kiGomSize * sizeof (int32_t);
65 const int32_t kiLayerRcSize = kiGomSizeD + (kiGomSizeI * 3) + sizeof (SRCTemporal) * kiMaxTl;
66 uint8_t* pBaseMem = (uint8_t*)pMA->WelsMalloc (kiLayerRcSize, "pWelsSvcRc->pTemporalOverRc");
67
68 if (NULL == pBaseMem)
69 return;
70
71 pWelsSvcRc->pTemporalOverRc = (SRCTemporal*)pBaseMem;
72 pBaseMem += sizeof (SRCTemporal) * kiMaxTl;
73 pWelsSvcRc->pGomComplexity = (double*)pBaseMem;
74 pBaseMem += kiGomSizeD;
75 pWelsSvcRc->pGomForegroundBlockNum = (int32_t*)pBaseMem;
76 pBaseMem += kiGomSizeI;
77 pWelsSvcRc->pCurrentFrameGomSad = (int32_t*)pBaseMem;
78 pBaseMem += kiGomSizeI;
79 pWelsSvcRc->pGomCost = (int32_t*)pBaseMem;
80
81}
82
83void RcFreeLayerMemory (SWelsSvcRc* pWelsSvcRc, CMemoryAlign* pMA) {
84 if (pWelsSvcRc != NULL && pWelsSvcRc->pTemporalOverRc != NULL) {

Callers 1

RcInitSequenceParameterFunction · 0.85

Calls 1

WelsMallocMethod · 0.80

Tested by

no test coverage detected