X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fqueue_length_policy.h;h=d1ee786b5789952975ad185f3071e5bc2f7a8d66;hb=refs%2Fheads%2Funsync-output;hp=faf6537cec3603154e1d7c5d0add79192a304195;hpb=b9a74fdb2aaaec5f2859945f25bff9295da444e1;p=nageru diff --git a/nageru/queue_length_policy.h b/nageru/queue_length_policy.h index faf6537..d1ee786 100644 --- a/nageru/queue_length_policy.h +++ b/nageru/queue_length_policy.h @@ -35,8 +35,9 @@ public: void clear() { history.clear(); orders.clear(); + expected_timestamp = std::chrono::steady_clock::time_point::min(); } - void frame_arrived(std::chrono::steady_clock::time_point now, int64_t frame_duration, size_t dropped_frames); + void frame_arrived(std::chrono::steady_clock::time_point now, int64_t frame_duration, size_t dropped_frames, bool verbose = false); std::chrono::steady_clock::time_point get_expected_next_frame() const { return expected_timestamp; } double estimate_max_jitter() const; @@ -53,6 +54,7 @@ private: std::deque::iterator> history; std::chrono::steady_clock::time_point expected_timestamp = std::chrono::steady_clock::time_point::min(); + int64_t last_duration = 0; // Metrics. There are no direct summaries for jitter, since we already have latency summaries. std::atomic metric_input_underestimated_jitter_frames{0}; @@ -92,7 +94,7 @@ public: int64_t input_frame_duration, int64_t master_frame_duration, double max_input_card_jitter_seconds, - double max_master_card_jitter_seconds); + double max_master_card_jitter_seconds, bool verbose=false); unsigned get_safe_queue_length() const { return safe_queue_length; } private: