WebRTC之每创建一个PeerConnection,都会创建两个线程

  • 在RtpTransportControllerSend的构造函数中
process_thread_(ProcessThread::Create("SendControllerThread")),
  • 在Call的构造函数中,
module_process_thread_(ProcessThread::Create("ModuleProcessThread")),
  • 在这里调用
    • 分别调用了RtpTransportControllerSend的构造和Call的构造
Call* Call::Create(const Call::Config& config) {
  return new internal::Call(
      config, absl::make_unique<RtpTransportControllerSend>(
                  Clock::GetRealTimeClock(), config.event_log,
                  config.network_controller_factory, config.bitrate_config));
}
  • 其实是这个函数
    CreateCall_w

WebRTC之每创建一个PeerConnection,都会创建两个线程_第1张图片

  • 调用过程是这里
rtc::scoped_refptr<PeerConnectionInterface>
PeerConnectionFactory::CreatePeerConnection(
    const PeerConnectionInterface::RTCConfiguration& configuration,
    PeerConnectionDependencies dependencies) {
    
  std::unique_ptr<Call> call = worker_thread_->Invoke<std::unique_ptr<Call>>(
      RTC_FROM_HERE,
      rtc::Bind(&PeerConnectionFactory::CreateCall_w, this, event_log.get()));
      
}

你可能感兴趣的:(webrtc)