OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/media_stream_impl.h" | 5 #include "content/renderer/media/media_stream_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 webkit_sources[i].setDeviceId(UTF8ToUTF16(devices[i].device.id.c_str())); | 94 webkit_sources[i].setDeviceId(UTF8ToUTF16(devices[i].device.id.c_str())); |
95 } | 95 } |
96 } | 96 } |
97 | 97 |
98 webrtc::MediaStreamInterface* GetNativeMediaStream( | 98 webrtc::MediaStreamInterface* GetNativeMediaStream( |
99 const WebKit::WebMediaStream& descriptor) { | 99 const WebKit::WebMediaStream& descriptor) { |
100 content::MediaStreamExtraData* extra_data = | 100 content::MediaStreamExtraData* extra_data = |
101 static_cast<content::MediaStreamExtraData*>(descriptor.extraData()); | 101 static_cast<content::MediaStreamExtraData*>(descriptor.extraData()); |
102 if (!extra_data) | 102 if (!extra_data) |
103 return NULL; | 103 return NULL; |
104 return extra_data->stream(); | 104 return extra_data->stream().get(); |
105 } | 105 } |
106 | 106 |
107 } // namespace | 107 } // namespace |
108 | 108 |
109 MediaStreamImpl::MediaStreamImpl( | 109 MediaStreamImpl::MediaStreamImpl( |
110 RenderView* render_view, | 110 RenderView* render_view, |
111 MediaStreamDispatcher* media_stream_dispatcher, | 111 MediaStreamDispatcher* media_stream_dispatcher, |
112 MediaStreamDependencyFactory* dependency_factory) | 112 MediaStreamDependencyFactory* dependency_factory) |
113 : RenderViewObserver(render_view), | 113 : RenderViewObserver(render_view), |
114 dependency_factory_(dependency_factory), | 114 dependency_factory_(dependency_factory), |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 return NULL; // This is not a valid stream. | 251 return NULL; // This is not a valid stream. |
252 | 252 |
253 DVLOG(1) << "MediaStreamImpl::GetAudioRenderer stream:" | 253 DVLOG(1) << "MediaStreamImpl::GetAudioRenderer stream:" |
254 << UTF16ToUTF8(descriptor.label()); | 254 << UTF16ToUTF8(descriptor.label()); |
255 | 255 |
256 MediaStreamExtraData* extra_data = | 256 MediaStreamExtraData* extra_data = |
257 static_cast<MediaStreamExtraData*>(descriptor.extraData()); | 257 static_cast<MediaStreamExtraData*>(descriptor.extraData()); |
258 | 258 |
259 if (extra_data->is_local()) { | 259 if (extra_data->is_local()) { |
260 // Create the local audio renderer if the stream contains audio tracks. | 260 // Create the local audio renderer if the stream contains audio tracks. |
261 return CreateLocalAudioRenderer(extra_data->stream()); | 261 return CreateLocalAudioRenderer(extra_data->stream().get()); |
262 } | 262 } |
263 | 263 |
264 webrtc::MediaStreamInterface* stream = extra_data->stream(); | 264 webrtc::MediaStreamInterface* stream = extra_data->stream().get(); |
265 if (!stream || stream->GetAudioTracks().empty()) | 265 if (!stream || stream->GetAudioTracks().empty()) |
266 return NULL; | 266 return NULL; |
267 | 267 |
268 // This is a remote media stream. | 268 // This is a remote media stream. |
269 WebRtcAudioDeviceImpl* audio_device = | 269 WebRtcAudioDeviceImpl* audio_device = |
270 dependency_factory_->GetWebRtcAudioDevice(); | 270 dependency_factory_->GetWebRtcAudioDevice(); |
271 | 271 |
272 // Share the existing renderer if any, otherwise create a new one. | 272 // Share the existing renderer if any, otherwise create a new one. |
273 scoped_refptr<WebRtcAudioRenderer> renderer(audio_device->renderer()); | 273 scoped_refptr<WebRtcAudioRenderer> renderer(audio_device->renderer()); |
274 if (!renderer) { | 274 if (!renderer.get()) { |
275 renderer = CreateRemoteAudioRenderer(extra_data->stream()); | 275 renderer = CreateRemoteAudioRenderer(extra_data->stream().get()); |
276 | 276 |
277 if (renderer && !audio_device->SetAudioRenderer(renderer)) | 277 if (renderer.get() && !audio_device->SetAudioRenderer(renderer.get())) |
278 renderer = NULL; | 278 renderer = NULL; |
279 } | 279 } |
280 return renderer; | 280 return renderer; |
281 } | 281 } |
282 | 282 |
283 // Callback from MediaStreamDispatcher. | 283 // Callback from MediaStreamDispatcher. |
284 // The requested stream have been generated by the MediaStreamDispatcher. | 284 // The requested stream have been generated by the MediaStreamDispatcher. |
285 void MediaStreamImpl::OnStreamGenerated( | 285 void MediaStreamImpl::OnStreamGenerated( |
286 int request_id, | 286 int request_id, |
287 const std::string& label, | 287 const std::string& label, |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 MediaStreamImpl::CreateLocalAudioRenderer( | 542 MediaStreamImpl::CreateLocalAudioRenderer( |
543 webrtc::MediaStreamInterface* stream) { | 543 webrtc::MediaStreamInterface* stream) { |
544 if (stream->GetAudioTracks().empty()) | 544 if (stream->GetAudioTracks().empty()) |
545 return NULL; | 545 return NULL; |
546 | 546 |
547 DVLOG(1) << "MediaStreamImpl::CreateLocalAudioRenderer label:" | 547 DVLOG(1) << "MediaStreamImpl::CreateLocalAudioRenderer label:" |
548 << stream->label(); | 548 << stream->label(); |
549 | 549 |
550 scoped_refptr<WebRtcAudioCapturer> source = | 550 scoped_refptr<WebRtcAudioCapturer> source = |
551 dependency_factory_->GetWebRtcAudioDevice()->capturer(); | 551 dependency_factory_->GetWebRtcAudioDevice()->capturer(); |
552 if (!source) { | 552 if (!source.get()) { |
553 return NULL; | 553 return NULL; |
554 } | 554 } |
555 | 555 |
556 webrtc::AudioTrackVector audio_tracks = stream->GetAudioTracks(); | 556 webrtc::AudioTrackVector audio_tracks = stream->GetAudioTracks(); |
557 DCHECK_EQ(audio_tracks.size(), 1u); | 557 DCHECK_EQ(audio_tracks.size(), 1u); |
558 webrtc::AudioTrackInterface* audio_track = audio_tracks[0]; | 558 webrtc::AudioTrackInterface* audio_track = audio_tracks[0]; |
559 DVLOG(1) << "audio_track.kind : " << audio_track->kind() | 559 DVLOG(1) << "audio_track.kind : " << audio_track->kind() |
560 << "audio_track.id : " << audio_track->id() | 560 << "audio_track.id : " << audio_track->id() |
561 << "audio_track.enabled: " << audio_track->enabled(); | 561 << "audio_track.enabled: " << audio_track->enabled(); |
562 | 562 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
625 } | 625 } |
626 | 626 |
627 for (size_t i = 0; i < video_sources.size(); ++i) { | 627 for (size_t i = 0; i < video_sources.size(); ++i) { |
628 video_sources[i].setReadyState( | 628 video_sources[i].setReadyState( |
629 WebKit::WebMediaStreamSource::ReadyStateEnded); | 629 WebKit::WebMediaStreamSource::ReadyStateEnded); |
630 video_sources[i].setExtraData(NULL); | 630 video_sources[i].setExtraData(NULL); |
631 } | 631 } |
632 } | 632 } |
633 | 633 |
634 } // namespace content | 634 } // namespace content |
OLD | NEW |