| 379 | #endif |
| 380 | |
| 381 | void RcUpdateTemporalZero (sWelsEncCtx* pEncCtx) { |
| 382 | const int32_t kiDid = pEncCtx->uiDependencyId; |
| 383 | SWelsSvcRc* pWelsSvcRc = &pEncCtx->pWelsSvcRc[kiDid]; |
| 384 | SSpatialLayerInternal* pDLayerParam = &pEncCtx->pSvcParam->sDependencyLayers[kiDid]; |
| 385 | const int32_t kiGopSize = (1 << pDLayerParam->iDecompositionStages); |
| 386 | |
| 387 | if (pWelsSvcRc->iPreviousGopSize != kiGopSize) { |
| 388 | #if GOM_TRACE_FLAG |
| 389 | RcTraceVGopBitrate (pEncCtx); |
| 390 | #endif |
| 391 | RcInitTlWeight (pEncCtx); |
| 392 | RcInitVGop (pEncCtx); |
| 393 | } else if (pWelsSvcRc->iGopIndexInVGop == pWelsSvcRc->iGopNumberInVGop || pEncCtx->eSliceType == I_SLICE) { |
| 394 | #if GOM_TRACE_FLAG |
| 395 | RcTraceVGopBitrate (pEncCtx); |
| 396 | #endif |
| 397 | RcInitVGop (pEncCtx); |
| 398 | } |
| 399 | pWelsSvcRc->iGopIndexInVGop++; |
| 400 | } |
| 401 | |
| 402 | |
| 403 | void RcCalculateIdrQp (sWelsEncCtx* pEncCtx) { |
no test coverage detected