libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
mediaioclock.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
13#include <promeki/namespace.h>
14#include <promeki/clock.h>
15#include <promeki/objectbase.h>
16
17PROMEKI_NAMESPACE_BEGIN
18
19class MediaIOPortGroup;
20
70class MediaIOClock : public Clock {
71 public:
77 explicit MediaIOClock(MediaIOPortGroup *group = nullptr);
78
88 void setGroup(MediaIOPortGroup *group);
89
90 int64_t resolutionNs() const override;
91 ClockJitter jitter() const override;
92
93 protected:
94 Result<int64_t> raw() const override;
95 Error sleepUntilNs(int64_t targetNs) const override;
96
97 private:
98 int64_t framePeriodNs() const;
99
100 ObjectBasePtr<MediaIOPortGroup> _group;
101};
102
103PROMEKI_NAMESPACE_END
104
105#endif // PROMEKI_ENABLE_PROAV