| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/media/remote_media_stream_impl.h" | 5 #include "content/renderer/media/remote_media_stream_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/bind.h" | 12 #include "base/bind.h" |
| 13 #include "base/location.h" | 13 #include "base/location.h" |
| 14 #include "base/logging.h" | 14 #include "base/logging.h" |
| 15 #include "base/macros.h" | 15 #include "base/macros.h" |
| 16 #include "base/strings/utf_string_conversions.h" | 16 #include "base/strings/utf_string_conversions.h" |
| 17 #include "base/thread_task_runner_handle.h" | 17 #include "base/thread_task_runner_handle.h" |
| 18 #include "content/renderer/media/media_stream.h" | 18 #include "content/renderer/media/media_stream.h" |
| 19 #include "content/renderer/media/media_stream_track.h" | 19 #include "content/renderer/media/media_stream_track.h" |
| 20 #include "content/renderer/media/media_stream_video_track.h" | 20 #include "content/renderer/media/media_stream_video_track.h" |
| 21 #include "content/renderer/media/webrtc/media_stream_remote_audio_track.h" | |
| 22 #include "content/renderer/media/webrtc/media_stream_remote_video_source.h" | 21 #include "content/renderer/media/webrtc/media_stream_remote_video_source.h" |
| 23 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" | 22 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" |
| 23 #include "content/renderer/media/webrtc/peer_connection_remote_audio_source.h" |
| 24 #include "content/renderer/media/webrtc/track_observer.h" | 24 #include "content/renderer/media/webrtc/track_observer.h" |
| 25 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | 25 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" |
| 26 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" | 26 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
| 27 #include "third_party/WebKit/public/platform/WebString.h" | 27 #include "third_party/WebKit/public/platform/WebString.h" |
| 28 | 28 |
| 29 namespace content { | 29 namespace content { |
| 30 namespace { | 30 namespace { |
| 31 | 31 |
| 32 template <typename WebRtcTrackVector, typename AdapterType> | 32 template <typename WebRtcTrackVector, typename AdapterType> |
| 33 void CreateAdaptersForTracks( | 33 void CreateAdaptersForTracks( |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 #if DCHECK_IS_ON() | 232 #if DCHECK_IS_ON() |
| 233 DCHECK(!unregistered_); | 233 DCHECK(!unregistered_); |
| 234 unregistered_ = true; | 234 unregistered_ = true; |
| 235 #endif | 235 #endif |
| 236 observed_track()->UnregisterObserver(this); | 236 observed_track()->UnregisterObserver(this); |
| 237 } | 237 } |
| 238 | 238 |
| 239 void RemoteAudioTrackAdapter::InitializeWebkitAudioTrack() { | 239 void RemoteAudioTrackAdapter::InitializeWebkitAudioTrack() { |
| 240 InitializeWebkitTrack(blink::WebMediaStreamSource::TypeAudio); | 240 InitializeWebkitTrack(blink::WebMediaStreamSource::TypeAudio); |
| 241 | 241 |
| 242 webkit_track()->source().setExtraData( | 242 MediaStreamAudioSource* const source = |
| 243 new MediaStreamRemoteAudioSource(observed_track().get())); | 243 new PeerConnectionRemoteAudioSource(observed_track().get()); |
| 244 webkit_track()->setExtraData( | 244 webkit_track()->source().setExtraData(source); // Takes ownership. |
| 245 new MediaStreamRemoteAudioTrack( | 245 source->ConnectToTrack(*(webkit_track())); |
| 246 webkit_track()->source(), webkit_track()->isEnabled())); | |
| 247 } | 246 } |
| 248 | 247 |
| 249 void RemoteAudioTrackAdapter::OnChanged() { | 248 void RemoteAudioTrackAdapter::OnChanged() { |
| 250 main_thread_->PostTask(FROM_HERE, | 249 main_thread_->PostTask(FROM_HERE, |
| 251 base::Bind(&RemoteAudioTrackAdapter::OnChangedOnMainThread, | 250 base::Bind(&RemoteAudioTrackAdapter::OnChangedOnMainThread, |
| 252 this, observed_track()->state())); | 251 this, observed_track()->state())); |
| 253 } | 252 } |
| 254 | 253 |
| 255 void RemoteAudioTrackAdapter::OnChangedOnMainThread( | 254 void RemoteAudioTrackAdapter::OnChangedOnMainThread( |
| 256 webrtc::MediaStreamTrackInterface::TrackState state) { | 255 webrtc::MediaStreamTrackInterface::TrackState state) { |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 // Unregister all the audio track observers that were not used. | 423 // Unregister all the audio track observers that were not used. |
| 425 // We need to do this before destruction since the observers can't unregister | 424 // We need to do this before destruction since the observers can't unregister |
| 426 // from within the dtor due to a race. | 425 // from within the dtor due to a race. |
| 427 for (auto& track : *audio_tracks.get()) { | 426 for (auto& track : *audio_tracks.get()) { |
| 428 if (track.get()) | 427 if (track.get()) |
| 429 track->Unregister(); | 428 track->Unregister(); |
| 430 } | 429 } |
| 431 } | 430 } |
| 432 | 431 |
| 433 } // namespace content | 432 } // namespace content |
| OLD | NEW |