X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mixer.cpp;h=89cfd5f06f1930298696d547b1d168b8276b001f;hb=35b405f813c4fd4eccf67eb95dce877c9e288421;hp=c551354e794ab87ed1307b940933978e11553c4c;hpb=fc65b01785b439f1ce0e8b04a33ad8abd5b4091e;p=nageru diff --git a/mixer.cpp b/mixer.cpp index c551354..89cfd5f 100644 --- a/mixer.cpp +++ b/mixer.cpp @@ -207,8 +207,6 @@ void QueueLengthPolicy::register_metrics(const vector> &lab void QueueLengthPolicy::update_policy(unsigned queue_length) { - metric_input_queue_length_frames = queue_length; - if (queue_length == 0) { // Starvation. if (been_at_safe_point_since_last_starvation && safe_queue_length < unsigned(global_flags.max_input_queue_frames)) { ++safe_queue_length; @@ -219,6 +217,7 @@ void QueueLengthPolicy::update_policy(unsigned queue_length) been_at_safe_point_since_last_starvation = false; ++metric_input_duped_frames; metric_input_queue_safe_length_frames = safe_queue_length; + metric_input_queue_length_frames = 0; return; } if (queue_length >= safe_queue_length) { @@ -231,6 +230,7 @@ void QueueLengthPolicy::update_policy(unsigned queue_length) card_index, safe_queue_length); frames_with_at_least_one = 0; } + metric_input_queue_length_frames = min(queue_length, safe_queue_length); // The caller will drop frames for us if needed. } Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards) @@ -402,9 +402,13 @@ Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards) set_output_card_internal(global_flags.output_card); } + metric_start_time_seconds = get_timestamp_for_metrics(); + global_metrics.add("frames_output_total", &metric_frames_output_total); global_metrics.add("frames_output_dropped", &metric_frames_output_dropped); - global_metrics.add("uptime_seconds", &metric_uptime_seconds); + global_metrics.add("start_time_seconds", &metric_start_time_seconds, Metrics::TYPE_GAUGE); + global_metrics.add("memory_used_bytes", &metrics_memory_used_bytes); + global_metrics.add("metrics_memory_locked_limit_bytes", &metrics_memory_locked_limit_bytes); } Mixer::~Mixer() @@ -935,7 +939,6 @@ void Mixer::thread_func() metric_frames_output_total = frame_num; metric_frames_output_dropped = stats_dropped_frames; - metric_uptime_seconds = elapsed; if (frame_num % 100 == 0) { printf("%d frames (%d dropped) in %.3f seconds = %.1f fps (%.1f ms/frame)", @@ -967,12 +970,16 @@ void Mixer::thread_func() long(limit.rlim_cur / 1048576), float(100.0 * (used.ru_maxrss * 1024.0) / limit.rlim_cur)); } + metrics_memory_locked_limit_bytes = limit.rlim_cur; } else { printf(", using %ld MB memory (not locked)", long(used.ru_maxrss / 1024)); + metrics_memory_locked_limit_bytes = 0.0 / 0.0; } printf("\n"); + + metrics_memory_used_bytes = used.ru_maxrss; }