| Index: webrtc/call/call_perf_tests.cc
|
| diff --git a/webrtc/call/call_perf_tests.cc b/webrtc/call/call_perf_tests.cc
|
| index 11861ac6834179dfef8ab450898cd42bb0223d05..50e1a62cfb512f10a0b47f93c25631b3906c42af 100644
|
| --- a/webrtc/call/call_perf_tests.cc
|
| +++ b/webrtc/call/call_perf_tests.cc
|
| @@ -11,7 +11,6 @@
|
| #include <algorithm>
|
| #include <limits>
|
| #include <memory>
|
| -#include <sstream>
|
| #include <string>
|
|
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -100,14 +99,7 @@ class VideoRtcpAndSyncObserver : public test::RtpRtcpObserver,
|
|
|
| int64_t now_ms = clock_->TimeInMilliseconds();
|
|
|
| - std::stringstream ss;
|
| - ss << stats.sync_offset_ms;
|
| - webrtc::test::PrintResult("stream_offset",
|
| - "",
|
| - "synchronization",
|
| - ss.str(),
|
| - "ms",
|
| - false);
|
| + sync_offset_ms_list_.push_back(stats.sync_offset_ms);
|
| int64_t time_since_creation = now_ms - creation_time_ms_;
|
| // During the first couple of seconds audio and video can falsely be
|
| // estimated as being synchronized. We don't want to trigger on those.
|
| @@ -133,12 +125,19 @@ class VideoRtcpAndSyncObserver : public test::RtpRtcpObserver,
|
| receive_stream_ = receive_stream;
|
| }
|
|
|
| + void PrintResults() {
|
| + test::PrintResultList("stream_offset", "", "synchronization",
|
| + test::ValuesToString(sync_offset_ms_list_), "ms",
|
| + false);
|
| + }
|
| +
|
| private:
|
| Clock* const clock_;
|
| const int64_t creation_time_ms_;
|
| int64_t first_time_in_sync_;
|
| rtc::CriticalSection crit_;
|
| VideoReceiveStream* receive_stream_ GUARDED_BY(crit_);
|
| + std::vector<int> sync_offset_ms_list_;
|
| };
|
|
|
| void CallPerfTest::TestAudioVideoSync(FecMode fec,
|
| @@ -300,6 +299,7 @@ void CallPerfTest::TestAudioVideoSync(FecMode fec,
|
|
|
| VoiceEngine::Delete(voice_engine);
|
|
|
| + observer.PrintResults();
|
| EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AVSyncOffsetInMs"));
|
| }
|
|
|
| @@ -387,11 +387,8 @@ void CallPerfTest::TestCaptureNtpTime(const FakeNetworkPipe::Config& net_config,
|
| uint32_t real_capture_timestamp = iter->second;
|
| int time_offset_ms = real_capture_timestamp - estimated_capture_timestamp;
|
| time_offset_ms = time_offset_ms / 90;
|
| - std::stringstream ss;
|
| - ss << time_offset_ms;
|
| + time_offset_ms_list_.push_back(time_offset_ms);
|
|
|
| - webrtc::test::PrintResult(
|
| - "capture_ntp_time", "", "real - estimated", ss.str(), "ms", true);
|
| EXPECT_TRUE(std::abs(time_offset_ms) < threshold_ms_);
|
| }
|
|
|
| @@ -434,6 +431,9 @@ void CallPerfTest::TestCaptureNtpTime(const FakeNetworkPipe::Config& net_config,
|
| EXPECT_TRUE(Wait()) << "Timed out while waiting for "
|
| "estimated capture NTP time to be "
|
| "within bounds.";
|
| + test::PrintResultList("capture_ntp_time", "", "real - estimated",
|
| + test::ValuesToString(time_offset_ms_list_), "ms",
|
| + true);
|
| }
|
|
|
| rtc::CriticalSection crit_;
|
| @@ -448,6 +448,7 @@ void CallPerfTest::TestCaptureNtpTime(const FakeNetworkPipe::Config& net_config,
|
| uint32_t rtp_start_timestamp_;
|
| typedef std::map<uint32_t, uint32_t> FrameCaptureTimeList;
|
| FrameCaptureTimeList capture_time_list_ GUARDED_BY(&crit_);
|
| + std::vector<int> time_offset_ms_list_;
|
| } test(net_config, threshold_ms, start_time_ms, run_time_ms);
|
|
|
| RunBaseTest(&test);
|
| @@ -543,14 +544,7 @@ void CallPerfTest::TestMinTransmitBitrate(bool pad_to_min_bitrate) {
|
| int bitrate_kbps =
|
| stats.substreams.begin()->second.total_bitrate_bps / 1000;
|
| if (bitrate_kbps > 0) {
|
| - test::PrintResult(
|
| - "bitrate_stats_",
|
| - (pad_to_min_bitrate_ ? "min_transmit_bitrate"
|
| - : "without_min_transmit_bitrate"),
|
| - "bitrate_kbps",
|
| - static_cast<size_t>(bitrate_kbps),
|
| - "kbps",
|
| - false);
|
| + bitrate_kbps_list.push_back(bitrate_kbps);
|
| if (pad_to_min_bitrate_) {
|
| if (bitrate_kbps > kMinAcceptableTransmitBitrate &&
|
| bitrate_kbps < kMaxAcceptableTransmitBitrate) {
|
| @@ -592,11 +586,18 @@ void CallPerfTest::TestMinTransmitBitrate(bool pad_to_min_bitrate) {
|
|
|
| void PerformTest() override {
|
| EXPECT_TRUE(Wait()) << "Timeout while waiting for send-bitrate stats.";
|
| + test::PrintResultList(
|
| + "bitrate_stats_",
|
| + (pad_to_min_bitrate_ ? "min_transmit_bitrate"
|
| + : "without_min_transmit_bitrate"),
|
| + "bitrate_kbps", test::ValuesToString(bitrate_kbps_list), "kbps",
|
| + false);
|
| }
|
|
|
| VideoSendStream* send_stream_;
|
| const bool pad_to_min_bitrate_;
|
| int num_bitrate_observations_in_range_;
|
| + std::vector<size_t> bitrate_kbps_list;
|
| } test(pad_to_min_bitrate);
|
|
|
| fake_encoder_.SetMaxBitrate(kMaxEncodeBitrateKbps);
|
|
|