Enforce stream id uniqueness in RtpSender::set_stream_ids

https://w3c.github.io/webrtc-pc/#dfn-create-an-rtcrtpsender
has a step saying
  For each stream in streams, add stream.id to
  [[AssociatedMediaStreamIds]] if it's not already there

This applies to addTrack and setStreams and the set of streams in
addTransceiver.

BUG=webrtc:14769

Change-Id: If6be813396a1987dfe49fd73f976f96c71459eaf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/287864
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38937}
This commit is contained in:
Philipp Hancke 2022-12-14 10:48:48 +01:00 committed by WebRTC LUCI CQ
parent 54cf754dac
commit 315b95ca11
8 changed files with 85 additions and 8 deletions

View File

@ -134,6 +134,7 @@ TEST(PCLowBandwidthAudioTest, PCGoodNetworkHighBitrate) {
[](PeerConfigurer* alice) {
AudioConfig audio;
audio.stream_label = "alice-audio";
audio.sync_group = "alice-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name = AudioInputFile();
audio.output_dump_file_name = AudioOutputFile();
@ -160,6 +161,7 @@ TEST(PCLowBandwidthAudioTest, PC40kbpsNetwork) {
[](PeerConfigurer* alice) {
AudioConfig audio;
audio.stream_label = "alice-audio";
audio.sync_group = "alice-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name = AudioInputFile();
audio.output_dump_file_name = AudioOutputFile();

View File

@ -383,6 +383,14 @@ void RtpSenderBase::SetParametersAsync(const RtpParameters& parameters,
false);
}
void RtpSenderBase::set_stream_ids(const std::vector<std::string>& stream_ids) {
stream_ids_.clear();
absl::c_copy_if(stream_ids, std::back_inserter(stream_ids_),
[this](const std::string& stream_id) {
return !absl::c_linear_search(stream_ids_, stream_id);
});
}
void RtpSenderBase::SetStreams(const std::vector<std::string>& stream_ids) {
set_stream_ids(stream_ids);
if (set_streams_observer_)

View File

@ -164,9 +164,8 @@ class RtpSenderBase : public RtpSenderInternal, public ObserverInterface {
RTC_DCHECK_RUN_ON(signaling_thread_);
return stream_ids_;
}
void set_stream_ids(const std::vector<std::string>& stream_ids) override {
stream_ids_ = stream_ids;
}
// Set stream ids, eliminating duplicates in the process.
void set_stream_ids(const std::vector<std::string>& stream_ids) override;
void SetStreams(const std::vector<std::string>& stream_ids) override;
std::string id() const override { return id_; }

View File

@ -1888,6 +1888,15 @@ TEST_F(RtpSenderReceiverTest,
EXPECT_TRUE(video_rtp_sender_->SetParameters(parameters).ok());
}
// Checks that the senders SetStreams eliminates duplicate stream ids.
TEST_F(RtpSenderReceiverTest, SenderSetStreamsEliminatesDuplicateIds) {
AddVideoTrack();
video_rtp_sender_ =
VideoRtpSender::Create(worker_thread_, video_track_->id(), nullptr);
video_rtp_sender_->SetStreams({"1", "2", "1"});
EXPECT_EQ(video_rtp_sender_->stream_ids().size(), 2u);
}
// Helper method for syntactic sugar for accepting a vector with '{}' notation.
std::pair<RidList, RidList> CreatePairOfRidVectors(
const std::vector<std::string>& first,

View File

@ -329,6 +329,7 @@ TEST_P(SvcTest, ScalabilityModeSupported) {
[this](PeerConfigurer* alice) {
VideoConfig video(/*stream_label=*/"alice-video", /*width=*/1850,
/*height=*/1110, /*fps=*/30);
video.sync_group = "alice-media";
if (IsSMode()) {
video.emulated_sfu_config = EmulatedSFUConfig(
SvcTestParameters().expected_spatial_layers - 1,

View File

@ -138,11 +138,11 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Smoke) {
AudioConfig audio;
audio.stream_label = "alice-audio";
audio.sync_group = "alice-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name =
test::ResourcePath("pc_quality_smoke_test_alice_source", "wav");
audio.sampling_frequency_in_hz = 48000;
audio.sync_group = "alice-media";
alice->SetAudioConfig(std::move(audio));
alice->SetVideoCodecs(
{VideoCodecConfig(cricket::kVp9CodecName, {{"profile-id", "0"}})});
@ -155,11 +155,13 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Smoke) {
charlie->SetName("charlie");
VideoConfig video(160, 120, 15);
video.stream_label = "charlie-video";
video.sync_group = "charlie-media";
video.temporal_layers_count = 2;
charlie->AddVideoConfig(std::move(video));
AudioConfig audio;
audio.stream_label = "charlie-audio";
audio.sync_group = "charlie-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name =
test::ResourcePath("pc_quality_smoke_test_bob_source", "wav");
@ -226,11 +228,13 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest,
charlie->SetName("charlie");
VideoConfig video(160, 120, 15);
video.stream_label = "charlie-video";
video.sync_group = "charlie-media";
video.temporal_layers_count = 2;
charlie->AddVideoConfig(std::move(video));
AudioConfig audio;
audio.stream_label = "charlie-audio";
audio.sync_group = "charlie-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name =
test::ResourcePath("pc_quality_smoke_test_bob_source", "wav");
@ -276,11 +280,13 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, SmokeH264) {
charlie->SetName("charlie");
VideoConfig video(160, 120, 15);
video.stream_label = "charlie-video";
video.sync_group = "charlie-media";
video.temporal_layers_count = 2;
charlie->AddVideoConfig(std::move(video));
AudioConfig audio;
audio.stream_label = "charlie-audio";
audio.sync_group = "charlie-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name =
test::ResourcePath("pc_quality_smoke_test_bob_source", "wav");
@ -387,6 +393,7 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Screenshare) {
AddPeer(network_links.first, [](PeerConfigurer* alice) {
VideoConfig screenshare(320, 180, 30);
screenshare.stream_label = "alice-screenshare";
screenshare.sync_group = "alice-media";
screenshare.content_hint = VideoTrackInterface::ContentHint::kText;
ScreenShareConfig screen_share_config =
ScreenShareConfig(TimeDelta::Seconds(2));
@ -413,6 +420,7 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Echo) {
AddPeer(network_links.first, [](PeerConfigurer* alice) {
AudioConfig audio;
audio.stream_label = "alice-audio";
audio.sync_group = "alice-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name =
test::ResourcePath("pc_quality_smoke_test_alice_source", "wav");
@ -422,6 +430,7 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Echo) {
AddPeer(network_links.second, [](PeerConfigurer* bob) {
AudioConfig audio;
audio.stream_label = "bob-audio";
audio.sync_group = "bob-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name =
test::ResourcePath("pc_quality_smoke_test_bob_source", "wav");
@ -444,12 +453,14 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Simulcast) {
AddPeer(network_links.first, [](PeerConfigurer* alice) {
VideoConfig simulcast(1280, 720, 15);
simulcast.stream_label = "alice-simulcast";
simulcast.sync_group = "alice-media";
simulcast.simulcast_config = VideoSimulcastConfig(2);
simulcast.emulated_sfu_config = EmulatedSFUConfig(0);
alice->AddVideoConfig(std::move(simulcast));
AudioConfig audio;
audio.stream_label = "alice-audio";
audio.sync_group = "alice-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name =
test::ResourcePath("pc_quality_smoke_test_alice_source", "wav");
@ -470,14 +481,18 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Svc) {
std::pair<EmulatedNetworkManagerInterface*, EmulatedNetworkManagerInterface*>
network_links = CreateNetwork();
AddPeer(network_links.first, [](PeerConfigurer* alice) {
VideoConfig simulcast("alice-svc", 1280, 720, 15);
VideoConfig simulcast(1280, 720, 15);
simulcast.stream_label = "alice-svc";
simulcast.sync_group = "alice-media";
// Because we have network with packets loss we can analyze only the
// highest spatial layer in SVC mode.
simulcast.simulcast_config = VideoSimulcastConfig(2);
simulcast.emulated_sfu_config = EmulatedSFUConfig(1);
alice->AddVideoConfig(std::move(simulcast));
AudioConfig audio("alice-audio");
AudioConfig audio;
audio.stream_label = "alice-audio";
audio.sync_group = "alice-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name =
test::ResourcePath("pc_quality_smoke_test_alice_source", "wav");
@ -507,6 +522,7 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_HighBitrate) {
alice->SetBitrateSettings(bitrate_settings);
VideoConfig video(800, 600, 15);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
RtpEncodingParameters encoding_parameters;
encoding_parameters.min_bitrate_bps = 500'000;
encoding_parameters.max_bitrate_bps = 3'000'000;
@ -515,6 +531,7 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_HighBitrate) {
AudioConfig audio;
audio.stream_label = "alice-audio";
audio.sync_group = "alice-media";
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name =
test::ResourcePath("pc_quality_smoke_test_alice_source", "wav");

View File

@ -114,7 +114,9 @@ TEST_F(PeerConnectionE2EQualityTestTest, OutputVideoIsDumpedWhenRequested) {
EmulatedNetworkManagerInterface* bob_network =
network_emulation->CreateEmulatedNetworkManagerInterface({bob_endpoint});
VideoConfig alice_video("alice_video", 320, 180, 15);
VideoConfig alice_video(320, 180, 15);
alice_video.stream_label = "alice-video";
alice_video.sync_group = "alice-media";
alice_video.output_dump_options = VideoDumpOptions(test_directory_);
PeerConfigurer alice(alice_network->network_dependencies());
alice.SetName("alice");
@ -128,7 +130,7 @@ TEST_F(PeerConnectionE2EQualityTestTest, OutputVideoIsDumpedWhenRequested) {
fixture.Run(RunParams(TimeDelta::Seconds(2)));
auto frame_reader = test::CreateY4mFrameReader(
test::JoinFilename(test_directory_, "alice_video_bob_320x180_15.y4m"));
test::JoinFilename(test_directory_, "alice-video_bob_320x180_15.y4m"));
EXPECT_THAT(frame_reader->num_frames(), Eq(31)); // 2 seconds 15 fps + 1
ExpectOutputFilesCount(1);

View File

@ -133,6 +133,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_Net_Delay_0_0_Plr_0_VP9) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -164,6 +165,7 @@ TEST(PCGenericDescriptorTest,
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -202,6 +204,7 @@ TEST(PCFullStackTest, MAYBE_Pc_Generator_Net_Delay_0_0_Plr_0_VP9Profile2) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateSquareFrameGenerator(
video, test::FrameGeneratorInterface::OutputType::kI010);
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -261,6 +264,7 @@ TEST(PCFullStackTest, Pc_Net_Delay_0_0_Plr_0) {
[](PeerConfigurer* alice) {
VideoConfig video(176, 144, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("paris_qcif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -281,6 +285,7 @@ TEST(PCGenericDescriptorTest,
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -301,6 +306,7 @@ TEST(PCGenericDescriptorTest,
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 10);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -329,6 +335,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_Link_150kbps_Net_Delay_0_0_Plr_0) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -351,6 +358,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_Link_130kbps_Delay100ms_Loss1_Ulpfec) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -374,6 +382,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_Link_50kbps_Delay100ms_Loss1_Ulpfec) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -399,6 +408,7 @@ TEST(PCFullStackTest,
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -427,6 +437,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_Link_250kbps_Delay100ms_10pkts_Loss1) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -450,6 +461,7 @@ TEST(PCGenericDescriptorTest,
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -472,6 +484,7 @@ TEST(PCGenericDescriptorTest,
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -494,6 +507,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_Delay_50_0_Plr_5_Flexfec) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -519,6 +533,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_500kbps_Delay_50_0_Plr_3_Flexfec) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -544,6 +559,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_500kbps_Delay_50_0_Plr_3_Ulpfec) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -565,6 +581,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_Net_Delay_0_0_Plr_0_H264) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -587,6 +604,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_30kbps_Net_Delay_0_0_Plr_0_H264) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 10);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -618,6 +636,7 @@ TEST(PCGenericDescriptorTest,
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -645,6 +664,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_Delay_50_0_Plr_5_H264_Sps_Pps_Idr) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -669,6 +689,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_Delay_50_0_Plr_5_H264_Flexfec) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -699,6 +720,7 @@ TEST(PCFullStackTest, DISABLED_Pc_Foreman_Cif_Delay_50_0_Plr_5_H264_Ulpfec) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -726,6 +748,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_500kbps) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -748,6 +771,7 @@ TEST_P(ParameterizedPCFullStackTest, Pc_Foreman_Cif_500kbps_32pkts_Queue) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -777,6 +801,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_500kbps_100ms) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -800,6 +825,7 @@ TEST(PCGenericDescriptorTest,
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -843,6 +869,7 @@ TEST(PCFullStackTest, Pc_Foreman_Cif_1000kbps_100ms_32pkts_Queue) {
[](PeerConfigurer* alice) {
VideoConfig video(352, 288, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("foreman_cif"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -866,6 +893,7 @@ TEST(PCFullStackTest, Pc_Conference_Motion_Hd_2000kbps_100ms_32pkts_Queue) {
[](PeerConfigurer* alice) {
VideoConfig video(1280, 720, 50);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("ConferenceMotion_1280_720_50"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -1017,6 +1045,7 @@ TEST_P(ParameterizedPCFullStackTest,
[](PeerConfigurer* alice) {
VideoConfig video(1280, 720, 50);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("ConferenceMotion_1280_720_50"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -1052,6 +1081,7 @@ TEST(PCFullStackTest, Pc_Screenshare_Slides_No_Conference_Mode) {
[](PeerConfigurer* alice) {
VideoConfig video(1850, 1110, 5);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
video.content_hint = VideoTrackInterface::ContentHint::kText;
auto frame_generator = CreateScreenShareFrameGenerator(
video, ScreenShareConfig(TimeDelta::Seconds(10)));
@ -1071,6 +1101,7 @@ TEST(PCFullStackTest, Pc_Screenshare_Slides) {
[](PeerConfigurer* alice) {
VideoConfig video(1850, 1110, 5);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
video.content_hint = VideoTrackInterface::ContentHint::kText;
auto frame_generator = CreateScreenShareFrameGenerator(
video, ScreenShareConfig(TimeDelta::Seconds(10)));
@ -1098,6 +1129,7 @@ TEST(PCFullStackTest, Pc_Screenshare_Slides_Simulcast_No_Conference_Mode) {
video.emulated_sfu_config = EmulatedSFUConfig(1);
video.temporal_layers_count = 2;
video.stream_label = "alice-video";
video.sync_group = "alice-media";
video.content_hint = VideoTrackInterface::ContentHint::kText;
auto frame_generator = CreateScreenShareFrameGenerator(
video, ScreenShareConfig(TimeDelta::Seconds(10)));
@ -1121,6 +1153,7 @@ TEST_P(ParameterizedPCFullStackTest, Pc_Screenshare_Slides_Simulcast) {
video.emulated_sfu_config = EmulatedSFUConfig(1);
video.temporal_layers_count = 2;
video.stream_label = "alice-video";
video.sync_group = "alice-media";
video.content_hint = VideoTrackInterface::ContentHint::kText;
auto frame_generator = CreateScreenShareFrameGenerator(
video, ScreenShareConfig(TimeDelta::Seconds(10)));
@ -1331,6 +1364,7 @@ TEST(PCFullStackTest, Pc_Screenshare_Slides_Vp9_3sl_High_Fps) {
[](PeerConfigurer* alice) {
VideoConfig video(1850, 1110, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
video.simulcast_config = VideoSimulcastConfig(3);
video.emulated_sfu_config = EmulatedSFUConfig(2);
video.content_hint = VideoTrackInterface::ContentHint::kText;
@ -1364,6 +1398,7 @@ TEST(PCFullStackTest, Pc_Vp9svc_3sl_High) {
[](PeerConfigurer* alice) {
VideoConfig video(1280, 720, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
video.simulcast_config = VideoSimulcastConfig(3);
video.emulated_sfu_config = EmulatedSFUConfig(2);
video.temporal_layers_count = 3;
@ -1397,6 +1432,7 @@ TEST(PCFullStackTest, Pc_Vp9svc_3sl_Low) {
[](PeerConfigurer* alice) {
VideoConfig video(1280, 720, 30);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
video.simulcast_config = VideoSimulcastConfig(3);
video.emulated_sfu_config = EmulatedSFUConfig(0);
video.temporal_layers_count = 3;
@ -1533,6 +1569,7 @@ TEST(PCFullStackTest, MAYBE_Pc_Simulcast_HD_High) {
video.emulated_sfu_config = EmulatedSFUConfig(2);
video.temporal_layers_count = 3;
video.stream_label = "alice-video";
video.sync_group = "alice-media";
alice->AddVideoConfig(std::move(video));
},
[](PeerConfigurer* bob) {});
@ -1554,6 +1591,7 @@ TEST_P(ParameterizedPCFullStackTest, Pc_Simulcast_Vp8_3sl_High) {
video.simulcast_config = VideoSimulcastConfig(3);
video.emulated_sfu_config = EmulatedSFUConfig(2);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("ConferenceMotion_1280_720_50"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));
@ -1583,6 +1621,7 @@ TEST(PCFullStackTest, Pc_Simulcast_Vp8_3sl_Low) {
video.simulcast_config = VideoSimulcastConfig(3);
video.emulated_sfu_config = EmulatedSFUConfig(0);
video.stream_label = "alice-video";
video.sync_group = "alice-media";
auto frame_generator = CreateFromYuvFileFrameGenerator(
video, ClipNameToClipPath("ConferenceMotion_1280_720_50"));
alice->AddVideoConfig(std::move(video), std::move(frame_generator));