Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(369)

Side by Side Diff: webrtc/ortc/ortcfactory.cc

Issue 2981513002: Wire up RTP keep-alive in ortc api. (Closed)
Patch Set: Moved tests around Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2017 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2017 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 69
70 namespace webrtc { 70 namespace webrtc {
71 71
72 // Note that this proxy class uses the network thread as the "worker" thread. 72 // Note that this proxy class uses the network thread as the "worker" thread.
73 BEGIN_OWNED_PROXY_MAP(OrtcFactory) 73 BEGIN_OWNED_PROXY_MAP(OrtcFactory)
74 PROXY_SIGNALING_THREAD_DESTRUCTOR() 74 PROXY_SIGNALING_THREAD_DESTRUCTOR()
75 PROXY_METHOD0(RTCErrorOr<std::unique_ptr<RtpTransportControllerInterface>>, 75 PROXY_METHOD0(RTCErrorOr<std::unique_ptr<RtpTransportControllerInterface>>,
76 CreateRtpTransportController) 76 CreateRtpTransportController)
77 PROXY_METHOD4(RTCErrorOr<std::unique_ptr<RtpTransportInterface>>, 77 PROXY_METHOD4(RTCErrorOr<std::unique_ptr<RtpTransportInterface>>,
78 CreateRtpTransport, 78 CreateRtpTransport,
79 const RtcpParameters&, 79 const RtpTransportParameters&,
80 PacketTransportInterface*, 80 PacketTransportInterface*,
81 PacketTransportInterface*, 81 PacketTransportInterface*,
82 RtpTransportControllerInterface*) 82 RtpTransportControllerInterface*)
83 83
84 PROXY_METHOD4(RTCErrorOr<std::unique_ptr<SrtpTransportInterface>>, 84 PROXY_METHOD4(RTCErrorOr<std::unique_ptr<SrtpTransportInterface>>,
85 CreateSrtpTransport, 85 CreateSrtpTransport,
86 const RtcpParameters&, 86 const RtpTransportParameters&,
87 PacketTransportInterface*, 87 PacketTransportInterface*,
88 PacketTransportInterface*, 88 PacketTransportInterface*,
89 RtpTransportControllerInterface*) 89 RtpTransportControllerInterface*)
90 90
91 PROXY_CONSTMETHOD1(RtpCapabilities, 91 PROXY_CONSTMETHOD1(RtpCapabilities,
92 GetRtpSenderCapabilities, 92 GetRtpSenderCapabilities,
93 cricket::MediaType) 93 cricket::MediaType)
94 PROXY_METHOD2(RTCErrorOr<std::unique_ptr<OrtcRtpSenderInterface>>, 94 PROXY_METHOD2(RTCErrorOr<std::unique_ptr<OrtcRtpSenderInterface>>,
95 CreateRtpSender, 95 CreateRtpSender,
96 rtc::scoped_refptr<MediaStreamTrackInterface>, 96 rtc::scoped_refptr<MediaStreamTrackInterface>,
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 211
212 OrtcFactory::~OrtcFactory() { 212 OrtcFactory::~OrtcFactory() {
213 RTC_DCHECK_RUN_ON(signaling_thread_); 213 RTC_DCHECK_RUN_ON(signaling_thread_);
214 if (wraps_signaling_thread_) { 214 if (wraps_signaling_thread_) {
215 rtc::ThreadManager::Instance()->UnwrapCurrentThread(); 215 rtc::ThreadManager::Instance()->UnwrapCurrentThread();
216 } 216 }
217 } 217 }
218 218
219 RTCErrorOr<std::unique_ptr<RtpTransportControllerInterface>> 219 RTCErrorOr<std::unique_ptr<RtpTransportControllerInterface>>
220 OrtcFactory::CreateRtpTransportController() { 220 OrtcFactory::CreateRtpTransportController() {
221 return CreateRtpTransportController(RtpTransportParameters());
222 }
223
224 RTCErrorOr<std::unique_ptr<RtpTransportControllerInterface>>
225 OrtcFactory::CreateRtpTransportController(
226 const RtpTransportParameters& parameters) {
221 RTC_DCHECK_RUN_ON(signaling_thread_); 227 RTC_DCHECK_RUN_ON(signaling_thread_);
222 return RtpTransportControllerAdapter::CreateProxied( 228 return RtpTransportControllerAdapter::CreateProxied(
223 cricket::MediaConfig(), channel_manager_.get(), null_event_log_.get(), 229 cricket::MediaConfig(), parameters, channel_manager_.get(),
224 signaling_thread_, worker_thread_.get()); 230 null_event_log_.get(), signaling_thread_, worker_thread_.get());
225 } 231 }
226 232
227 RTCErrorOr<std::unique_ptr<RtpTransportInterface>> 233 RTCErrorOr<std::unique_ptr<RtpTransportInterface>>
228 OrtcFactory::CreateRtpTransport( 234 OrtcFactory::CreateRtpTransport(
229 const RtcpParameters& rtcp_parameters, 235 const RtpTransportParameters& parameters,
230 PacketTransportInterface* rtp, 236 PacketTransportInterface* rtp,
231 PacketTransportInterface* rtcp, 237 PacketTransportInterface* rtcp,
232 RtpTransportControllerInterface* transport_controller) { 238 RtpTransportControllerInterface* transport_controller) {
233 RTC_DCHECK_RUN_ON(signaling_thread_); 239 RTC_DCHECK_RUN_ON(signaling_thread_);
234 RtcpParameters copied_parameters = rtcp_parameters; 240 RtpTransportParameters copied_parameters = parameters;
235 if (copied_parameters.cname.empty()) { 241 if (copied_parameters.rtcp.cname.empty()) {
236 copied_parameters.cname = default_cname_; 242 copied_parameters.rtcp.cname = default_cname_;
237 } 243 }
238 if (transport_controller) { 244 if (transport_controller) {
239 return transport_controller->GetInternal()->CreateProxiedRtpTransport( 245 return transport_controller->GetInternal()->CreateProxiedRtpTransport(
240 copied_parameters, rtp, rtcp); 246 copied_parameters, rtp, rtcp);
241 } else { 247 } else {
242 // If |transport_controller| is null, create one automatically, which the 248 // If |transport_controller| is null, create one automatically, which the
243 // returned RtpTransport will own. 249 // returned RtpTransport will own.
244 auto controller_result = CreateRtpTransportController(); 250 auto controller_result = CreateRtpTransportController();
245 if (!controller_result.ok()) { 251 if (!controller_result.ok()) {
246 return controller_result.MoveError(); 252 return controller_result.MoveError();
247 } 253 }
248 auto controller = controller_result.MoveValue(); 254 auto controller = controller_result.MoveValue();
249 auto transport_result = 255 auto transport_result =
250 controller->GetInternal()->CreateProxiedRtpTransport(copied_parameters, 256 controller->GetInternal()->CreateProxiedRtpTransport(copied_parameters,
251 rtp, rtcp); 257 rtp, rtcp);
252 // If RtpTransport was successfully created, transfer ownership of 258 // If RtpTransport was successfully created, transfer ownership of
253 // |rtp_transport_controller|. Otherwise it will go out of scope and be 259 // |rtp_transport_controller|. Otherwise it will go out of scope and be
254 // deleted automatically. 260 // deleted automatically.
255 if (transport_result.ok()) { 261 if (transport_result.ok()) {
256 transport_result.value() 262 transport_result.value()
257 ->GetInternal() 263 ->GetInternal()
258 ->TakeOwnershipOfRtpTransportController(std::move(controller)); 264 ->TakeOwnershipOfRtpTransportController(std::move(controller));
259 } 265 }
260 return transport_result; 266 return transport_result;
261 } 267 }
262 } 268 }
263 269
264 RTCErrorOr<std::unique_ptr<SrtpTransportInterface>> 270 RTCErrorOr<std::unique_ptr<SrtpTransportInterface>>
265 OrtcFactory::CreateSrtpTransport( 271 OrtcFactory::CreateSrtpTransport(
266 const RtcpParameters& rtcp_parameters, 272 const RtpTransportParameters& parameters,
267 PacketTransportInterface* rtp, 273 PacketTransportInterface* rtp,
268 PacketTransportInterface* rtcp, 274 PacketTransportInterface* rtcp,
269 RtpTransportControllerInterface* transport_controller) { 275 RtpTransportControllerInterface* transport_controller) {
270 RTC_DCHECK_RUN_ON(signaling_thread_); 276 RTC_DCHECK_RUN_ON(signaling_thread_);
271 RtcpParameters copied_parameters = rtcp_parameters; 277 RtpTransportParameters copied_parameters = parameters;
272 if (copied_parameters.cname.empty()) { 278 if (copied_parameters.rtcp.cname.empty()) {
273 copied_parameters.cname = default_cname_; 279 copied_parameters.rtcp.cname = default_cname_;
274 } 280 }
275 if (transport_controller) { 281 if (transport_controller) {
276 return transport_controller->GetInternal()->CreateProxiedSrtpTransport( 282 return transport_controller->GetInternal()->CreateProxiedSrtpTransport(
277 copied_parameters, rtp, rtcp); 283 copied_parameters, rtp, rtcp);
278 } else { 284 } else {
279 // If |transport_controller| is null, create one automatically, which the 285 // If |transport_controller| is null, create one automatically, which the
280 // returned SrtpTransport will own. 286 // returned SrtpTransport will own.
281 auto controller_result = CreateRtpTransportController(); 287 auto controller_result = CreateRtpTransportController();
282 if (!controller_result.ok()) { 288 if (!controller_result.ok()) {
283 return controller_result.MoveError(); 289 return controller_result.MoveError();
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 // 550 //
545 // Note that |adm_| may be null, in which case the platform-specific default 551 // Note that |adm_| may be null, in which case the platform-specific default
546 // AudioDeviceModule will be used. 552 // AudioDeviceModule will be used.
547 return std::unique_ptr<cricket::MediaEngineInterface>( 553 return std::unique_ptr<cricket::MediaEngineInterface>(
548 cricket::WebRtcMediaEngineFactory::Create( 554 cricket::WebRtcMediaEngineFactory::Create(
549 adm_, audio_encoder_factory_, audio_decoder_factory_, nullptr, 555 adm_, audio_encoder_factory_, audio_decoder_factory_, nullptr,
550 nullptr, nullptr, webrtc::AudioProcessing::Create())); 556 nullptr, nullptr, webrtc::AudioProcessing::Create()));
551 } 557 }
552 558
553 } // namespace webrtc 559 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698