Implement dual stream full stack test and loopback tool
Bug: webrtc:8588 Change-Id: I0abec4891a723c98001f4580f0cfa57a5d6d6bdb Reviewed-on: https://webrtc-review.googlesource.com/34441 Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21416}
This commit is contained in:

committed by
Commit Bot

parent
c3216e1b1d
commit
255d1cd3b4
@ -32,6 +32,10 @@ class FullStackTest : public VideoQualityTest {
|
||||
const std::string kAlrProbingExperiment =
|
||||
std::string(AlrDetector::kScreenshareProbingBweExperimentName) +
|
||||
"/1.1,2875,85,20,-20,0/";
|
||||
const std::string kRoundRobinPacingQueueExperiment =
|
||||
"WebRTC-RoundRobinPacing/Enabled/";
|
||||
const std::string kPacerPushBackExperiment =
|
||||
"WebRTC-PacerPushbackExperiment/Enabled/";
|
||||
};
|
||||
|
||||
// VideoQualityTest::Params params = {
|
||||
@ -49,8 +53,9 @@ TEST_F(FullStackTest, ForemanCifWithoutPacketLossVp9) {
|
||||
// TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif.
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false,
|
||||
"VP9", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 700000,
|
||||
700000, 700000, false, "VP9", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_VP9", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
RunTest(foreman_cif);
|
||||
@ -59,8 +64,9 @@ TEST_F(FullStackTest, ForemanCifWithoutPacketLossVp9) {
|
||||
TEST_F(FullStackTest, ForemanCifPlr5Vp9) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP9", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP9", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_VP9", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 5;
|
||||
@ -72,8 +78,9 @@ TEST_F(FullStackTest, ForemanCifPlr5Vp9) {
|
||||
TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) {
|
||||
VideoQualityTest::Params paris_qcif;
|
||||
paris_qcif.call.send_side_bwe = true;
|
||||
paris_qcif.video = {true, 176, 144, 30, 300000, 300000, 300000, false,
|
||||
"VP8", 1, 0, 0, false, false, "paris_qcif"};
|
||||
paris_qcif.video[0] = {true, 176, 144, 30, 300000,
|
||||
300000, 300000, false, "VP8", 1,
|
||||
0, 0, false, false, "paris_qcif"};
|
||||
paris_qcif.analyzer = {"net_delay_0_0_plr_0", 36.0, 0.96,
|
||||
kFullStackTestDurationSecs};
|
||||
RunTest(paris_qcif);
|
||||
@ -83,8 +90,9 @@ TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) {
|
||||
// TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif.
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false,
|
||||
"VP8", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 700000,
|
||||
700000, 700000, false, "VP8", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
RunTest(foreman_cif);
|
||||
@ -93,8 +101,9 @@ TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) {
|
||||
TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketLoss) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 10, 30000, 30000, 30000, false,
|
||||
"VP8", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 10, 30000,
|
||||
30000, 30000, false, "VP8", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
RunTest(foreman_cif);
|
||||
@ -103,8 +112,9 @@ TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketLoss) {
|
||||
TEST_F(FullStackTest, ForemanCifPlr5) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 5;
|
||||
@ -115,8 +125,9 @@ TEST_F(FullStackTest, ForemanCifPlr5) {
|
||||
TEST_F(FullStackTest, ForemanCifPlr5Ulpfec) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, true, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, true, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_ulpfec", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 5;
|
||||
@ -127,8 +138,9 @@ TEST_F(FullStackTest, ForemanCifPlr5Ulpfec) {
|
||||
TEST_F(FullStackTest, ForemanCifPlr5Flexfec) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, false, true, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, true, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_flexfec", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 5;
|
||||
@ -139,8 +151,9 @@ TEST_F(FullStackTest, ForemanCifPlr5Flexfec) {
|
||||
TEST_F(FullStackTest, ForemanCif500kbpsPlr3Flexfec) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, false, true, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, true, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_flexfec", 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 3;
|
||||
@ -152,8 +165,9 @@ TEST_F(FullStackTest, ForemanCif500kbpsPlr3Flexfec) {
|
||||
TEST_F(FullStackTest, ForemanCif500kbpsPlr3Ulpfec) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, true, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, true, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_ulpfec", 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 3;
|
||||
@ -167,9 +181,9 @@ TEST_F(FullStackTest, ForemanCifWithoutPacketlossH264) {
|
||||
// TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif.
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 700000,
|
||||
700000, 700000, false, "H264", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 700000,
|
||||
700000, 700000, false, "H264", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_H264", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
RunTest(foreman_cif);
|
||||
@ -178,8 +192,9 @@ TEST_F(FullStackTest, ForemanCifWithoutPacketlossH264) {
|
||||
TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketlossH264) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 10, 30000, 30000, 30000, false,
|
||||
"H264", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 10, 30000,
|
||||
30000, 30000, false, "H264", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0_H264", 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
RunTest(foreman_cif);
|
||||
@ -188,8 +203,9 @@ TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketlossH264) {
|
||||
TEST_F(FullStackTest, ForemanCifPlr5H264) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"H264", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "H264", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 5;
|
||||
@ -203,8 +219,9 @@ TEST_F(FullStackTest, ForemanCifPlr5H264SpsPpsIdrIsKeyframe) {
|
||||
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"H264", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "H264", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_sps_pps_idr", 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 5;
|
||||
@ -216,8 +233,9 @@ TEST_F(FullStackTest, ForemanCifPlr5H264SpsPpsIdrIsKeyframe) {
|
||||
TEST_F(FullStackTest, ForemanCifPlr5H264Flexfec) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"H264", 1, 0, 0, false, true, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "H264", 1,
|
||||
0, 0, false, true, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_flexfec", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 5;
|
||||
@ -230,8 +248,9 @@ TEST_F(FullStackTest, ForemanCifPlr5H264Flexfec) {
|
||||
TEST_F(FullStackTest, DISABLED_ForemanCifPlr5H264Ulpfec) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"H264", 1, 0, 0, true, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "H264", 1,
|
||||
0, 0, true, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_ulpfec", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.loss_percent = 5;
|
||||
@ -243,8 +262,9 @@ TEST_F(FullStackTest, DISABLED_ForemanCifPlr5H264Ulpfec) {
|
||||
TEST_F(FullStackTest, ForemanCif500kbps) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_500kbps", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.queue_length_packets = 0;
|
||||
@ -256,8 +276,9 @@ TEST_F(FullStackTest, ForemanCif500kbps) {
|
||||
TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.queue_length_packets = 32;
|
||||
@ -269,8 +290,9 @@ TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) {
|
||||
TEST_F(FullStackTest, ForemanCif500kbps100ms) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_500kbps_100ms", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.queue_length_packets = 0;
|
||||
@ -282,8 +304,9 @@ TEST_F(FullStackTest, ForemanCif500kbps100ms) {
|
||||
TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.queue_length_packets = 32;
|
||||
@ -295,8 +318,9 @@ TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) {
|
||||
TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueueRecvBwe) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = false;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
|
||||
"VP8", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue_recv_bwe",
|
||||
0.0, 0.0, kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.queue_length_packets = 32;
|
||||
@ -308,8 +332,9 @@ TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueueRecvBwe) {
|
||||
TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) {
|
||||
VideoQualityTest::Params foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video = {true, 352, 288, 30, 30000, 2000000, 2000000, false,
|
||||
"VP8", 1, 0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
2000000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.pipe.queue_length_packets = 32;
|
||||
@ -322,7 +347,7 @@ TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) {
|
||||
TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueue) {
|
||||
VideoQualityTest::Params conf_motion_hd;
|
||||
conf_motion_hd.call.send_side_bwe = true;
|
||||
conf_motion_hd.video = {
|
||||
conf_motion_hd.video[0] = {
|
||||
true, 1280, 720, 50, 30000,
|
||||
3000000, 3000000, false, "VP8", 1,
|
||||
0, 0, false, false, "ConferenceMotion_1280_720_50"};
|
||||
@ -337,7 +362,7 @@ TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueue) {
|
||||
TEST_F(FullStackTest, ConferenceMotionHd1TLModerateLimits) {
|
||||
VideoQualityTest::Params conf_motion_hd;
|
||||
conf_motion_hd.call.send_side_bwe = true;
|
||||
conf_motion_hd.video = {
|
||||
conf_motion_hd.video[0] = {
|
||||
true, 1280, 720, 50, 30000,
|
||||
3000000, 3000000, false, "VP8", 1,
|
||||
-1, 0, false, false, "ConferenceMotion_1280_720_50"};
|
||||
@ -353,7 +378,7 @@ TEST_F(FullStackTest, ConferenceMotionHd1TLModerateLimits) {
|
||||
TEST_F(FullStackTest, ConferenceMotionHd2TLModerateLimits) {
|
||||
VideoQualityTest::Params conf_motion_hd;
|
||||
conf_motion_hd.call.send_side_bwe = true;
|
||||
conf_motion_hd.video = {
|
||||
conf_motion_hd.video[0] = {
|
||||
true, 1280, 720, 50, 30000,
|
||||
3000000, 3000000, false, "VP8", 2,
|
||||
-1, 0, false, false, "ConferenceMotion_1280_720_50"};
|
||||
@ -369,7 +394,7 @@ TEST_F(FullStackTest, ConferenceMotionHd2TLModerateLimits) {
|
||||
TEST_F(FullStackTest, ConferenceMotionHd3TLModerateLimits) {
|
||||
VideoQualityTest::Params conf_motion_hd;
|
||||
conf_motion_hd.call.send_side_bwe = true;
|
||||
conf_motion_hd.video = {
|
||||
conf_motion_hd.video[0] = {
|
||||
true, 1280, 720, 50, 30000,
|
||||
3000000, 3000000, false, "VP8", 3,
|
||||
-1, 0, false, false, "ConferenceMotion_1280_720_50"};
|
||||
@ -385,7 +410,7 @@ TEST_F(FullStackTest, ConferenceMotionHd3TLModerateLimits) {
|
||||
TEST_F(FullStackTest, ConferenceMotionHd4TLModerateLimits) {
|
||||
VideoQualityTest::Params conf_motion_hd;
|
||||
conf_motion_hd.call.send_side_bwe = true;
|
||||
conf_motion_hd.video = {
|
||||
conf_motion_hd.video[0] = {
|
||||
true, 1280, 720, 50, 30000,
|
||||
3000000, 3000000, false, "VP8", 4,
|
||||
-1, 0, false, false, "ConferenceMotion_1280_720_50"};
|
||||
@ -402,7 +427,7 @@ TEST_F(FullStackTest, ConferenceMotionHd3TLModerateLimitsAltTLPattern) {
|
||||
test::ScopedFieldTrials field_trial("WebRTC-UseShortVP8TL3Pattern/Enabled/");
|
||||
VideoQualityTest::Params conf_motion_hd;
|
||||
conf_motion_hd.call.send_side_bwe = true;
|
||||
conf_motion_hd.video = {
|
||||
conf_motion_hd.video[0] = {
|
||||
true, 1280, 720, 50, 30000,
|
||||
3000000, 3000000, false, "VP8", 3,
|
||||
-1, 0, false, false, "ConferenceMotion_1280_720_50"};
|
||||
@ -419,7 +444,7 @@ TEST_F(FullStackTest, ConferenceMotionHd3TLModerateLimitsAltTLPattern) {
|
||||
TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueueVP9) {
|
||||
VideoQualityTest::Params conf_motion_hd;
|
||||
conf_motion_hd.call.send_side_bwe = true;
|
||||
conf_motion_hd.video = {
|
||||
conf_motion_hd.video[0] = {
|
||||
true, 1280, 720, 50, 30000,
|
||||
3000000, 3000000, false, "VP9", 1,
|
||||
0, 0, false, false, "ConferenceMotion_1280_720_50"};
|
||||
@ -436,9 +461,10 @@ TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueueVP9) {
|
||||
TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL) {
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
|
||||
"VP8", 2, 1, 400000, false, false, ""};
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
1, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
RunTest(screenshare);
|
||||
@ -448,34 +474,35 @@ TEST_F(FullStackTest, ScreenshareSlidesVP8_3TL_Simulcast) {
|
||||
test::ScopedFieldTrials field_trial(kScreenshareSimulcastExperiment);
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
2, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
2, 400000, false, false, ""};
|
||||
screenshare.analyzer = {"screenshare_slides_simulcast", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
VideoQualityTest::Params screenshare_params_high;
|
||||
screenshare_params_high.video = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
0, 400000, false, false, ""};
|
||||
screenshare_params_high.video[0] = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
0, 400000, false, false, ""};
|
||||
VideoQualityTest::Params screenshare_params_low;
|
||||
screenshare_params_low.video = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
0, 400000, false, false, ""};
|
||||
screenshare_params_low.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
0, 400000, false, false, ""};
|
||||
|
||||
std::vector<VideoStream> streams = {
|
||||
DefaultVideoStream(screenshare_params_low),
|
||||
DefaultVideoStream(screenshare_params_high)};
|
||||
screenshare.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
DefaultVideoStream(screenshare_params_low, 0),
|
||||
DefaultVideoStream(screenshare_params_high, 0)};
|
||||
screenshare.ss[0] = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
RunTest(screenshare);
|
||||
}
|
||||
|
||||
TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) {
|
||||
VideoQualityTest::Params config;
|
||||
config.call.send_side_bwe = true;
|
||||
config.video = {true, 1850, 1110 / 2, 5, 50000, 200000, 2000000, false,
|
||||
"VP8", 2, 1, 400000, false, false, ""};
|
||||
config.screenshare = {true, false, 10, 2};
|
||||
config.video[0] = {true, 1850, 1110 / 2, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
1, 400000, false, false, ""};
|
||||
config.screenshare[0] = {true, false, 10, 2};
|
||||
config.analyzer = {"screenshare_slides_scrolling", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
RunTest(config);
|
||||
@ -484,9 +511,10 @@ TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) {
|
||||
TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNet) {
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
|
||||
"VP8", 2, 1, 400000, false, false, ""};
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
1, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides_lossy_net", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
screenshare.pipe.loss_percent = 5;
|
||||
@ -498,9 +526,10 @@ TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNet) {
|
||||
TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_VeryLossyNet) {
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
|
||||
"VP8", 2, 1, 400000, false, false, ""};
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
1, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides_very_lossy", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
screenshare.pipe.loss_percent = 10;
|
||||
@ -512,9 +541,10 @@ TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_VeryLossyNet) {
|
||||
TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNetRestrictedQueue) {
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
|
||||
"VP8", 2, 1, 400000, false, false, ""};
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
1, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides_lossy_limited", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
screenshare.pipe.loss_percent = 5;
|
||||
@ -527,9 +557,10 @@ TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNetRestrictedQueue) {
|
||||
TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ModeratelyRestricted) {
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
|
||||
"VP8", 2, 1, 400000, false, false, ""};
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
1, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides_moderately_restricted", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
screenshare.pipe.loss_percent = 1;
|
||||
@ -544,9 +575,10 @@ TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNetRestrictedQueue_ALR) {
|
||||
test::ScopedFieldTrials field_trial(kAlrProbingExperiment);
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
|
||||
"VP8", 2, 1, 400000, false, false, ""};
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
1, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides_lossy_limited_ALR", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
screenshare.pipe.loss_percent = 5;
|
||||
@ -560,9 +592,10 @@ TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ALR) {
|
||||
test::ScopedFieldTrials field_trial(kAlrProbingExperiment);
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
|
||||
"VP8", 2, 1, 400000, false, false, ""};
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
1, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides_ALR", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
RunTest(screenshare);
|
||||
@ -572,9 +605,10 @@ TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ModeratelyRestricted_ALR) {
|
||||
test::ScopedFieldTrials field_trial(kAlrProbingExperiment);
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
|
||||
"VP8", 2, 1, 400000, false, false, ""};
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
1, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides_moderately_restricted_ALR", 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
screenshare.pipe.loss_percent = 1;
|
||||
@ -589,25 +623,25 @@ TEST_F(FullStackTest, ScreenshareSlidesVP8_3TL_Simulcast_ALR) {
|
||||
kAlrProbingExperiment);
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
2, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
2, 400000, false, false, ""};
|
||||
screenshare.analyzer = {"screenshare_slides_simulcast_alr", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
VideoQualityTest::Params screenshare_params_high;
|
||||
screenshare_params_high.video = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
0, 400000, false, false, ""};
|
||||
screenshare_params_high.video[0] = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
0, 400000, false, false, ""};
|
||||
VideoQualityTest::Params screenshare_params_low;
|
||||
screenshare_params_low.video = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
0, 400000, false, false, ""};
|
||||
screenshare_params_low.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
0, 400000, false, false, ""};
|
||||
|
||||
std::vector<VideoStream> streams = {
|
||||
DefaultVideoStream(screenshare_params_low),
|
||||
DefaultVideoStream(screenshare_params_high)};
|
||||
screenshare.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
DefaultVideoStream(screenshare_params_low, 0),
|
||||
DefaultVideoStream(screenshare_params_high, 0)};
|
||||
screenshare.ss[0] = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
RunTest(screenshare);
|
||||
}
|
||||
|
||||
@ -635,45 +669,46 @@ const VideoQualityTest::Params::Video kSimulcastVp8VideoLow = {
|
||||
TEST_F(FullStackTest, ScreenshareSlidesVP9_2SL) {
|
||||
VideoQualityTest::Params screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
|
||||
"VP9", 1, 0, 400000, false, false, ""};
|
||||
screenshare.screenshare = {true, false, 10};
|
||||
screenshare.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP9", 1,
|
||||
0, 400000, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides_vp9_2sl", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
screenshare.ss = {std::vector<VideoStream>(), 0, 2, 1,
|
||||
std::vector<SpatialLayer>(), false};
|
||||
screenshare.ss[0] = {std::vector<VideoStream>(), 0, 2, 1,
|
||||
std::vector<SpatialLayer>(), false};
|
||||
RunTest(screenshare);
|
||||
}
|
||||
|
||||
TEST_F(FullStackTest, VP9SVC_3SL_High) {
|
||||
VideoQualityTest::Params simulcast;
|
||||
simulcast.call.send_side_bwe = true;
|
||||
simulcast.video = kSvcVp9Video;
|
||||
simulcast.video[0] = kSvcVp9Video;
|
||||
simulcast.analyzer = {"vp9svc_3sl_high", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
simulcast.ss = {std::vector<VideoStream>(), 0, 3, 2,
|
||||
std::vector<SpatialLayer>(), false};
|
||||
simulcast.ss[0] = {std::vector<VideoStream>(), 0, 3, 2,
|
||||
std::vector<SpatialLayer>(), false};
|
||||
RunTest(simulcast);
|
||||
}
|
||||
|
||||
TEST_F(FullStackTest, VP9SVC_3SL_Medium) {
|
||||
VideoQualityTest::Params simulcast;
|
||||
simulcast.call.send_side_bwe = true;
|
||||
simulcast.video = kSvcVp9Video;
|
||||
simulcast.video[0] = kSvcVp9Video;
|
||||
simulcast.analyzer = {"vp9svc_3sl_medium", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
simulcast.ss = {std::vector<VideoStream>(), 0, 3, 1,
|
||||
std::vector<SpatialLayer>(), false};
|
||||
simulcast.ss[0] = {std::vector<VideoStream>(), 0, 3, 1,
|
||||
std::vector<SpatialLayer>(), false};
|
||||
RunTest(simulcast);
|
||||
}
|
||||
|
||||
TEST_F(FullStackTest, VP9SVC_3SL_Low) {
|
||||
VideoQualityTest::Params simulcast;
|
||||
simulcast.call.send_side_bwe = true;
|
||||
simulcast.video = kSvcVp9Video;
|
||||
simulcast.video[0] = kSvcVp9Video;
|
||||
simulcast.analyzer = {"vp9svc_3sl_low", 0.0, 0.0, kFullStackTestDurationSecs};
|
||||
simulcast.ss = {std::vector<VideoStream>(), 0, 3, 0,
|
||||
std::vector<SpatialLayer>(), false};
|
||||
simulcast.ss[0] = {std::vector<VideoStream>(), 0, 3, 0,
|
||||
std::vector<SpatialLayer>(), false};
|
||||
RunTest(simulcast);
|
||||
}
|
||||
#endif // !defined(RTC_DISABLE_VP9)
|
||||
@ -688,17 +723,17 @@ TEST_F(FullStackTest, VP9SVC_3SL_Low) {
|
||||
TEST_F(FullStackTest, MAYBE_SimulcastFullHdOveruse) {
|
||||
VideoQualityTest::Params simulcast;
|
||||
simulcast.call.send_side_bwe = true;
|
||||
simulcast.video = {true, 1920, 1080, 30, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
2, 400000, false, false, "Generator"};
|
||||
simulcast.video[0] = {true, 1920, 1080, 30, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
2, 400000, false, false, "Generator"};
|
||||
simulcast.analyzer = {"simulcast_HD_high", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
simulcast.pipe.loss_percent = 0;
|
||||
simulcast.pipe.queue_delay_ms = 100;
|
||||
std::vector<VideoStream> streams = {DefaultVideoStream(simulcast),
|
||||
DefaultVideoStream(simulcast),
|
||||
DefaultVideoStream(simulcast)};
|
||||
simulcast.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), true};
|
||||
std::vector<VideoStream> streams = {DefaultVideoStream(simulcast, 0),
|
||||
DefaultVideoStream(simulcast, 0),
|
||||
DefaultVideoStream(simulcast, 0)};
|
||||
simulcast.ss[0] = {streams, 2, 1, 0, std::vector<SpatialLayer>(), true};
|
||||
webrtc::test::ScopedFieldTrials override_trials(
|
||||
"WebRTC-ForceSimulatedOveruseIntervalMs/1000-50000-300/");
|
||||
RunTest(simulcast);
|
||||
@ -707,89 +742,93 @@ TEST_F(FullStackTest, MAYBE_SimulcastFullHdOveruse) {
|
||||
TEST_F(FullStackTest, SimulcastVP8_3SL_High) {
|
||||
VideoQualityTest::Params simulcast;
|
||||
simulcast.call.send_side_bwe = true;
|
||||
simulcast.video = kSimulcastVp8VideoHigh;
|
||||
simulcast.video[0] = kSimulcastVp8VideoHigh;
|
||||
simulcast.analyzer = {"simulcast_vp8_3sl_high", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
simulcast.pipe.loss_percent = 0;
|
||||
simulcast.pipe.queue_delay_ms = 100;
|
||||
VideoQualityTest::Params video_params_high;
|
||||
video_params_high.video = kSimulcastVp8VideoHigh;
|
||||
video_params_high.video[0] = kSimulcastVp8VideoHigh;
|
||||
VideoQualityTest::Params video_params_medium;
|
||||
video_params_medium.video = kSimulcastVp8VideoMedium;
|
||||
video_params_medium.video[0] = kSimulcastVp8VideoMedium;
|
||||
VideoQualityTest::Params video_params_low;
|
||||
video_params_low.video = kSimulcastVp8VideoLow;
|
||||
video_params_low.video[0] = kSimulcastVp8VideoLow;
|
||||
|
||||
std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
|
||||
DefaultVideoStream(video_params_medium),
|
||||
DefaultVideoStream(video_params_high)};
|
||||
simulcast.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
std::vector<VideoStream> streams = {
|
||||
DefaultVideoStream(video_params_low, 0),
|
||||
DefaultVideoStream(video_params_medium, 0),
|
||||
DefaultVideoStream(video_params_high, 0)};
|
||||
simulcast.ss[0] = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
RunTest(simulcast);
|
||||
}
|
||||
|
||||
TEST_F(FullStackTest, SimulcastVP8_3SL_Medium) {
|
||||
VideoQualityTest::Params simulcast;
|
||||
simulcast.call.send_side_bwe = true;
|
||||
simulcast.video = kSimulcastVp8VideoHigh;
|
||||
simulcast.video[0] = kSimulcastVp8VideoHigh;
|
||||
simulcast.analyzer = {"simulcast_vp8_3sl_medium", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
simulcast.pipe.loss_percent = 0;
|
||||
simulcast.pipe.queue_delay_ms = 100;
|
||||
VideoQualityTest::Params video_params_high;
|
||||
video_params_high.video = kSimulcastVp8VideoHigh;
|
||||
video_params_high.video[0] = kSimulcastVp8VideoHigh;
|
||||
VideoQualityTest::Params video_params_medium;
|
||||
video_params_medium.video = kSimulcastVp8VideoMedium;
|
||||
video_params_medium.video[0] = kSimulcastVp8VideoMedium;
|
||||
VideoQualityTest::Params video_params_low;
|
||||
video_params_low.video = kSimulcastVp8VideoLow;
|
||||
video_params_low.video[0] = kSimulcastVp8VideoLow;
|
||||
|
||||
std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
|
||||
DefaultVideoStream(video_params_medium),
|
||||
DefaultVideoStream(video_params_high)};
|
||||
simulcast.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
std::vector<VideoStream> streams = {
|
||||
DefaultVideoStream(video_params_low, 0),
|
||||
DefaultVideoStream(video_params_medium, 0),
|
||||
DefaultVideoStream(video_params_high, 0)};
|
||||
simulcast.ss[0] = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
RunTest(simulcast);
|
||||
}
|
||||
|
||||
TEST_F(FullStackTest, SimulcastVP8_3SL_Low) {
|
||||
VideoQualityTest::Params simulcast;
|
||||
simulcast.call.send_side_bwe = true;
|
||||
simulcast.video = kSimulcastVp8VideoHigh;
|
||||
simulcast.video[0] = kSimulcastVp8VideoHigh;
|
||||
simulcast.analyzer = {"simulcast_vp8_3sl_low", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
simulcast.pipe.loss_percent = 0;
|
||||
simulcast.pipe.queue_delay_ms = 100;
|
||||
VideoQualityTest::Params video_params_high;
|
||||
video_params_high.video = kSimulcastVp8VideoHigh;
|
||||
video_params_high.video[0] = kSimulcastVp8VideoHigh;
|
||||
VideoQualityTest::Params video_params_medium;
|
||||
video_params_medium.video = kSimulcastVp8VideoMedium;
|
||||
video_params_medium.video[0] = kSimulcastVp8VideoMedium;
|
||||
VideoQualityTest::Params video_params_low;
|
||||
video_params_low.video = kSimulcastVp8VideoLow;
|
||||
video_params_low.video[0] = kSimulcastVp8VideoLow;
|
||||
|
||||
std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
|
||||
DefaultVideoStream(video_params_medium),
|
||||
DefaultVideoStream(video_params_high)};
|
||||
simulcast.ss = {streams, 0, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
std::vector<VideoStream> streams = {
|
||||
DefaultVideoStream(video_params_low, 0),
|
||||
DefaultVideoStream(video_params_medium, 0),
|
||||
DefaultVideoStream(video_params_high, 0)};
|
||||
simulcast.ss[0] = {streams, 0, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
RunTest(simulcast);
|
||||
}
|
||||
|
||||
TEST_F(FullStackTest, LargeRoomVP8_5thumb) {
|
||||
VideoQualityTest::Params large_room;
|
||||
large_room.call.send_side_bwe = true;
|
||||
large_room.video = kSimulcastVp8VideoHigh;
|
||||
large_room.video[0] = kSimulcastVp8VideoHigh;
|
||||
large_room.analyzer = {"largeroom_5thumb", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
large_room.pipe.loss_percent = 0;
|
||||
large_room.pipe.queue_delay_ms = 100;
|
||||
VideoQualityTest::Params video_params_high;
|
||||
video_params_high.video = kSimulcastVp8VideoHigh;
|
||||
video_params_high.video[0] = kSimulcastVp8VideoHigh;
|
||||
VideoQualityTest::Params video_params_medium;
|
||||
video_params_medium.video = kSimulcastVp8VideoMedium;
|
||||
video_params_medium.video[0] = kSimulcastVp8VideoMedium;
|
||||
VideoQualityTest::Params video_params_low;
|
||||
video_params_low.video = kSimulcastVp8VideoLow;
|
||||
video_params_low.video[0] = kSimulcastVp8VideoLow;
|
||||
|
||||
std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
|
||||
DefaultVideoStream(video_params_medium),
|
||||
DefaultVideoStream(video_params_high)};
|
||||
std::vector<VideoStream> streams = {
|
||||
DefaultVideoStream(video_params_low, 0),
|
||||
DefaultVideoStream(video_params_medium, 0),
|
||||
DefaultVideoStream(video_params_high, 0)};
|
||||
large_room.call.num_thumbnails = 5;
|
||||
large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
large_room.ss[0] = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
RunTest(large_room);
|
||||
}
|
||||
|
||||
@ -806,48 +845,148 @@ TEST_F(FullStackTest, LargeRoomVP8_5thumb) {
|
||||
TEST_F(FullStackTest, MAYBE_LargeRoomVP8_15thumb) {
|
||||
VideoQualityTest::Params large_room;
|
||||
large_room.call.send_side_bwe = true;
|
||||
large_room.video = kSimulcastVp8VideoHigh;
|
||||
large_room.video[0] = kSimulcastVp8VideoHigh;
|
||||
large_room.analyzer = {"largeroom_15thumb", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
large_room.pipe.loss_percent = 0;
|
||||
large_room.pipe.queue_delay_ms = 100;
|
||||
VideoQualityTest::Params video_params_high;
|
||||
video_params_high.video = kSimulcastVp8VideoHigh;
|
||||
video_params_high.video[0] = kSimulcastVp8VideoHigh;
|
||||
VideoQualityTest::Params video_params_medium;
|
||||
video_params_medium.video = kSimulcastVp8VideoMedium;
|
||||
video_params_medium.video[0] = kSimulcastVp8VideoMedium;
|
||||
VideoQualityTest::Params video_params_low;
|
||||
video_params_low.video = kSimulcastVp8VideoLow;
|
||||
video_params_low.video[0] = kSimulcastVp8VideoLow;
|
||||
|
||||
std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
|
||||
DefaultVideoStream(video_params_medium),
|
||||
DefaultVideoStream(video_params_high)};
|
||||
std::vector<VideoStream> streams = {
|
||||
DefaultVideoStream(video_params_low, 0),
|
||||
DefaultVideoStream(video_params_medium, 0),
|
||||
DefaultVideoStream(video_params_high, 0)};
|
||||
large_room.call.num_thumbnails = 15;
|
||||
large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
large_room.ss[0] = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
RunTest(large_room);
|
||||
}
|
||||
|
||||
TEST_F(FullStackTest, MAYBE_LargeRoomVP8_50thumb) {
|
||||
VideoQualityTest::Params large_room;
|
||||
large_room.call.send_side_bwe = true;
|
||||
large_room.video = kSimulcastVp8VideoHigh;
|
||||
large_room.video[0] = kSimulcastVp8VideoHigh;
|
||||
large_room.analyzer = {"largeroom_50thumb", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
large_room.pipe.loss_percent = 0;
|
||||
large_room.pipe.queue_delay_ms = 100;
|
||||
VideoQualityTest::Params video_params_high;
|
||||
video_params_high.video = kSimulcastVp8VideoHigh;
|
||||
video_params_high.video[0] = kSimulcastVp8VideoHigh;
|
||||
VideoQualityTest::Params video_params_medium;
|
||||
video_params_medium.video = kSimulcastVp8VideoMedium;
|
||||
video_params_medium.video[0] = kSimulcastVp8VideoMedium;
|
||||
VideoQualityTest::Params video_params_low;
|
||||
video_params_low.video = kSimulcastVp8VideoLow;
|
||||
video_params_low.video[0] = kSimulcastVp8VideoLow;
|
||||
|
||||
std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
|
||||
DefaultVideoStream(video_params_medium),
|
||||
DefaultVideoStream(video_params_high)};
|
||||
std::vector<VideoStream> streams = {
|
||||
DefaultVideoStream(video_params_low, 0),
|
||||
DefaultVideoStream(video_params_medium, 0),
|
||||
DefaultVideoStream(video_params_high, 0)};
|
||||
large_room.call.num_thumbnails = 50;
|
||||
large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
large_room.ss[0] = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
RunTest(large_room);
|
||||
}
|
||||
|
||||
class DualStreamsTest : public FullStackTest,
|
||||
public ::testing::WithParamInterface<int> {};
|
||||
|
||||
// Disable dual video test on mobile device becuase it's too heavy.
|
||||
#if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS)
|
||||
TEST_P(DualStreamsTest,
|
||||
ModeratelyRestricted_SlidesVp8_3TL_Simulcast_Video_Simulcast_High) {
|
||||
test::ScopedFieldTrials field_trial(
|
||||
kScreenshareSimulcastExperiment + kAlrProbingExperiment +
|
||||
kRoundRobinPacingQueueExperiment + kPacerPushBackExperiment);
|
||||
const int first_stream = GetParam();
|
||||
VideoQualityTest::Params dual_streams;
|
||||
|
||||
// Screenshare Settings.
|
||||
dual_streams.screenshare[first_stream] = {true, false, 10};
|
||||
dual_streams.video[first_stream] = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
2, 400000, false, false, ""};
|
||||
|
||||
VideoQualityTest::Params screenshare_params_high;
|
||||
screenshare_params_high.video[0] = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
0, 400000, false, false, ""};
|
||||
VideoQualityTest::Params screenshare_params_low;
|
||||
screenshare_params_low.video[0] = {true, 1850, 1110, 5, 50000,
|
||||
200000, 2000000, false, "VP8", 2,
|
||||
0, 400000, false, false, ""};
|
||||
std::vector<VideoStream> screenhsare_streams = {
|
||||
DefaultVideoStream(screenshare_params_low, 0),
|
||||
DefaultVideoStream(screenshare_params_high, 0)};
|
||||
|
||||
dual_streams.ss[first_stream] = {screenhsare_streams, 1, 1, 0,
|
||||
std::vector<SpatialLayer>(), false};
|
||||
|
||||
// Video settings.
|
||||
dual_streams.video[1 - first_stream] = kSimulcastVp8VideoHigh;
|
||||
|
||||
VideoQualityTest::Params video_params_high;
|
||||
video_params_high.video[0] = kSimulcastVp8VideoHigh;
|
||||
VideoQualityTest::Params video_params_medium;
|
||||
video_params_medium.video[0] = kSimulcastVp8VideoMedium;
|
||||
VideoQualityTest::Params video_params_low;
|
||||
video_params_low.video[0] = kSimulcastVp8VideoLow;
|
||||
std::vector<VideoStream> streams = {
|
||||
DefaultVideoStream(video_params_low, 0),
|
||||
DefaultVideoStream(video_params_medium, 0),
|
||||
DefaultVideoStream(video_params_high, 0)};
|
||||
|
||||
dual_streams.ss[1 - first_stream] = {
|
||||
streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
|
||||
|
||||
// Call settings.
|
||||
dual_streams.call.send_side_bwe = true;
|
||||
dual_streams.call.dual_video = true;
|
||||
dual_streams.analyzer = {"dualstreams_moderately_restricted_screenshare", 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
dual_streams.pipe.loss_percent = 1;
|
||||
dual_streams.pipe.link_capacity_kbps = 7500;
|
||||
dual_streams.pipe.queue_length_packets = 30;
|
||||
dual_streams.pipe.queue_delay_ms = 100;
|
||||
|
||||
RunTest(dual_streams);
|
||||
}
|
||||
#endif // !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS)
|
||||
|
||||
TEST_P(DualStreamsTest, Conference_Restricted) {
|
||||
test::ScopedFieldTrials field_trial(kRoundRobinPacingQueueExperiment +
|
||||
kPacerPushBackExperiment);
|
||||
const int first_stream = GetParam();
|
||||
VideoQualityTest::Params dual_streams;
|
||||
|
||||
// Screenshare Settings.
|
||||
dual_streams.screenshare[first_stream] = {true, false, 10};
|
||||
dual_streams.video[first_stream] = {true, 1850, 1110, 5, 800000,
|
||||
2500000, 2500000, false, "VP8", 3,
|
||||
2, 400000, false, false, ""};
|
||||
// Video settings.
|
||||
dual_streams.video[1 - first_stream] = {
|
||||
true, 1280, 720, 30, 150000,
|
||||
500000, 700000, false, "VP8", 3,
|
||||
2, 400000, false, false, "ConferenceMotion_1280_720_50"};
|
||||
|
||||
// Call settings.
|
||||
dual_streams.call.send_side_bwe = true;
|
||||
dual_streams.call.dual_video = true;
|
||||
dual_streams.analyzer = {"dualstreams_moderately_restricted_screenshare", 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
dual_streams.pipe.loss_percent = 1;
|
||||
dual_streams.pipe.link_capacity_kbps = 5000;
|
||||
dual_streams.pipe.queue_length_packets = 30;
|
||||
dual_streams.pipe.queue_delay_ms = 100;
|
||||
|
||||
RunTest(dual_streams);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(FullStackTest,
|
||||
DualStreamsTest,
|
||||
::testing::Values(0, 1));
|
||||
|
||||
} // namespace webrtc
|
||||
|
Reference in New Issue
Block a user