Move TaskQueueFactory from Call::Create parameter to CallConfig

to decouple it from other optional parameters
and with plan to make it mandatory

Bug: webrtc:10284
Change-Id: I1224abd90d8e06e0ee2d2baaa6d0fd54f8caad2b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130470
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27382}
This commit is contained in:
Danil Chapovalov 2019-04-01 09:42:47 +02:00 committed by Commit Bot
parent ef139908ee
commit 90705cbc41
3 changed files with 14 additions and 8 deletions

View File

@ -424,16 +424,20 @@ std::string Call::Stats::ToString(int64_t time_ms) const {
}
Call* Call::Create(const Call::Config& config) {
return Create(
config, Clock::GetRealTimeClock(), ProcessThread::Create("PacerThread"),
ProcessThread::Create("ModuleProcessThread"), &GlobalTaskQueueFactory());
return Create(config, Clock::GetRealTimeClock(),
ProcessThread::Create("PacerThread"),
ProcessThread::Create("ModuleProcessThread"));
}
Call* Call::Create(const Call::Config& config,
Clock* clock,
std::unique_ptr<ProcessThread> call_thread,
std::unique_ptr<ProcessThread> pacer_thread,
TaskQueueFactory* task_queue_factory) {
std::unique_ptr<ProcessThread> pacer_thread) {
// TODO(bugs.webrtc.org/10284): DCHECK task_queue_factory dependency is
// always provided in the config.
TaskQueueFactory* task_queue_factory = config.task_queue_factory
? config.task_queue_factory
: &GlobalTaskQueueFactory();
return new internal::Call(
clock, config,
absl::make_unique<RtpTransportControllerSend>(

View File

@ -16,7 +16,6 @@
#include <vector>
#include "api/media_types.h"
#include "api/task_queue/task_queue_factory.h"
#include "call/audio_receive_stream.h"
#include "call/audio_send_stream.h"
#include "call/call_config.h"
@ -54,8 +53,7 @@ class Call {
static Call* Create(const Call::Config& config,
Clock* clock,
std::unique_ptr<ProcessThread> call_thread,
std::unique_ptr<ProcessThread> pacer_thread,
TaskQueueFactory* task_queue_factory);
std::unique_ptr<ProcessThread> pacer_thread);
virtual AudioSendStream* CreateAudioSendStream(
const AudioSendStream::Config& config) = 0;

View File

@ -13,6 +13,7 @@
#include "api/bitrate_constraints.h"
#include "api/fec_controller.h"
#include "api/rtc_error.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/transport/network_control.h"
#include "call/audio_state.h"
@ -45,6 +46,9 @@ struct CallConfig {
// FecController to use for this call.
FecControllerFactoryInterface* fec_controller_factory = nullptr;
// Task Queue Factory to be used in this call.
TaskQueueFactory* task_queue_factory = nullptr;
// Network controller factory to use for this call.
NetworkControllerFactoryInterface* network_controller_factory = nullptr;
};