Allowing to set PCF options via peer configurer

Bug: webrtc:15752
Change-Id: I408cf2e118d09504d59a09ef4c2767ab89982db4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/332645
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41462}
diff --git a/api/test/pclf/media_quality_test_params.h b/api/test/pclf/media_quality_test_params.h
index aad04c3..8a3a13a 100644
--- a/api/test/pclf/media_quality_test_params.h
+++ b/api/test/pclf/media_quality_test_params.h
@@ -136,6 +136,7 @@
   // provided into VideoEncoder::SetRates(...).
   double video_encoder_bitrate_multiplier = 1.0;
 
+  PeerConnectionFactoryInterface::Options peer_connection_factory_options;
   PeerConnectionInterface::RTCConfiguration rtc_configuration;
   PeerConnectionInterface::RTCOfferAnswerOptions rtc_offer_answer_options;
   BitrateSettings bitrate_settings;
diff --git a/api/test/pclf/peer_configurer.cc b/api/test/pclf/peer_configurer.cc
index 5e38545..ac0d028 100644
--- a/api/test/pclf/peer_configurer.cc
+++ b/api/test/pclf/peer_configurer.cc
@@ -205,6 +205,11 @@
   params_->aec_dump_path = std::string(path);
   return this;
 }
+PeerConfigurer* PeerConfigurer::SetPCFOptions(
+    PeerConnectionFactoryInterface::Options options) {
+  params_->peer_connection_factory_options = std::move(options);
+  return this;
+}
 PeerConfigurer* PeerConfigurer::SetRTCConfiguration(
     PeerConnectionInterface::RTCConfiguration configuration) {
   params_->rtc_configuration = std::move(configuration);
diff --git a/api/test/pclf/peer_configurer.h b/api/test/pclf/peer_configurer.h
index c0faf85..1c6fb4c 100644
--- a/api/test/pclf/peer_configurer.h
+++ b/api/test/pclf/peer_configurer.h
@@ -158,6 +158,8 @@
   // If is set, an AEC dump will be saved in that location and it will be
   // available for further analysis.
   PeerConfigurer* SetAecDumpPath(absl::string_view path);
+  PeerConfigurer* SetPCFOptions(
+      PeerConnectionFactoryInterface::Options options);
   PeerConfigurer* SetRTCConfiguration(
       PeerConnectionInterface::RTCConfiguration configuration);
   PeerConfigurer* SetRTCOfferAnswerOptions(
diff --git a/test/pc/e2e/test_peer_factory.cc b/test/pc/e2e/test_peer_factory.cc
index 940a4ff..a184c5d 100644
--- a/test/pc/e2e/test_peer_factory.cc
+++ b/test/pc/e2e/test_peer_factory.cc
@@ -327,6 +327,7 @@
       components->worker_thread, components->network_thread);
   rtc::scoped_refptr<PeerConnectionFactoryInterface> peer_connection_factory =
       CreateModularPeerConnectionFactory(std::move(pcf_deps));
+  peer_connection_factory->SetOptions(params->peer_connection_factory_options);
 
   // Create peer connection.
   PeerConnectionDependencies pc_deps =