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

Side by Side Diff: webrtc/api/peerconnection.cc

Issue 1759473003: Removed VideoSource dependency to ChannelManager. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 9 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
« no previous file with comments | « no previous file | webrtc/api/peerconnectionfactory.cc » ('j') | webrtc/api/videosource.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 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 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 } 375 }
376 376
377 } // namespace 377 } // namespace
378 378
379 namespace webrtc { 379 namespace webrtc {
380 380
381 // Factory class for creating remote MediaStreams and MediaStreamTracks. 381 // Factory class for creating remote MediaStreams and MediaStreamTracks.
382 class RemoteMediaStreamFactory { 382 class RemoteMediaStreamFactory {
383 public: 383 public:
384 explicit RemoteMediaStreamFactory(rtc::Thread* signaling_thread, 384 explicit RemoteMediaStreamFactory(rtc::Thread* signaling_thread,
385 cricket::ChannelManager* channel_manager) 385 rtc::Thread* worker_thread)
386 : signaling_thread_(signaling_thread), 386 : signaling_thread_(signaling_thread),
387 channel_manager_(channel_manager) {} 387 worker_thread_(worker_thread) {}
388 388
389 rtc::scoped_refptr<MediaStreamInterface> CreateMediaStream( 389 rtc::scoped_refptr<MediaStreamInterface> CreateMediaStream(
390 const std::string& stream_label) { 390 const std::string& stream_label) {
391 return MediaStreamProxy::Create(signaling_thread_, 391 return MediaStreamProxy::Create(signaling_thread_,
392 MediaStream::Create(stream_label)); 392 MediaStream::Create(stream_label));
393 } 393 }
394 394
395 AudioTrackInterface* AddAudioTrack(uint32_t ssrc, 395 AudioTrackInterface* AddAudioTrack(uint32_t ssrc,
396 AudioProviderInterface* provider, 396 AudioProviderInterface* provider,
397 webrtc::MediaStreamInterface* stream, 397 webrtc::MediaStreamInterface* stream,
398 const std::string& track_id) { 398 const std::string& track_id) {
399 return AddTrack<AudioTrackInterface, AudioTrack, AudioTrackProxy>( 399 return AddTrack<AudioTrackInterface, AudioTrack, AudioTrackProxy>(
400 stream, track_id, RemoteAudioSource::Create(ssrc, provider)); 400 stream, track_id, RemoteAudioSource::Create(ssrc, provider));
401 } 401 }
402 402
403 VideoTrackInterface* AddVideoTrack(webrtc::MediaStreamInterface* stream, 403 VideoTrackInterface* AddVideoTrack(webrtc::MediaStreamInterface* stream,
404 const std::string& track_id) { 404 const std::string& track_id) {
405 return AddTrack<VideoTrackInterface, VideoTrack, VideoTrackProxy>( 405 return AddTrack<VideoTrackInterface, VideoTrack, VideoTrackProxy>(
406 stream, track_id, 406 stream, track_id,
407 VideoSource::Create(channel_manager_, new RemoteVideoCapturer(), 407 VideoSource::Create(worker_thread_, new RemoteVideoCapturer(),
408 nullptr, true) 408 nullptr, true)
409 .get()); 409 .get());
410 } 410 }
411 411
412 private: 412 private:
413 template <typename TI, typename T, typename TP, typename S> 413 template <typename TI, typename T, typename TP, typename S>
414 TI* AddTrack(MediaStreamInterface* stream, 414 TI* AddTrack(MediaStreamInterface* stream,
415 const std::string& track_id, 415 const std::string& track_id,
416 const S& source) { 416 const S& source) {
417 rtc::scoped_refptr<TI> track( 417 rtc::scoped_refptr<TI> track(
418 TP::Create(signaling_thread_, T::Create(track_id, source))); 418 TP::Create(signaling_thread_, T::Create(track_id, source)));
419 track->set_state(webrtc::MediaStreamTrackInterface::kLive); 419 track->set_state(webrtc::MediaStreamTrackInterface::kLive);
420 if (stream->AddTrack(track)) { 420 if (stream->AddTrack(track)) {
421 return track; 421 return track;
422 } 422 }
423 return nullptr; 423 return nullptr;
424 } 424 }
425 425
426 rtc::Thread* signaling_thread_; 426 rtc::Thread* signaling_thread_;
427 cricket::ChannelManager* channel_manager_; 427 rtc::Thread* worker_thread_;
428 }; 428 };
429 429
430 bool ConvertRtcOptionsForOffer( 430 bool ConvertRtcOptionsForOffer(
431 const PeerConnectionInterface::RTCOfferAnswerOptions& rtc_options, 431 const PeerConnectionInterface::RTCOfferAnswerOptions& rtc_options,
432 cricket::MediaSessionOptions* session_options) { 432 cricket::MediaSessionOptions* session_options) {
433 typedef PeerConnectionInterface::RTCOfferAnswerOptions RTCOfferAnswerOptions; 433 typedef PeerConnectionInterface::RTCOfferAnswerOptions RTCOfferAnswerOptions;
434 if (!IsValidOfferToReceiveMedia(rtc_options.offer_to_receive_audio) || 434 if (!IsValidOfferToReceiveMedia(rtc_options.offer_to_receive_audio) ||
435 !IsValidOfferToReceiveMedia(rtc_options.offer_to_receive_video)) { 435 !IsValidOfferToReceiveMedia(rtc_options.offer_to_receive_video)) {
436 return false; 436 return false;
437 } 437 }
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 &media_config.video.enable_cpu_overuse_detection, NULL); 626 &media_config.video.enable_cpu_overuse_detection, NULL);
627 627
628 // Find Suspend Below Min Bitrate constraint. 628 // Find Suspend Below Min Bitrate constraint.
629 FindConstraint(constraints, 629 FindConstraint(constraints,
630 MediaConstraintsInterface::kEnableVideoSuspendBelowMinBitrate, 630 MediaConstraintsInterface::kEnableVideoSuspendBelowMinBitrate,
631 &media_config.video.suspend_below_min_bitrate, NULL); 631 &media_config.video.suspend_below_min_bitrate, NULL);
632 632
633 media_controller_.reset(factory_->CreateMediaController(media_config)); 633 media_controller_.reset(factory_->CreateMediaController(media_config));
634 634
635 remote_stream_factory_.reset(new RemoteMediaStreamFactory( 635 remote_stream_factory_.reset(new RemoteMediaStreamFactory(
636 factory_->signaling_thread(), media_controller_->channel_manager())); 636 factory_->signaling_thread(), factory_->worker_thread()));
637 637
638 session_.reset( 638 session_.reset(
639 new WebRtcSession(media_controller_.get(), factory_->signaling_thread(), 639 new WebRtcSession(media_controller_.get(), factory_->signaling_thread(),
640 factory_->worker_thread(), port_allocator_.get())); 640 factory_->worker_thread(), port_allocator_.get()));
641 stats_.reset(new StatsCollector(this)); 641 stats_.reset(new StatsCollector(this));
642 642
643 // Initialize the WebRtcSession. It creates transport channels etc. 643 // Initialize the WebRtcSession. It creates transport channels etc.
644 if (!session_->Initialize(factory_->options(), constraints, 644 if (!session_->Initialize(factory_->options(), constraints,
645 std::move(dtls_identity_store), configuration)) { 645 std::move(dtls_identity_store), configuration)) {
646 return false; 646 return false;
(...skipping 1451 matching lines...) Expand 10 before | Expand all | Expand 10 after
2098 DataChannel* PeerConnection::FindDataChannelBySid(int sid) const { 2098 DataChannel* PeerConnection::FindDataChannelBySid(int sid) const {
2099 for (const auto& channel : sctp_data_channels_) { 2099 for (const auto& channel : sctp_data_channels_) {
2100 if (channel->id() == sid) { 2100 if (channel->id() == sid) {
2101 return channel; 2101 return channel;
2102 } 2102 }
2103 } 2103 }
2104 return nullptr; 2104 return nullptr;
2105 } 2105 }
2106 2106
2107 } // namespace webrtc 2107 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | webrtc/api/peerconnectionfactory.cc » ('j') | webrtc/api/videosource.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698