11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NETWORK
19PROMEKI_NAMESPACE_BEGIN
64 static constexpr double Beta = 1.10;
82 static double activeRatio(
int activeLines,
int totalLines) {
83 if (activeLines <= 0 || totalLines <= 0)
return 0.0;
84 return static_cast<double>(activeLines) /
85 static_cast<double>(totalLines);
102 static Duration trsGapped(
int packetsPerFrame,
103 const Duration &frameInterval,
118 static Duration trsLinear(
int packetsPerFrame,
119 const Duration &frameInterval);
139 static int64_t tvdUtcNs(int64_t frameAnchorUtcNs, int64_t frameIndex,
140 const Duration &frameInterval,
141 const Duration &trOffset = Duration::zero());
161 static int64_t tprJUtcNs(int64_t tvdUtcNs,
int packetIndex,
const Duration &trs);
180 static int64_t vrxFullNarrowBytes(
int packetsPerFrame,
int maxUdpBytes,
181 const Duration &frameInterval);
197 static int cmaxNarrowPackets(
int packetsPerFrame,
double activeRatio,
198 const Duration &frameInterval);
215 static int64_t vrxFullWideBytes(
int packetsPerFrame,
int maxUdpBytes,
216 const Duration &frameInterval);
228 static int cmaxWidePackets(
int packetsPerFrame,
const Duration &frameInterval);
255 static RtpSenderType resolveSenderType(
const RtpPacingMode &pacingMode);
285 static Duration troDefault(
const RtpSenderType &senderType,
286 int packetsPerFrame,
const Duration &frameInterval,
287 double activeRatio,
int maxUdpBytes);
302 static String tpFmtpValue(
const RtpSenderType &senderType);
315 static RtpSenderType senderTypeFromTp(
const String &value);