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> |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 } | 153 } |
154 | 154 |
155 private: | 155 private: |
156 void InitializeWebkitVideoTrack(std::unique_ptr<TrackObserver> observer, | 156 void InitializeWebkitVideoTrack(std::unique_ptr<TrackObserver> observer, |
157 bool enabled) { | 157 bool enabled) { |
158 DCHECK(main_thread_->BelongsToCurrentThread()); | 158 DCHECK(main_thread_->BelongsToCurrentThread()); |
159 std::unique_ptr<MediaStreamRemoteVideoSource> video_source( | 159 std::unique_ptr<MediaStreamRemoteVideoSource> video_source( |
160 new MediaStreamRemoteVideoSource(std::move(observer))); | 160 new MediaStreamRemoteVideoSource(std::move(observer))); |
161 InitializeWebkitTrack(blink::WebMediaStreamSource::TypeVideo); | 161 InitializeWebkitTrack(blink::WebMediaStreamSource::TypeVideo); |
162 webkit_track()->source().setExtraData(video_source.get()); | 162 webkit_track()->source().setExtraData(video_source.get()); |
163 // Initial constraints must be provided to a MediaStreamVideoTrack. But | 163 MediaStreamVideoTrack* media_stream_track = new MediaStreamVideoTrack( |
164 // no constraints are available initially on a remote video track. | 164 video_source.release(), MediaStreamVideoSource::ConstraintsCallback(), |
165 blink::WebMediaConstraints constraints; | 165 enabled); |
166 constraints.initialize(); | |
167 MediaStreamVideoTrack* media_stream_track = | |
168 new MediaStreamVideoTrack(video_source.release(), constraints, | |
169 MediaStreamVideoSource::ConstraintsCallback(), enabled); | |
170 webkit_track()->setTrackData(media_stream_track); | 166 webkit_track()->setTrackData(media_stream_track); |
171 } | 167 } |
172 }; | 168 }; |
173 | 169 |
174 // RemoteAudioTrackAdapter is responsible for listening on state | 170 // RemoteAudioTrackAdapter is responsible for listening on state |
175 // change notifications on a remote webrtc audio MediaStreamTracks and notify | 171 // change notifications on a remote webrtc audio MediaStreamTracks and notify |
176 // WebKit. | 172 // WebKit. |
177 class RemoteAudioTrackAdapter | 173 class RemoteAudioTrackAdapter |
178 : public RemoteMediaStreamTrackAdapter<webrtc::AudioTrackInterface>, | 174 : public RemoteMediaStreamTrackAdapter<webrtc::AudioTrackInterface>, |
179 public webrtc::ObserverInterface { | 175 public webrtc::ObserverInterface { |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 // Unregister all the audio track observers that were not used. | 419 // Unregister all the audio track observers that were not used. |
424 // We need to do this before destruction since the observers can't unregister | 420 // We need to do this before destruction since the observers can't unregister |
425 // from within the dtor due to a race. | 421 // from within the dtor due to a race. |
426 for (auto& track : *audio_tracks.get()) { | 422 for (auto& track : *audio_tracks.get()) { |
427 if (track.get()) | 423 if (track.get()) |
428 track->Unregister(); | 424 track->Unregister(); |
429 } | 425 } |
430 } | 426 } |
431 | 427 |
432 } // namespace content | 428 } // namespace content |
OLD | NEW |