| Index: webrtc/call/call_perf_tests.cc
|
| diff --git a/webrtc/call/call_perf_tests.cc b/webrtc/call/call_perf_tests.cc
|
| index 5fa9270061ad8261d59592e235179f55a22c5f1e..3c7b3c95b43f69b2e707ff86e1b184444aa30542 100644
|
| --- a/webrtc/call/call_perf_tests.cc
|
| +++ b/webrtc/call/call_perf_tests.cc
|
| @@ -62,7 +62,7 @@ class CallPerfTest : public test::CallTest {
|
| float video_rtp_speed,
|
| float audio_rtp_speed);
|
|
|
| - void TestCpuOveruse(LoadObserver::Load tested_load, int encode_delay_ms);
|
| + void TestCpuOveruse(bool expect_lower_resolution_wants, int encode_delay_ms);
|
|
|
| void TestMinTransmitBitrate(bool pad_to_min_bitrate);
|
|
|
| @@ -479,25 +479,40 @@ TEST_F(CallPerfTest, CaptureNtpTimeWithNetworkJitter) {
|
| TestCaptureNtpTime(net_config, kThresholdMs, kStartTimeMs, kRunTimeMs);
|
| }
|
|
|
| -void CallPerfTest::TestCpuOveruse(LoadObserver::Load tested_load,
|
| +void CallPerfTest::TestCpuOveruse(bool expect_lower_resolution_wants,
|
| int encode_delay_ms) {
|
| - class LoadObserver : public test::SendTest, public webrtc::LoadObserver {
|
| + class LoadObserver : public test::SendTest,
|
| + public test::FrameGeneratorCapturer::SinkWantsObserver {
|
| public:
|
| - LoadObserver(LoadObserver::Load tested_load, int encode_delay_ms)
|
| + LoadObserver(bool expect_lower_resolution_wants, int encode_delay_ms)
|
| : SendTest(kLongTimeoutMs),
|
| - tested_load_(tested_load),
|
| + expect_lower_resolution_wants_(expect_lower_resolution_wants),
|
| encoder_(Clock::GetRealTimeClock(), encode_delay_ms) {}
|
|
|
| - void OnLoadUpdate(Load load) override {
|
| - if (load == tested_load_)
|
| - observation_complete_.Set();
|
| + void OnFrameGeneratorCapturerCreated(
|
| + test::FrameGeneratorCapturer* frame_generator_capturer) override {
|
| + frame_generator_capturer->SetSinkWantsObserver(this);
|
| + }
|
| +
|
| + // OnSinkWantsChanged is called when FrameGeneratorCapturer::AddOrUpdateSink
|
| + // is called.
|
| + void OnSinkWantsChanged(rtc::VideoSinkInterface<VideoFrame>* sink,
|
| + const rtc::VideoSinkWants& wants) override {
|
| + if (expect_lower_resolution_wants_) {
|
| + if (wants.max_pixel_count) {
|
| + observation_complete_.Set();
|
| + }
|
| + } else {
|
| + if (wants.max_pixel_count_step_up) {
|
| + observation_complete_.Set();
|
| + }
|
| + }
|
| }
|
|
|
| void ModifyVideoConfigs(
|
| VideoSendStream::Config* send_config,
|
| std::vector<VideoReceiveStream::Config>* receive_configs,
|
| VideoEncoderConfig* encoder_config) override {
|
| - send_config->overuse_callback = this;
|
| send_config->encoder_settings.encoder = &encoder_;
|
| }
|
|
|
| @@ -505,21 +520,21 @@ void CallPerfTest::TestCpuOveruse(LoadObserver::Load tested_load,
|
| EXPECT_TRUE(Wait()) << "Timed out before receiving an overuse callback.";
|
| }
|
|
|
| - LoadObserver::Load tested_load_;
|
| + bool expect_lower_resolution_wants_;
|
| test::DelayedEncoder encoder_;
|
| - } test(tested_load, encode_delay_ms);
|
| + } test(expect_lower_resolution_wants, encode_delay_ms);
|
|
|
| RunBaseTest(&test);
|
| }
|
|
|
| TEST_F(CallPerfTest, ReceivesCpuUnderuse) {
|
| const int kEncodeDelayMs = 2;
|
| - TestCpuOveruse(LoadObserver::kUnderuse, kEncodeDelayMs);
|
| + TestCpuOveruse(false, kEncodeDelayMs);
|
| }
|
|
|
| TEST_F(CallPerfTest, ReceivesCpuOveruse) {
|
| const int kEncodeDelayMs = 35;
|
| - TestCpuOveruse(LoadObserver::kOveruse, kEncodeDelayMs);
|
| + TestCpuOveruse(true, kEncodeDelayMs);
|
| }
|
|
|
| void CallPerfTest::TestMinTransmitBitrate(bool pad_to_min_bitrate) {
|
|
|