]> git.sesse.net Git - nageru/blobdiff - nageru/queue_length_policy.h
WIP patch for async output.
[nageru] / nageru / queue_length_policy.h
index 329eb82983ac15d038e3d5953d4998f274cb4eac..d1ee786b5789952975ad185f3071e5bc2f7a8d66 100644 (file)
@@ -37,7 +37,7 @@ public:
                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;
 
@@ -54,6 +54,7 @@ private:
        std::deque<std::multiset<double>::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<int64_t> metric_input_underestimated_jitter_frames{0};
@@ -93,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: