Index: webrtc/video/full_stack.cc |
diff --git a/webrtc/video/full_stack.cc b/webrtc/video/full_stack.cc |
index 70ba6c64493cbd1d70015539df0862ccc63d6590..1220482a1dbf597f44c9fac31bf997852a06c735 100644 |
--- a/webrtc/video/full_stack.cc |
+++ b/webrtc/video/full_stack.cc |
@@ -54,6 +54,7 @@ struct FullStackTestParams { |
double avg_psnr_threshold; |
double avg_ssim_threshold; |
int test_durations_secs; |
+ std::string codec; |
FakeNetworkPipe::Config link; |
}; |
@@ -499,11 +500,23 @@ void FullStackTest::RunTest(const FullStackTestParams& params) { |
CreateSendConfig(1); |
- rtc::scoped_ptr<VideoEncoder> encoder( |
- VideoEncoder::Create(VideoEncoder::kVp8)); |
- send_config_.encoder_settings.encoder = encoder.get(); |
- send_config_.encoder_settings.payload_name = "VP8"; |
+ rtc::scoped_ptr<VideoEncoder> encoder; |
+ if (params.codec == "VP8") { |
+ encoder = |
+ rtc::scoped_ptr<VideoEncoder>(VideoEncoder::Create(VideoEncoder::kVp8)); |
+ send_config_.encoder_settings.encoder = encoder.get(); |
+ send_config_.encoder_settings.payload_name = "VP8"; |
+ } else if (params.codec == "VP9") { |
+ encoder = |
+ rtc::scoped_ptr<VideoEncoder>(VideoEncoder::Create(VideoEncoder::kVp9)); |
+ send_config_.encoder_settings.encoder = encoder.get(); |
+ send_config_.encoder_settings.payload_name = "VP9"; |
+ } else { |
+ RTC_NOTREACHED() << "Codec not supported!"; |
+ return; |
+ } |
send_config_.encoder_settings.payload_type = 124; |
+ |
send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs; |
send_config_.rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[0]); |
send_config_.rtp.rtx.payload_type = kSendRtxPayloadType; |
@@ -516,14 +529,24 @@ void FullStackTest::RunTest(const FullStackTestParams& params) { |
stream->max_bitrate_bps = params.max_bitrate_bps; |
stream->max_framerate = params.clip.fps; |
+ VideoCodecVP8 vp8_settings; |
+ VideoCodecVP9 vp9_settings; |
if (params.screenshare) { |
encoder_config_.content_type = VideoEncoderConfig::ContentType::kScreen; |
encoder_config_.min_transmit_bitrate_bps = 400 * 1000; |
- VideoCodecVP8 vp8_settings = VideoEncoder::GetDefaultVp8Settings(); |
- vp8_settings.denoisingOn = false; |
- vp8_settings.frameDroppingOn = false; |
- vp8_settings.numberOfTemporalLayers = 2; |
- encoder_config_.encoder_specific_settings = &vp8_settings; |
+ if (params.codec == "VP8") { |
+ vp8_settings = VideoEncoder::GetDefaultVp8Settings(); |
+ vp8_settings.denoisingOn = false; |
+ vp8_settings.frameDroppingOn = false; |
+ vp8_settings.numberOfTemporalLayers = 2; |
+ encoder_config_.encoder_specific_settings = &vp8_settings; |
+ } else if (params.codec == "VP9") { |
+ vp9_settings = VideoEncoder::GetDefaultVp9Settings(); |
+ vp9_settings.denoisingOn = false; |
+ vp9_settings.frameDroppingOn = false; |
+ vp9_settings.numberOfTemporalLayers = 2; |
+ encoder_config_.encoder_specific_settings = &vp9_settings; |
+ } |
stream->temporal_layer_thresholds_bps.clear(); |
stream->temporal_layer_thresholds_bps.push_back(stream->target_bitrate_bps); |
@@ -591,7 +614,8 @@ TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) { |
300000, |
36.0, |
0.96, |
- kFullStackTestDurationSecs}; |
+ kFullStackTestDurationSecs, |
+ "VP8"}; |
RunTest(paris_qcif); |
} |
@@ -605,7 +629,8 @@ TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) { |
700000, |
0.0, |
0.0, |
- kFullStackTestDurationSecs}; |
+ kFullStackTestDurationSecs, |
+ "VP8"}; |
RunTest(foreman_cif); |
} |
@@ -618,7 +643,8 @@ TEST_F(FullStackTest, ForemanCifPlr5) { |
2000000, |
0.0, |
0.0, |
- kFullStackTestDurationSecs}; |
+ kFullStackTestDurationSecs, |
+ "VP8"}; |
foreman_cif.link.loss_percent = 5; |
foreman_cif.link.queue_delay_ms = 50; |
RunTest(foreman_cif); |
@@ -633,7 +659,8 @@ TEST_F(FullStackTest, ForemanCif500kbps) { |
2000000, |
0.0, |
0.0, |
- kFullStackTestDurationSecs}; |
+ kFullStackTestDurationSecs, |
+ "VP8"}; |
foreman_cif.link.queue_length_packets = 0; |
foreman_cif.link.queue_delay_ms = 0; |
foreman_cif.link.link_capacity_kbps = 500; |
@@ -649,7 +676,8 @@ TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) { |
2000000, |
0.0, |
0.0, |
- kFullStackTestDurationSecs}; |
+ kFullStackTestDurationSecs, |
+ "VP8"}; |
foreman_cif.link.queue_length_packets = 32; |
foreman_cif.link.queue_delay_ms = 0; |
foreman_cif.link.link_capacity_kbps = 500; |
@@ -665,7 +693,8 @@ TEST_F(FullStackTest, ForemanCif500kbps100ms) { |
2000000, |
0.0, |
0.0, |
- kFullStackTestDurationSecs}; |
+ kFullStackTestDurationSecs, |
+ "VP8"}; |
foreman_cif.link.queue_length_packets = 0; |
foreman_cif.link.queue_delay_ms = 100; |
foreman_cif.link.link_capacity_kbps = 500; |
@@ -681,7 +710,8 @@ TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) { |
2000000, |
0.0, |
0.0, |
- kFullStackTestDurationSecs}; |
+ kFullStackTestDurationSecs, |
+ "VP8"}; |
foreman_cif.link.queue_length_packets = 32; |
foreman_cif.link.queue_delay_ms = 100; |
foreman_cif.link.link_capacity_kbps = 500; |
@@ -697,7 +727,8 @@ TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) { |
2000000, |
0.0, |
0.0, |
- kFullStackTestDurationSecs}; |
+ kFullStackTestDurationSecs, |
+ "VP8"}; |
foreman_cif.link.queue_length_packets = 32; |
foreman_cif.link.queue_delay_ms = 100; |
foreman_cif.link.link_capacity_kbps = 1000; |
@@ -707,7 +738,7 @@ TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) { |
// Temporarily disabled on Android due to low test timeouts. |
// https://code.google.com/p/chromium/issues/detail?id=513170 |
#include "webrtc/test/testsupport/gtest_disable.h" |
-TEST_F(FullStackTest, DISABLED_ON_ANDROID(ScreenshareSlides)) { |
+TEST_F(FullStackTest, DISABLED_ON_ANDROID(ScreenshareSlidesVP8_2TL)) { |
FullStackTestParams screenshare_params = { |
"screenshare_slides", |
{"screenshare_slides", 1850, 1110, 5}, |
@@ -717,7 +748,24 @@ TEST_F(FullStackTest, DISABLED_ON_ANDROID(ScreenshareSlides)) { |
2000000, |
0.0, |
0.0, |
- kFullStackTestDurationSecs}; |
+ kFullStackTestDurationSecs, |
+ "VP8"}; |
+ RunTest(screenshare_params); |
+} |
+ |
+// Disabled on Android along with VP8 screenshare above. |
+TEST_F(FullStackTest, DISABLED_ON_ANDROID(ScreenshareSlidesVP9_2TL)) { |
+ FullStackTestParams screenshare_params = { |
+ "screenshare_slides_vp9_2tl", |
+ {"screenshare_slides", 1850, 1110, 5}, |
+ true, |
+ 50000, |
+ 200000, |
+ 2000000, |
+ 0.0, |
+ 0.0, |
+ kFullStackTestDurationSecs, |
+ "VP9"}; |
RunTest(screenshare_params); |
} |
} // namespace webrtc |