libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
txtimepacketscheduler.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NETWORK
13#include <promeki/cadence.h>
14#include <promeki/duration.h>
15#include <promeki/namespace.h>
17
18PROMEKI_NAMESPACE_BEGIN
19
76class TxTimePacketScheduler : public PacketScheduler {
77 public:
78 TxTimePacketScheduler() = default;
79 ~TxTimePacketScheduler() override = default;
80
81 Error configure(const Spec &spec) override;
82 int enqueue(const PacketTransport::DatagramList &datagrams) override;
83 int predictedTxDelayUs() const override;
84
85 private:
90 uint64_t taiNanosNow() const;
91
92 Cadence _streamCadence{Duration()};
93 bool _streamAnchored = false;
94 bool _txTimeEnabled = false;
95 int64_t _taiOffsetNs = 0;
96 int _stallMultiplier = 10;
97};
98
99PROMEKI_NAMESPACE_END
100
101#endif // PROMEKI_ENABLE_NETWORK