Index: webrtc/call/rampup_tests.cc |
diff --git a/webrtc/call/rampup_tests.cc b/webrtc/call/rampup_tests.cc |
index 2d7dddc1d839e0ecb1bd6704ba0cbef397060f84..1a25409f0c1962caff782888048d913b0ee688a4 100644 |
--- a/webrtc/call/rampup_tests.cc |
+++ b/webrtc/call/rampup_tests.cc |
@@ -14,6 +14,7 @@ |
#include "webrtc/base/checks.h" |
#include "webrtc/base/platform_thread.h" |
#include "webrtc/test/testsupport/perf_test.h" |
+#include "webrtc/test/encoder_settings.h" |
mflodman
2016/09/27 11:28:00
Alphabetic order.
perkj_webrtc
2016/09/27 13:45:17
Done.
|
namespace webrtc { |
namespace { |
@@ -96,24 +97,49 @@ size_t RampUpTester::GetNumAudioStreams() const { |
return num_audio_streams_; |
} |
+class RampUpTester::VideoStreamFactory |
+ : public VideoEncoderConfig::VideoStreamFactoryInterface { |
+ public: |
+ VideoStreamFactory() {} |
+ |
+ private: |
+ std::vector<VideoStream> CreateEncoderStreams( |
+ int width, |
+ int height, |
+ const VideoEncoderConfig& encoder_config) override { |
+ RTC_DCHECK_EQ(width, test::CallTest::kDefaultWidth); |
+ RTC_DCHECK_EQ(height, test::CallTest::kDefaultHeight); |
+ std::vector<VideoStream> streams = |
+ test::CreateVideoStreams(width, height, encoder_config); |
+ if (encoder_config.number_of_streams == 1) { |
+ streams[0].target_bitrate_bps = streams[0].max_bitrate_bps = 2000000; |
+ } |
+ return streams; |
+ } |
+}; |
+ |
void RampUpTester::ModifyVideoConfigs( |
VideoSendStream::Config* send_config, |
std::vector<VideoReceiveStream::Config>* receive_configs, |
VideoEncoderConfig* encoder_config) { |
send_config->suspend_below_min_bitrate = true; |
- |
+ encoder_config->number_of_streams = num_video_streams_; |
+ encoder_config->max_bitrate_bps = 2000000; |
+ encoder_config->encoder_stream_factory = |
+ new rtc::RefCountedObject<RampUpTester::VideoStreamFactory>(); |
if (num_video_streams_ == 1) { |
- encoder_config->streams[0].target_bitrate_bps = |
- encoder_config->streams[0].max_bitrate_bps = 2000000; |
// For single stream rampup until 1mbps |
expected_bitrate_bps_ = kSingleStreamTargetBps; |
} else { |
// For multi stream rampup until all streams are being sent. That means |
- // enough birate to send all the target streams plus the min bitrate of |
+ // enough bitrate to send all the target streams plus the min bitrate of |
// the last one. |
- expected_bitrate_bps_ = encoder_config->streams.back().min_bitrate_bps; |
- for (size_t i = 0; i < encoder_config->streams.size() - 1; ++i) { |
- expected_bitrate_bps_ += encoder_config->streams[i].target_bitrate_bps; |
+ std::vector<VideoStream> streams = test::CreateVideoStreams( |
+ test::CallTest::kDefaultWidth, test::CallTest::kDefaultHeight, |
+ *encoder_config); |
+ expected_bitrate_bps_ = streams.back().min_bitrate_bps; |
+ for (size_t i = 0; i < streams.size() - 1; ++i) { |
+ expected_bitrate_bps_ += streams[i].target_bitrate_bps; |
} |
} |