| Index: webrtc/call/call_perf_tests.cc
|
| diff --git a/webrtc/call/call_perf_tests.cc b/webrtc/call/call_perf_tests.cc
|
| index 50e1a62cfb512f10a0b47f93c25631b3906c42af..decdbb90bfe1f93faf56107828486b6b51615d25 100644
|
| --- a/webrtc/call/call_perf_tests.cc
|
| +++ b/webrtc/call/call_perf_tests.cc
|
| @@ -98,8 +98,6 @@ class VideoRtcpAndSyncObserver : public test::RtpRtcpObserver,
|
| return;
|
|
|
| int64_t now_ms = clock_->TimeInMilliseconds();
|
| -
|
| - 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.
|
| @@ -118,6 +116,8 @@ class VideoRtcpAndSyncObserver : public test::RtpRtcpObserver,
|
| if (time_since_creation > kMinRunTimeMs)
|
| observation_complete_.Set();
|
| }
|
| + if (first_time_in_sync_ != -1)
|
| + sync_offset_ms_list_.push_back(stats.sync_offset_ms);
|
| }
|
|
|
| void set_receive_stream(VideoReceiveStream* receive_stream) {
|
| @@ -532,7 +532,16 @@ void CallPerfTest::TestMinTransmitBitrate(bool pad_to_min_bitrate) {
|
| explicit BitrateObserver(bool using_min_transmit_bitrate)
|
| : EndToEndTest(kLongTimeoutMs),
|
| send_stream_(nullptr),
|
| + converged_(false),
|
| pad_to_min_bitrate_(using_min_transmit_bitrate),
|
| + min_acceptable_bitrate_(using_min_transmit_bitrate
|
| + ? kMinAcceptableTransmitBitrate
|
| + : (kMaxEncodeBitrateKbps -
|
| + kAcceptableBitrateErrorMargin / 2)),
|
| + max_acceptable_bitrate_(using_min_transmit_bitrate
|
| + ? kMaxAcceptableTransmitBitrate
|
| + : (kMaxEncodeBitrateKbps +
|
| + kAcceptableBitrateErrorMargin / 2)),
|
| num_bitrate_observations_in_range_(0) {}
|
|
|
| private:
|
| @@ -543,26 +552,16 @@ void CallPerfTest::TestMinTransmitBitrate(bool pad_to_min_bitrate) {
|
| RTC_DCHECK_EQ(1u, stats.substreams.size());
|
| int bitrate_kbps =
|
| stats.substreams.begin()->second.total_bitrate_bps / 1000;
|
| - if (bitrate_kbps > 0) {
|
| - bitrate_kbps_list.push_back(bitrate_kbps);
|
| - if (pad_to_min_bitrate_) {
|
| - if (bitrate_kbps > kMinAcceptableTransmitBitrate &&
|
| - bitrate_kbps < kMaxAcceptableTransmitBitrate) {
|
| - ++num_bitrate_observations_in_range_;
|
| - }
|
| - } else {
|
| - // Expect bitrate stats to roughly match the max encode bitrate.
|
| - if (bitrate_kbps > (kMaxEncodeBitrateKbps -
|
| - kAcceptableBitrateErrorMargin / 2) &&
|
| - bitrate_kbps < (kMaxEncodeBitrateKbps +
|
| - kAcceptableBitrateErrorMargin / 2)) {
|
| - ++num_bitrate_observations_in_range_;
|
| - }
|
| - }
|
| + if (bitrate_kbps > min_acceptable_bitrate_ &&
|
| + bitrate_kbps < max_acceptable_bitrate_) {
|
| + converged_ = true;
|
| + ++num_bitrate_observations_in_range_;
|
| if (num_bitrate_observations_in_range_ ==
|
| kNumBitrateObservationsInRange)
|
| observation_complete_.Set();
|
| }
|
| + if (converged_)
|
| + bitrate_kbps_list_.push_back(bitrate_kbps);
|
| }
|
| return SEND_PACKET;
|
| }
|
| @@ -590,14 +589,17 @@ void CallPerfTest::TestMinTransmitBitrate(bool pad_to_min_bitrate) {
|
| "bitrate_stats_",
|
| (pad_to_min_bitrate_ ? "min_transmit_bitrate"
|
| : "without_min_transmit_bitrate"),
|
| - "bitrate_kbps", test::ValuesToString(bitrate_kbps_list), "kbps",
|
| + "bitrate_kbps", test::ValuesToString(bitrate_kbps_list_), "kbps",
|
| false);
|
| }
|
|
|
| VideoSendStream* send_stream_;
|
| + bool converged_;
|
| const bool pad_to_min_bitrate_;
|
| + const int min_acceptable_bitrate_;
|
| + const int max_acceptable_bitrate_;
|
| int num_bitrate_observations_in_range_;
|
| - std::vector<size_t> bitrate_kbps_list;
|
| + std::vector<size_t> bitrate_kbps_list_;
|
| } test(pad_to_min_bitrate);
|
|
|
| fake_encoder_.SetMaxBitrate(kMaxEncodeBitrateKbps);
|
|
|