Expose TaskQueueFactory for webrtc::Call in peer connection api

making a step for GlobalTaskQueueFactory to be optional way
to provide TaskQueueFactory

Bug: webrtc:10284
Change-Id: Ife838b3691c256820973118bc5b3cb372dea09cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130488
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27423}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 1a193d9..0d26945 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -144,6 +144,7 @@
     ":scoped_refptr",
     "audio:audio_mixer_api",
     "audio_codecs:audio_codecs_api",
+    "task_queue",
     "transport:bitrate_settings",
     "transport:network_control",
     "transport/media:audio_interfaces",
diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h
index b925fe8..661c5aa 100644
--- a/api/peer_connection_interface.h
+++ b/api/peer_connection_interface.h
@@ -91,6 +91,7 @@
 #include "api/set_remote_description_observer_interface.h"
 #include "api/stats/rtc_stats_collector_callback.h"
 #include "api/stats_types.h"
+#include "api/task_queue/task_queue_factory.h"
 #include "api/transport/bitrate_settings.h"
 #include "api/transport/network_control.h"
 #include "api/turn_customizer.h"
@@ -1242,6 +1243,7 @@
   rtc::Thread* network_thread = nullptr;
   rtc::Thread* worker_thread = nullptr;
   rtc::Thread* signaling_thread = nullptr;
+  std::unique_ptr<TaskQueueFactory> task_queue_factory;
   std::unique_ptr<cricket::MediaEngineInterface> media_engine;
   std::unique_ptr<CallFactoryInterface> call_factory;
   std::unique_ptr<RtcEventLogFactoryInterface> event_log_factory;