| 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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 RemoteMediaStreamTrackAdapter<WebRtcMediaStreamTrackType>>; | 93 RemoteMediaStreamTrackAdapter<WebRtcMediaStreamTrackType>>; |
| 94 | 94 |
| 95 virtual ~RemoteMediaStreamTrackAdapter() { | 95 virtual ~RemoteMediaStreamTrackAdapter() { |
| 96 DCHECK(main_thread_->BelongsToCurrentThread()); | 96 DCHECK(main_thread_->BelongsToCurrentThread()); |
| 97 } | 97 } |
| 98 | 98 |
| 99 void InitializeWebkitTrack(blink::WebMediaStreamSource::Type type) { | 99 void InitializeWebkitTrack(blink::WebMediaStreamSource::Type type) { |
| 100 DCHECK(main_thread_->BelongsToCurrentThread()); | 100 DCHECK(main_thread_->BelongsToCurrentThread()); |
| 101 DCHECK(webkit_track_.isNull()); | 101 DCHECK(webkit_track_.isNull()); |
| 102 | 102 |
| 103 blink::WebString webkit_track_id(base::UTF8ToUTF16(id_)); | 103 blink::WebString webkit_track_id(blink::WebString::fromUTF8(id_)); |
| 104 blink::WebMediaStreamSource webkit_source; | 104 blink::WebMediaStreamSource webkit_source; |
| 105 webkit_source.initialize(webkit_track_id, type, webkit_track_id, | 105 webkit_source.initialize(webkit_track_id, type, webkit_track_id, |
| 106 true /* remote */); | 106 true /* remote */); |
| 107 webkit_track_.initialize(webkit_track_id, webkit_source); | 107 webkit_track_.initialize(webkit_track_id, webkit_source); |
| 108 DCHECK(!webkit_track_.isNull()); | 108 DCHECK(!webkit_track_.isNull()); |
| 109 } | 109 } |
| 110 | 110 |
| 111 const scoped_refptr<base::SingleThreadTaskRunner> main_thread_; | 111 const scoped_refptr<base::SingleThreadTaskRunner> main_thread_; |
| 112 // This callback will be run when Initialize() is called and then freed. | 112 // This callback will be run when Initialize() is called and then freed. |
| 113 // The callback is used by derived classes to bind objects that need to be | 113 // The callback is used by derived classes to bind objects that need to be |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 webkit_audio_tracks[i] = *audio_track_observers_[i]->webkit_track(); | 362 webkit_audio_tracks[i] = *audio_track_observers_[i]->webkit_track(); |
| 363 } | 363 } |
| 364 | 364 |
| 365 blink::WebVector<blink::WebMediaStreamTrack> webkit_video_tracks( | 365 blink::WebVector<blink::WebMediaStreamTrack> webkit_video_tracks( |
| 366 video_track_observers_.size()); | 366 video_track_observers_.size()); |
| 367 for (size_t i = 0; i < video_track_observers_.size(); ++i) { | 367 for (size_t i = 0; i < video_track_observers_.size(); ++i) { |
| 368 video_track_observers_[i]->Initialize(); | 368 video_track_observers_[i]->Initialize(); |
| 369 webkit_video_tracks[i] = *video_track_observers_[i]->webkit_track(); | 369 webkit_video_tracks[i] = *video_track_observers_[i]->webkit_track(); |
| 370 } | 370 } |
| 371 | 371 |
| 372 webkit_stream_.initialize(base::UTF8ToUTF16(label), | 372 webkit_stream_.initialize(blink::WebString::fromUTF8(label), |
| 373 webkit_audio_tracks, webkit_video_tracks); | 373 webkit_audio_tracks, webkit_video_tracks); |
| 374 webkit_stream_.setExtraData(new MediaStream()); | 374 webkit_stream_.setExtraData(new MediaStream()); |
| 375 } | 375 } |
| 376 | 376 |
| 377 void RemoteMediaStreamImpl::OnChanged( | 377 void RemoteMediaStreamImpl::OnChanged( |
| 378 std::unique_ptr<RemoteAudioTrackAdapters> audio_tracks, | 378 std::unique_ptr<RemoteAudioTrackAdapters> audio_tracks, |
| 379 std::unique_ptr<RemoteVideoTrackAdapters> video_tracks) { | 379 std::unique_ptr<RemoteVideoTrackAdapters> video_tracks) { |
| 380 // Find removed tracks. | 380 // Find removed tracks. |
| 381 auto audio_it = audio_track_observers_.begin(); | 381 auto audio_it = audio_track_observers_.begin(); |
| 382 while (audio_it != audio_track_observers_.end()) { | 382 while (audio_it != audio_track_observers_.end()) { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 // Unregister all the audio track observers that were not used. | 423 // Unregister all the audio track observers that were not used. |
| 424 // 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 |
| 425 // from within the dtor due to a race. | 425 // from within the dtor due to a race. |
| 426 for (auto& track : *audio_tracks.get()) { | 426 for (auto& track : *audio_tracks.get()) { |
| 427 if (track.get()) | 427 if (track.get()) |
| 428 track->Unregister(); | 428 track->Unregister(); |
| 429 } | 429 } |
| 430 } | 430 } |
| 431 | 431 |
| 432 } // namespace content | 432 } // namespace content |
| OLD | NEW |