Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(444)

Unified Diff: webrtc/modules/remote_bitrate_estimator/test/metric_recorder.h

Issue 1257683006: Efficient MetricRecorder (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased on master Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/modules.gyp ('k') | webrtc/modules/remote_bitrate_estimator/test/metric_recorder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/remote_bitrate_estimator/test/metric_recorder.h
diff --git a/webrtc/modules/remote_bitrate_estimator/test/metric_recorder.h b/webrtc/modules/remote_bitrate_estimator/test/metric_recorder.h
index 4c77999df55df8c4f2f839894c00b8f445a872bf..13a76cc6d1481239f1d9caa52885d332882f0b5c 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/metric_recorder.h
+++ b/webrtc/modules/remote_bitrate_estimator/test/metric_recorder.h
@@ -16,6 +16,7 @@
#include <vector>
#include "webrtc/base/common.h"
+#include "webrtc/test/testsupport/gtest_prod_util.h"
#include "webrtc/modules/remote_bitrate_estimator/test/packet_sender.h"
namespace webrtc {
@@ -88,26 +89,26 @@ class MetricRecorder {
const std::string& bwe_name,
size_t num_flows,
int64_t extra_offset_ms,
- const std::string optimum_id);
+ const std::string optimum_id) const;
void PlotThroughputHistogram(const std::string& title,
const std::string& bwe_name,
size_t num_flows,
- int64_t extra_offset_ms);
+ int64_t extra_offset_ms) const;
void PlotDelayHistogram(const std::string& title,
const std::string& bwe_name,
size_t num_flows,
- int64_t one_way_path_delay_ms);
+ int64_t one_way_path_delay_ms) const;
void PlotLossHistogram(const std::string& title,
const std::string& bwe_name,
size_t num_flows,
- float global_loss_ratio);
+ float global_loss_ratio) const;
void PlotObjectiveHistogram(const std::string& title,
const std::string& bwe_name,
- size_t num_flows);
+ size_t num_flows) const;
void set_start_computing_metrics_ms(int64_t start_computing_metrics_ms) {
start_computing_metrics_ms_ = start_computing_metrics_ms;
@@ -122,17 +123,27 @@ class MetricRecorder {
void PlotZero();
private:
+ FRIEND_TEST_ALL_PREFIXES(MetricRecorderTest, NoPackets);
+ FRIEND_TEST_ALL_PREFIXES(MetricRecorderTest, RegularPackets);
+ FRIEND_TEST_ALL_PREFIXES(MetricRecorderTest, VariableDelayPackets);
+
uint32_t GetTotalAvailableKbps();
uint32_t GetAvailablePerFlowKbps();
uint32_t GetSendingEstimateKbps();
- double ObjectiveFunction();
+ double ObjectiveFunction() const;
- double Renormalize(double x);
+ double Renormalize(double x) const;
bool ShouldRecord(int64_t arrival_time_ms);
void PushDelayMs(int64_t delay_ms, int64_t arrival_time_ms);
void PushThroughputBytes(size_t throughput_bytes, int64_t arrival_time_ms);
+ void UpdateEstimateError(int64_t new_value);
+ double DelayStdDev() const;
+ int64_t NthDelayPercentile(int n) const;
+ double AverageBitrateKbps(int64_t extra_offset_ms) const;
+ int64_t RunDurationMs(int64_t extra_offset_ms) const;
+
enum Metrics {
kThroughput = 0,
kDelay,
@@ -152,15 +163,20 @@ class MetricRecorder {
PlotInformation plot_information_[kNumMetrics];
- std::vector<int64_t> delays_ms_;
- std::vector<size_t> throughput_bytes_;
- // (Receiving rate - available bitrate per flow) * time window.
- std::vector<int64_t> weighted_estimate_error_;
+ int64_t sum_delays_ms_;
+ // delay_histogram_ms_[i] counts how many packets have delay = i ms.
+ std::map<int64_t, size_t> delay_histogram_ms_;
+ int64_t sum_delays_square_ms2_; // Used to compute standard deviation.
+ size_t sum_throughput_bytes_;
+ // ((Receiving rate - available bitrate per flow) * time window)^p.
+ // 0 for negative values, 1 for positive values.
+ int64_t sum_lp_weighted_estimate_error_[2];
int64_t last_unweighted_estimate_error_;
int64_t optimal_throughput_bits_;
int64_t last_available_bitrate_per_flow_kbps_;
int64_t start_computing_metrics_ms_;
bool started_computing_metrics_;
+ size_t num_packets_received_;
};
} // namespace bwe
« no previous file with comments | « webrtc/modules/modules.gyp ('k') | webrtc/modules/remote_bitrate_estimator/test/metric_recorder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698