Change clip_name -> clip_path in VideoQualityTestFixture::Params::Video.

This allows external users of this test fixture to specify a custom
path, rather than just a custom file name.

Bug: webrtc:10349
Change-Id: I84e886c8bc28583017ce9ed7b9e7ee6a8e95730f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126227
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27033}
This commit is contained in:
Rasmus Brandt
2019-03-08 10:26:37 +01:00
committed by Commit Bot
parent 159e53a66e
commit 184f6d5d75
4 changed files with 247 additions and 129 deletions

View File

@ -57,7 +57,7 @@ class VideoQualityTestFixtureInterface {
bool ulpfec; bool ulpfec;
bool flexfec; bool flexfec;
bool automatic_scaling; bool automatic_scaling;
std::string clip_name; // "Generator" to generate frames instead. std::string clip_path; // "Generator" to generate frames instead.
size_t capture_device_index; size_t capture_device_index;
SdpVideoFormat::Parameters sdp_params; SdpVideoFormat::Parameters sdp_params;
double encoder_overshoot_factor; double encoder_overshoot_factor;

View File

@ -307,6 +307,7 @@ if (rtc_include_tests) {
"../rtc_base/experiments:alr_experiment", "../rtc_base/experiments:alr_experiment",
"../system_wrappers:field_trial", "../system_wrappers:field_trial",
"../test:field_trial", "../test:field_trial",
"../test:fileutils",
"../test:test_common", "../test:test_common",
"../test:test_support", "../test:test_support",
"//testing/gtest", "//testing/gtest",

View File

@ -27,6 +27,7 @@
#include "system_wrappers/include/field_trial.h" #include "system_wrappers/include/field_trial.h"
#include "test/field_trial.h" #include "test/field_trial.h"
#include "test/gtest.h" #include "test/gtest.h"
#include "test/testsupport/file_utils.h"
#include "video/video_quality_test.h" #include "video/video_quality_test.h"
namespace webrtc { namespace webrtc {
@ -87,6 +88,10 @@ CreateVideoQualityTestFixture() {
std::string AppendFieldTrials(std::string new_trial_string) { std::string AppendFieldTrials(std::string new_trial_string) {
return std::string(field_trial::GetFieldTrialString()) + new_trial_string; return std::string(field_trial::GetFieldTrialString()) + new_trial_string;
} }
std::string ClipNameToClipPath(const char* clip_name) {
return test::ResourcePath(clip_name, "yuv");
}
} // namespace } // namespace
// VideoQualityTest::Params params = { // VideoQualityTest::Params params = {
@ -124,9 +129,11 @@ TEST(FullStackTest, ForemanCifWithoutPacketLossVp9) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 700000, 700000, 700000, foreman_cif.video[0] = {
false, "VP9", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 700000, 700000, 700000, false,
"VP9", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_VP9", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_VP9", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
fixture->RunWithAnalyzer(foreman_cif); fixture->RunWithAnalyzer(foreman_cif);
@ -136,9 +143,11 @@ TEST_P(GenericDescriptorTest, ForemanCifPlr5Vp9) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP9", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP9", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5_VP9"), 0.0, foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5_VP9"), 0.0,
0.0, kFullStackTestDurationSecs}; 0.0, kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 5; foreman_cif.config->loss_percent = 5;
@ -177,9 +186,11 @@ TEST(FullStackTest, ForemanCifWithoutPacketLossMultiplexI420Frame) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 700000, 700000, 700000, foreman_cif.video[0] = {
false, "multiplex", 1, 0, 0, false, false, true, 352, 288, 30,
false, "foreman_cif"}; 700000, 700000, 700000, false,
"multiplex", 1, 0, 0,
false, false, false, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_Multiplex", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_Multiplex", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
fixture->RunWithAnalyzer(foreman_cif); fixture->RunWithAnalyzer(foreman_cif);
@ -210,9 +221,11 @@ TEST(FullStackTest, MAYBE_ParisQcifWithoutPacketLoss) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging paris_qcif; ParamsWithLogging paris_qcif;
paris_qcif.call.send_side_bwe = true; paris_qcif.call.send_side_bwe = true;
paris_qcif.video[0] = {true, 176, 144, 30, 300000, 300000, paris_qcif.video[0] = {
300000, false, "VP8", 1, 0, 0, true, 176, 144, 30,
false, false, true, "paris_qcif"}; 300000, 300000, 300000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("paris_qcif")};
paris_qcif.analyzer = {"net_delay_0_0_plr_0", 36.0, 0.96, paris_qcif.analyzer = {"net_delay_0_0_plr_0", 36.0, 0.96,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
fixture->RunWithAnalyzer(paris_qcif); fixture->RunWithAnalyzer(paris_qcif);
@ -223,9 +236,11 @@ TEST_P(GenericDescriptorTest, ForemanCifWithoutPacketLoss) {
// TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif.
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 700000, 700000, 700000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 700000, 700000, 700000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {GetTestName("foreman_cif_net_delay_0_0_plr_0"), 0.0, foreman_cif.analyzer = {GetTestName("foreman_cif_net_delay_0_0_plr_0"), 0.0,
0.0, kFullStackTestDurationSecs}; 0.0, kFullStackTestDurationSecs};
foreman_cif.call.generic_descriptor = GenericDescriptorEnabled(); foreman_cif.call.generic_descriptor = GenericDescriptorEnabled();
@ -236,9 +251,11 @@ TEST_P(GenericDescriptorTest, ForemanCif30kbpsWithoutPacketLoss) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 10, 30000, 30000, 30000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 10,
true, "foreman_cif"}; 30000, 30000, 30000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {GetTestName("foreman_cif_30kbps_net_delay_0_0_plr_0"), foreman_cif.analyzer = {GetTestName("foreman_cif_30kbps_net_delay_0_0_plr_0"),
0.0, 0.0, kFullStackTestDurationSecs}; 0.0, 0.0, kFullStackTestDurationSecs};
foreman_cif.call.generic_descriptor = GenericDescriptorEnabled(); foreman_cif.call.generic_descriptor = GenericDescriptorEnabled();
@ -254,9 +271,11 @@ TEST_P(GenericDescriptorTest,
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 10, 30000, 30000, 30000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 10,
true, "foreman_cif"}; 30000, 30000, 30000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = { foreman_cif.analyzer = {
GetTestName("foreman_cif_30kbps_net_delay_0_0_plr_0_trusted_rate_ctrl"), GetTestName("foreman_cif_30kbps_net_delay_0_0_plr_0_trusted_rate_ctrl"),
0.0, 0.0, kFullStackTestDurationSecs}; 0.0, 0.0, kFullStackTestDurationSecs};
@ -269,9 +288,11 @@ TEST(FullStackTest, ForemanCifLink150kbpsWithoutPacketLoss) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, foreman_cif.video[0] = {
500000, 2000000, false, "VP8", 1, true, 352, 288, 30,
0, 0, false, false, true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_link_150kbps_net_delay_0_0_plr_0", foreman_cif.analyzer = {"foreman_cif_link_150kbps_net_delay_0_0_plr_0",
0.0, 0.0, 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
@ -284,9 +305,12 @@ TEST(FullStackTest, ForemanCifLink150kbpsBadRateController) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif", 0, {}, 1.30}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif"),
0, {}, 1.30};
foreman_cif.analyzer = { foreman_cif.analyzer = {
"foreman_cif_link_150kbps_delay100ms_30pkts_queue_overshoot30", 0.0, 0.0, "foreman_cif_link_150kbps_delay100ms_30pkts_queue_overshoot30", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
@ -304,9 +328,12 @@ TEST(FullStackTest, ForemanCifMediaCapacitySmallLossAndQueue) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif", 0, {}, 1.30}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif"),
0, {}, 1.30};
foreman_cif.analyzer = {"foreman_cif_link_250kbps_delay100ms_10pkts_loss1", foreman_cif.analyzer = {"foreman_cif_link_250kbps_delay100ms_10pkts_loss1",
0.0, 0.0, kFullStackTestDurationSecs}; 0.0, 0.0, kFullStackTestDurationSecs};
foreman_cif.config->link_capacity_kbps = 250; foreman_cif.config->link_capacity_kbps = 250;
@ -320,9 +347,11 @@ TEST_P(GenericDescriptorTest, ForemanCifPlr5) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5"), 0.0, 0.0, foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5"), 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 5; foreman_cif.config->loss_percent = 5;
@ -335,9 +364,11 @@ TEST_P(GenericDescriptorTest, ForemanCifPlr5Ulpfec) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, true, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
true, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5_ulpfec"), foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5_ulpfec"),
0.0, 0.0, kFullStackTestDurationSecs}; 0.0, 0.0, kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 5; foreman_cif.config->loss_percent = 5;
@ -350,9 +381,11 @@ TEST(FullStackTest, ForemanCifPlr5Flexfec) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, true, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, true, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_flexfec", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_flexfec", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 5; foreman_cif.config->loss_percent = 5;
@ -364,9 +397,11 @@ TEST(FullStackTest, ForemanCif500kbpsPlr3Flexfec) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, true, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, true, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_flexfec", 0.0, foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_flexfec", 0.0,
0.0, kFullStackTestDurationSecs}; 0.0, kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 3; foreman_cif.config->loss_percent = 3;
@ -379,9 +414,11 @@ TEST(FullStackTest, ForemanCif500kbpsPlr3Ulpfec) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, true, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
true, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_ulpfec", 0.0, foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_ulpfec", 0.0,
0.0, kFullStackTestDurationSecs}; 0.0, kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 3; foreman_cif.config->loss_percent = 3;
@ -396,9 +433,11 @@ TEST(FullStackTest, ForemanCifWithoutPacketlossH264) {
// TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif.
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 700000, 700000, 700000, foreman_cif.video[0] = {
false, "H264", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 700000, 700000, 700000, false,
"H264", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_H264", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_H264", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
fixture->RunWithAnalyzer(foreman_cif); fixture->RunWithAnalyzer(foreman_cif);
@ -408,9 +447,11 @@ TEST(FullStackTest, ForemanCif30kbpsWithoutPacketlossH264) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 10, 30000, 30000, 30000, foreman_cif.video[0] = {
false, "H264", 1, 0, 0, false, false, true, 352, 288, 10,
true, "foreman_cif"}; 30000, 30000, 30000, false,
"H264", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0_H264", 0.0, foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0_H264", 0.0,
0.0, kFullStackTestDurationSecs}; 0.0, kFullStackTestDurationSecs};
fixture->RunWithAnalyzer(foreman_cif); fixture->RunWithAnalyzer(foreman_cif);
@ -420,9 +461,11 @@ TEST_P(GenericDescriptorTest, ForemanCifPlr5H264) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "H264", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"H264", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5_H264"), 0.0, foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5_H264"), 0.0,
0.0, kFullStackTestDurationSecs}; 0.0, kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 5; foreman_cif.config->loss_percent = 5;
@ -438,9 +481,11 @@ TEST(FullStackTest, ForemanCifPlr5H264SpsPpsIdrIsKeyframe) {
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "H264", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"H264", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_sps_pps_idr", 0.0, foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_sps_pps_idr", 0.0,
0.0, kFullStackTestDurationSecs}; 0.0, kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 5; foreman_cif.config->loss_percent = 5;
@ -453,9 +498,11 @@ TEST(FullStackTest, ForemanCifPlr5H264Flexfec) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "H264", 1, 0, 0, false, true, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"H264", 1, 0, 0,
false, true, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_flexfec", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_flexfec", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 5; foreman_cif.config->loss_percent = 5;
@ -469,9 +516,11 @@ TEST(FullStackTest, DISABLED_ForemanCifPlr5H264Ulpfec) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "H264", 1, 0, 0, true, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"H264", 1, 0, 0,
true, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_ulpfec", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_ulpfec", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
foreman_cif.config->loss_percent = 5; foreman_cif.config->loss_percent = 5;
@ -484,9 +533,11 @@ TEST(FullStackTest, ForemanCif500kbps) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_500kbps", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_500kbps", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
foreman_cif.config->queue_length_packets = 0; foreman_cif.config->queue_length_packets = 0;
@ -499,9 +550,11 @@ TEST(FullStackTest, ForemanCif500kbpsLimitedQueue) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
foreman_cif.config->queue_length_packets = 32; foreman_cif.config->queue_length_packets = 32;
@ -514,9 +567,11 @@ TEST(FullStackTest, ForemanCif500kbps100ms) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_500kbps_100ms", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_500kbps_100ms", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
foreman_cif.config->queue_length_packets = 0; foreman_cif.config->queue_length_packets = 0;
@ -529,9 +584,11 @@ TEST_P(GenericDescriptorTest, ForemanCif500kbps100msLimitedQueue) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {GetTestName("foreman_cif_500kbps_100ms_32pkts_queue"), foreman_cif.analyzer = {GetTestName("foreman_cif_500kbps_100ms_32pkts_queue"),
0.0, 0.0, kFullStackTestDurationSecs}; 0.0, 0.0, kFullStackTestDurationSecs};
foreman_cif.config->queue_length_packets = 32; foreman_cif.config->queue_length_packets = 32;
@ -545,9 +602,11 @@ TEST(FullStackTest, ForemanCif500kbps100msLimitedQueueRecvBwe) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = false; foreman_cif.call.send_side_bwe = false;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 500000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 500000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue_recv_bwe", foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue_recv_bwe",
0.0, 0.0, kFullStackTestDurationSecs}; 0.0, 0.0, kFullStackTestDurationSecs};
foreman_cif.config->queue_length_packets = 32; foreman_cif.config->queue_length_packets = 32;
@ -560,9 +619,11 @@ TEST(FullStackTest, ForemanCif1000kbps100msLimitedQueue) {
auto fixture = CreateVideoQualityTestFixture(); auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif; ParamsWithLogging foreman_cif;
foreman_cif.call.send_side_bwe = true; foreman_cif.call.send_side_bwe = true;
foreman_cif.video[0] = {true, 352, 288, 30, 30000, 2000000, 2000000, foreman_cif.video[0] = {
false, "VP8", 1, 0, 0, false, false, true, 352, 288, 30,
true, "foreman_cif"}; 30000, 2000000, 2000000, false,
"VP8", 1, 0, 0,
false, false, true, ClipNameToClipPath("foreman_cif")};
foreman_cif.analyzer = {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0, foreman_cif.analyzer = {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
foreman_cif.config->queue_length_packets = 32; foreman_cif.config->queue_length_packets = 32;
@ -577,9 +638,14 @@ TEST(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueue) {
ParamsWithLogging conf_motion_hd; ParamsWithLogging conf_motion_hd;
conf_motion_hd.call.send_side_bwe = true; conf_motion_hd.call.send_side_bwe = true;
conf_motion_hd.video[0] = { conf_motion_hd.video[0] = {
true, 1280, 720, 50, 30000, true, 1280,
3000000, 3000000, false, "VP8", 1, 720, 50,
0, 0, false, false, false, "ConferenceMotion_1280_720_50"}; 30000, 3000000,
3000000, false,
"VP8", 1,
0, 0,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
conf_motion_hd.analyzer = {"conference_motion_hd_2000kbps_100ms_32pkts_queue", conf_motion_hd.analyzer = {"conference_motion_hd_2000kbps_100ms_32pkts_queue",
0.0, 0.0, kFullStackTestDurationSecs}; 0.0, 0.0, kFullStackTestDurationSecs};
conf_motion_hd.config->queue_length_packets = 32; conf_motion_hd.config->queue_length_packets = 32;
@ -597,9 +663,14 @@ TEST(FullStackTest, ConferenceMotionHd1TLModerateLimitsWhitelistVp8) {
ParamsWithLogging conf_motion_hd; ParamsWithLogging conf_motion_hd;
conf_motion_hd.call.send_side_bwe = true; conf_motion_hd.call.send_side_bwe = true;
conf_motion_hd.video[0] = { conf_motion_hd.video[0] = {
true, 1280, 720, 50, 30000, true, 1280,
3000000, 3000000, false, "VP8", 1, 720, 50,
-1, 0, false, false, false, "ConferenceMotion_1280_720_50"}; 30000, 3000000,
3000000, false,
"VP8", 1,
-1, 0,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
conf_motion_hd.analyzer = { conf_motion_hd.analyzer = {
"conference_motion_hd_1tl_moderate_limits_trusted_rate_ctrl", 0.0, 0.0, "conference_motion_hd_1tl_moderate_limits_trusted_rate_ctrl", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
@ -615,9 +686,14 @@ TEST_P(GenericDescriptorTest, ConferenceMotionHd2TLModerateLimits) {
ParamsWithLogging conf_motion_hd; ParamsWithLogging conf_motion_hd;
conf_motion_hd.call.send_side_bwe = true; conf_motion_hd.call.send_side_bwe = true;
conf_motion_hd.video[0] = { conf_motion_hd.video[0] = {
true, 1280, 720, 50, 30000, true, 1280,
3000000, 3000000, false, "VP8", 2, 720, 50,
-1, 0, false, false, false, "ConferenceMotion_1280_720_50"}; 30000, 3000000,
3000000, false,
"VP8", 2,
-1, 0,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
conf_motion_hd.analyzer = { conf_motion_hd.analyzer = {
GetTestName("conference_motion_hd_2tl_moderate_limits"), 0.0, 0.0, GetTestName("conference_motion_hd_2tl_moderate_limits"), 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
@ -634,9 +710,14 @@ TEST(FullStackTest, ConferenceMotionHd3TLModerateLimits) {
ParamsWithLogging conf_motion_hd; ParamsWithLogging conf_motion_hd;
conf_motion_hd.call.send_side_bwe = true; conf_motion_hd.call.send_side_bwe = true;
conf_motion_hd.video[0] = { conf_motion_hd.video[0] = {
true, 1280, 720, 50, 30000, true, 1280,
3000000, 3000000, false, "VP8", 3, 720, 50,
-1, 0, false, false, false, "ConferenceMotion_1280_720_50"}; 30000, 3000000,
3000000, false,
"VP8", 3,
-1, 0,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
conf_motion_hd.analyzer = {"conference_motion_hd_3tl_moderate_limits", 0.0, conf_motion_hd.analyzer = {"conference_motion_hd_3tl_moderate_limits", 0.0,
0.0, kFullStackTestDurationSecs}; 0.0, kFullStackTestDurationSecs};
conf_motion_hd.config->queue_length_packets = 50; conf_motion_hd.config->queue_length_packets = 50;
@ -651,9 +732,14 @@ TEST(FullStackTest, ConferenceMotionHd4TLModerateLimits) {
ParamsWithLogging conf_motion_hd; ParamsWithLogging conf_motion_hd;
conf_motion_hd.call.send_side_bwe = true; conf_motion_hd.call.send_side_bwe = true;
conf_motion_hd.video[0] = { conf_motion_hd.video[0] = {
true, 1280, 720, 50, 30000, true, 1280,
3000000, 3000000, false, "VP8", 4, 720, 50,
-1, 0, false, false, false, "ConferenceMotion_1280_720_50"}; 30000, 3000000,
3000000, false,
"VP8", 4,
-1, 0,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
conf_motion_hd.analyzer = {"conference_motion_hd_4tl_moderate_limits", 0.0, conf_motion_hd.analyzer = {"conference_motion_hd_4tl_moderate_limits", 0.0,
0.0, kFullStackTestDurationSecs}; 0.0, kFullStackTestDurationSecs};
conf_motion_hd.config->queue_length_packets = 50; conf_motion_hd.config->queue_length_packets = 50;
@ -670,10 +756,14 @@ TEST(FullStackTest, ConferenceMotionHd3TLModerateLimitsAltTLPattern) {
ParamsWithLogging conf_motion_hd; ParamsWithLogging conf_motion_hd;
conf_motion_hd.call.send_side_bwe = true; conf_motion_hd.call.send_side_bwe = true;
conf_motion_hd.video[0] = { conf_motion_hd.video[0] = {
true, 1280, 720, 50, true, 1280,
30000, 3000000, 3000000, false, 720, 50,
"VP8", 3, -1, 0, 30000, 3000000,
false, false, false, "ConferenceMotion_1280_720_50"}; 3000000, false,
"VP8", 3,
-1, 0,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
conf_motion_hd.analyzer = {"conference_motion_hd_3tl_alt_moderate_limits", conf_motion_hd.analyzer = {"conference_motion_hd_3tl_alt_moderate_limits",
0.0, 0.0, kFullStackTestDurationSecs}; 0.0, 0.0, kFullStackTestDurationSecs};
conf_motion_hd.config->queue_length_packets = 50; conf_motion_hd.config->queue_length_packets = 50;
@ -692,9 +782,14 @@ TEST(FullStackTest,
ParamsWithLogging conf_motion_hd; ParamsWithLogging conf_motion_hd;
conf_motion_hd.call.send_side_bwe = true; conf_motion_hd.call.send_side_bwe = true;
conf_motion_hd.video[0] = { conf_motion_hd.video[0] = {
true, 1280, 720, 50, 30000, true, 1280,
3000000, 3000000, false, "VP8", 3, 720, 50,
-1, 0, false, false, false, "ConferenceMotion_1280_720_50"}; 30000, 3000000,
3000000, false,
"VP8", 3,
-1, 0,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
conf_motion_hd.analyzer = { conf_motion_hd.analyzer = {
"conference_motion_hd_3tl_alt_heavy_moderate_limits", 0.0, 0.0, "conference_motion_hd_3tl_alt_heavy_moderate_limits", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
@ -711,9 +806,14 @@ TEST(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueueVP9) {
ParamsWithLogging conf_motion_hd; ParamsWithLogging conf_motion_hd;
conf_motion_hd.call.send_side_bwe = true; conf_motion_hd.call.send_side_bwe = true;
conf_motion_hd.video[0] = { conf_motion_hd.video[0] = {
true, 1280, 720, 50, 30000, true, 1280,
3000000, 3000000, false, "VP9", 1, 720, 50,
0, 0, false, false, false, "ConferenceMotion_1280_720_50"}; 30000, 3000000,
3000000, false,
"VP9", 1,
0, 0,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
conf_motion_hd.analyzer = { conf_motion_hd.analyzer = {
"conference_motion_hd_2000kbps_100ms_32pkts_queue_vp9", 0.0, 0.0, "conference_motion_hd_2000kbps_100ms_32pkts_queue_vp9", 0.0, 0.0,
kFullStackTestDurationSecs}; kFullStackTestDurationSecs};
@ -890,24 +990,36 @@ TEST(FullStackTest, ScreenshareSlidesVP8_2TL_ModeratelyRestricted) {
} }
const ParamsWithLogging::Video kSvcVp9Video = { const ParamsWithLogging::Video kSvcVp9Video = {
true, 1280, 720, 30, 800000, true, 1280,
2500000, 2500000, false, "VP9", 3, 720, 30,
2, 400000, false, false, false, "ConferenceMotion_1280_720_50"}; 800000, 2500000,
2500000, false,
"VP9", 3,
2, 400000,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
const ParamsWithLogging::Video kSimulcastVp8VideoHigh = { const ParamsWithLogging::Video kSimulcastVp8VideoHigh = {
true, 1280, 720, 30, 800000, true, 1280,
2500000, 2500000, false, "VP8", 3, 720, 30,
2, 400000, false, false, false, "ConferenceMotion_1280_720_50"}; 800000, 2500000,
2500000, false,
"VP8", 3,
2, 400000,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
const ParamsWithLogging::Video kSimulcastVp8VideoMedium = { const ParamsWithLogging::Video kSimulcastVp8VideoMedium = {
true, 640, 360, 30, 150000, true, 640, 360, 30,
500000, 700000, false, "VP8", 3, 150000, 500000, 700000, false,
2, 400000, false, false, false, "ConferenceMotion_1280_720_50"}; "VP8", 3, 2, 400000,
false, false, false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
const ParamsWithLogging::Video kSimulcastVp8VideoLow = { const ParamsWithLogging::Video kSimulcastVp8VideoLow = {
true, 320, 180, 30, 30000, true, 320, 180, 30,
150000, 200000, false, "VP8", 3, 30000, 150000, 200000, false,
2, 400000, false, false, false, "ConferenceMotion_1280_720_50"}; "VP8", 3, 2, 400000,
false, false, false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
#if defined(RTC_ENABLE_VP9) #if defined(RTC_ENABLE_VP9)
@ -1401,9 +1513,14 @@ TEST_P(DualStreamsTest, Conference_Restricted) {
""}; ""};
// Video settings. // Video settings.
dual_streams.video[1 - first_stream] = { dual_streams.video[1 - first_stream] = {
true, 1280, 720, 30, 150000, true, 1280,
500000, 700000, false, "VP8", 3, 720, 30,
2, 400000, false, false, false, "ConferenceMotion_1280_720_50"}; 150000, 500000,
700000, false,
"VP8", 3,
2, 400000,
false, false,
false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
// Call settings. // Call settings.
dual_streams.call.send_side_bwe = true; dual_streams.call.send_side_bwe = true;

View File

@ -1058,24 +1058,24 @@ void VideoQualityTest::CreateCapturers() {
EXPECT_TRUE(frame_generator_capturer->Init()); EXPECT_TRUE(frame_generator_capturer->Init());
video_sources_[video_idx].reset(frame_generator_capturer); video_sources_[video_idx].reset(frame_generator_capturer);
} else { } else {
if (params_.video[video_idx].clip_name == "Generator") { if (params_.video[video_idx].clip_path == "Generator") {
video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create( video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create(
static_cast<int>(params_.video[video_idx].width), static_cast<int>(params_.video[video_idx].width),
static_cast<int>(params_.video[video_idx].height), absl::nullopt, static_cast<int>(params_.video[video_idx].height), absl::nullopt,
absl::nullopt, params_.video[video_idx].fps, clock_)); absl::nullopt, params_.video[video_idx].fps, clock_));
} else if (params_.video[video_idx].clip_name == "GeneratorI420A") { } else if (params_.video[video_idx].clip_path == "GeneratorI420A") {
video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create( video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create(
static_cast<int>(params_.video[video_idx].width), static_cast<int>(params_.video[video_idx].width),
static_cast<int>(params_.video[video_idx].height), static_cast<int>(params_.video[video_idx].height),
test::FrameGenerator::OutputType::I420A, absl::nullopt, test::FrameGenerator::OutputType::I420A, absl::nullopt,
params_.video[video_idx].fps, clock_)); params_.video[video_idx].fps, clock_));
} else if (params_.video[video_idx].clip_name == "GeneratorI010") { } else if (params_.video[video_idx].clip_path == "GeneratorI010") {
video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create( video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create(
static_cast<int>(params_.video[video_idx].width), static_cast<int>(params_.video[video_idx].width),
static_cast<int>(params_.video[video_idx].height), static_cast<int>(params_.video[video_idx].height),
test::FrameGenerator::OutputType::I010, absl::nullopt, test::FrameGenerator::OutputType::I010, absl::nullopt,
params_.video[video_idx].fps, clock_)); params_.video[video_idx].fps, clock_));
} else if (params_.video[video_idx].clip_name.empty()) { } else if (params_.video[video_idx].clip_path.empty()) {
video_sources_[video_idx] = test::CreateVideoCapturer( video_sources_[video_idx] = test::CreateVideoCapturer(
params_.video[video_idx].width, params_.video[video_idx].height, params_.video[video_idx].width, params_.video[video_idx].height,
params_.video[video_idx].fps, params_.video[video_idx].fps,
@ -1090,13 +1090,13 @@ void VideoQualityTest::CreateCapturers() {
} else { } else {
video_sources_[video_idx].reset( video_sources_[video_idx].reset(
test::FrameGeneratorCapturer::CreateFromYuvFile( test::FrameGeneratorCapturer::CreateFromYuvFile(
test::ResourcePath(params_.video[video_idx].clip_name, "yuv"), params_.video[video_idx].clip_path,
params_.video[video_idx].width, params_.video[video_idx].height, params_.video[video_idx].width, params_.video[video_idx].height,
params_.video[video_idx].fps, clock_)); params_.video[video_idx].fps, clock_));
ASSERT_TRUE(video_sources_[video_idx]) ASSERT_TRUE(video_sources_[video_idx])
<< "Could not create capturer for " << "Could not create capturer for "
<< params_.video[video_idx].clip_name << params_.video[video_idx].clip_path
<< ".yuv. Is this resource file present?"; << ".yuv. Is this file present?";
} }
} }
RTC_DCHECK(video_sources_[video_idx]); RTC_DCHECK(video_sources_[video_idx]);