19 std::chrono::microseconds windowSize = std::chrono::seconds(2),
20 int maxDurationInFrames = 0);
22 void setWindowSize(std::chrono::microseconds windowSize);
23 void setMaxDurationInFrames(
int maxDurationInFrames);
26 void onData(std::chrono::microseconds timestamp,
size_t dataSize,
bool isKeyFrame);
27 int64_t bitrateBitsPerSecond()
const;
28 float getFrameRate()
const;
29 float getAverageGopSize()
const;
30 bool hasMediaData()
const;
33 std::chrono::microseconds m_windowSize {};
34 int m_maxDurationInFrames = 0;
39 Data(std::chrono::microseconds timestamp,
size_t size,
bool isKeyFrame):
40 timestamp(timestamp), size(size), isKeyFrame(isKeyFrame)
44 std::chrono::microseconds timestamp{};
46 bool isKeyFrame =
false;
48 bool operator<(std::chrono::microseconds value)
const {
return timestamp < value; }
51 std::chrono::microseconds intervalUnsafe()
const;
53 mutable std::mutex m_mutex;
54 std::deque<Data> m_data;
55 int64_t m_totalSizeBytes = 0;
57 std::chrono::steady_clock::time_point m_lastDataTimer;
Definition: apple_utils.h:6