X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=print_latency.h;h=1c937c58856a7cb2a511e7856ebbf1c51fc87c24;hb=1836dccf699779d9092a75755cec96cea1734a2a;hp=0e880ca1e75273d2018c594c3a08dd77cb8e8cb9;hpb=8c5fb6a77a16f30a32121971db749a211f8050ad;p=nageru diff --git a/print_latency.h b/print_latency.h index 0e880ca..1c937c5 100644 --- a/print_latency.h +++ b/print_latency.h @@ -10,6 +10,7 @@ #include #include "ref_counted_frame.h" +#include "metrics.h" // Since every output frame is based on multiple input frames, we need // more than one start timestamp. For now, we keep just the smallest @@ -18,9 +19,15 @@ struct ReceivedTimestamps { std::chrono::steady_clock::time_point min_ts, max_ts; }; +struct LatencyHistogram { + void init(const std::string &measuring_point); // Initializes histograms and registers them in global_metrics. + + Histogram histogram_lowest_latency_input, histogram_highest_latency_input; + Histogram histogram_lowest_latency_input_bframe, histogram_highest_latency_input_bframe; +}; ReceivedTimestamps find_received_timestamp(const std::vector &input_frames); -void print_latency(const std::string &header, const ReceivedTimestamps &received_ts, bool is_b_frame, int *frameno); +void print_latency(const std::string &header, const ReceivedTimestamps &received_ts, bool is_b_frame, int *frameno, LatencyHistogram *histogram); #endif // !defined(_PRINT_LATENCY_H)