void PeerConnectionMedia::EnsureTransports(const JsepSession& aSession) { auto transports = aSession.GetTransports(); for (size_t i = 0; i < transports.size(); ++i) { RefPtr<JsepTransport> transport = transports[i]; RUN_ON_THREAD( GetSTSThread(), WrapRunnable(RefPtr<PeerConnectionMedia>(this), &PeerConnectionMedia::EnsureTransport_s, i, transport->mComponents), NS_DISPATCH_NORMAL); } GatherIfReady(); }
void PeerConnectionMedia::EnsureTransports(const JsepSession& aSession) { for (const auto& transceiver : aSession.GetTransceivers()) { if (!transceiver->HasLevel()) { continue; } RefPtr<JsepTransport> transport = transceiver->mTransport; RUN_ON_THREAD( GetSTSThread(), WrapRunnable(RefPtr<PeerConnectionMedia>(this), &PeerConnectionMedia::EnsureTransport_s, transceiver->GetLevel(), transport->mComponents), NS_DISPATCH_NORMAL); } GatherIfReady(); }
void PeerConnectionMedia::UpdateTransports(const JsepSession& session, bool restartGathering) { auto transports = session.GetTransports(); for (size_t i = 0; i < transports.size(); ++i) { RefPtr<JsepTransport> transport = transports[i]; std::string ufrag; std::string pwd; std::vector<std::string> candidates; bool hasAttrs = false; if (transport->mIce) { CSFLogDebug(logTag, "Transport %u is active", static_cast<unsigned>(i)); hasAttrs = true; ufrag = transport->mIce->GetUfrag(); pwd = transport->mIce->GetPassword(); candidates = transport->mIce->GetCandidates(); } // Update the transport. RUN_ON_THREAD(GetSTSThread(), WrapRunnable(RefPtr<PeerConnectionMedia>(this), &PeerConnectionMedia::UpdateIceMediaStream_s, i, transport->mComponents, hasAttrs, ufrag, pwd, candidates), NS_DISPATCH_NORMAL); } if (restartGathering) { GatherIfReady(); } }