Chromium Code Reviews| Index: webrtc/video/full_stack.cc |
| diff --git a/webrtc/video/full_stack.cc b/webrtc/video/full_stack.cc |
| index 70ba6c64493cbd1d70015539df0862ccc63d6590..2a2880502333684acd65d582f7fbbc9ca6d86c07 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; |
| }; |
| @@ -221,7 +222,7 @@ class VideoAnalyzer : public PacketReceiver, |
| int last_frames_processed = -1; |
| EventTypeWrapper eventType; |
| - while ((eventType = done_->Wait(FullStackTest::kDefaultTimeoutMs)) != |
| + while ((eventType = done_->Wait(FullStackTest::kLongTimeoutMs)) != |
| kEventSignaled) { |
| int frames_processed; |
| { |
| @@ -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,9 +738,26 @@ 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", // keep the old label |
|
pbos-webrtc
2015/07/30 08:27:55
remove comment, or put "// No suffix to preserve h
|
| + {"screenshare_slides", 1850, 1110, 5}, |
| + true, |
| + 50000, |
| + 200000, |
| + 2000000, |
| + 0.0, |
| + 0.0, |
| + kFullStackTestDurationSecs, |
| + "VP8"}; |
| + RunTest(screenshare_params); |
| +} |
| + |
| +// probably the same issue as |
|
pbos-webrtc
2015/07/30 08:27:55
"Disabled on Android along with VP8 screenshare ab
|
| +// https://code.google.com/p/chromium/issues/detail?id=513170 |
| +TEST_F(FullStackTest, DISABLED_ON_ANDROID(ScreenshareSlidesVP9_2TL)) { |
| FullStackTestParams screenshare_params = { |
| - "screenshare_slides", |
| + "screenshare_slides_vp9_2tl", |
| {"screenshare_slides", 1850, 1110, 5}, |
| true, |
| 50000, |
| @@ -717,7 +765,8 @@ TEST_F(FullStackTest, DISABLED_ON_ANDROID(ScreenshareSlides)) { |
| 2000000, |
| 0.0, |
| 0.0, |
| - kFullStackTestDurationSecs}; |
| + kFullStackTestDurationSecs, |
| + "VP9"}; |
| RunTest(screenshare_params); |
| } |
| } // namespace webrtc |