21 std::chrono::microseconds windowSize = std::chrono::seconds(2),
22 int maxDurationInFrames = 0);
24 void setWindowSize(std::chrono::microseconds windowSize);
25 void setMaxDurationInFrames(
int maxDurationInFrames);
28 void onData(std::chrono::microseconds timestamp,
size_t dataSize,
bool isKeyFrame);
29 int64_t bitrateBitsPerSecond()
const;
30 float getFrameRate()
const;
31 float getAverageGopSize()
const;
32 bool hasMediaData()
const;
35 std::chrono::microseconds m_windowSize {};
36 int m_maxDurationInFrames = 0;
41 Data(std::chrono::microseconds timestamp,
size_t size,
bool isKeyFrame):
42 timestamp(timestamp), size(size), isKeyFrame(isKeyFrame)
46 std::chrono::microseconds timestamp{};
48 bool isKeyFrame =
false;
50 bool operator<(std::chrono::microseconds value)
const {
return timestamp < value; }
53 std::chrono::microseconds intervalUnsafe()
const;
55 mutable std::mutex m_mutex;
56 std::deque<Data> m_data;
57 int64_t m_totalSizeBytes = 0;
59 std::chrono::steady_clock::time_point m_lastDataTimer;
Definition: apple_utils.h:6