| 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/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| 11 #include "base/strings/stringprintf.h" | 11 #include "base/strings/stringprintf.h" |
| 12 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
| 13 #include "content/renderer/media/media_stream.h" | 13 #include "content/renderer/media/media_stream.h" |
| 14 #include "content/renderer/media/media_stream_audio_renderer.h" | 14 #include "content/renderer/media/media_stream_audio_renderer.h" |
| 15 #include "content/renderer/media/media_stream_audio_source.h" | 15 #include "content/renderer/media/media_stream_audio_source.h" |
| 16 #include "content/renderer/media/media_stream_dependency_factory.h" | |
| 17 #include "content/renderer/media/media_stream_dispatcher.h" | 16 #include "content/renderer/media/media_stream_dispatcher.h" |
| 18 #include "content/renderer/media/media_stream_video_capturer_source.h" | 17 #include "content/renderer/media/media_stream_video_capturer_source.h" |
| 19 #include "content/renderer/media/media_stream_video_track.h" | 18 #include "content/renderer/media/media_stream_video_track.h" |
| 20 #include "content/renderer/media/peer_connection_tracker.h" | 19 #include "content/renderer/media/peer_connection_tracker.h" |
| 21 #include "content/renderer/media/rtc_video_renderer.h" | 20 #include "content/renderer/media/rtc_video_renderer.h" |
| 21 #include "content/renderer/media/webrtc/webrtc_video_capturer_adapter.h" |
| 22 #include "content/renderer/media/webrtc_audio_capturer.h" | 22 #include "content/renderer/media/webrtc_audio_capturer.h" |
| 23 #include "content/renderer/media/webrtc_audio_renderer.h" | 23 #include "content/renderer/media/webrtc_audio_renderer.h" |
| 24 #include "content/renderer/media/webrtc_local_audio_renderer.h" | 24 #include "content/renderer/media/webrtc_local_audio_renderer.h" |
| 25 #include "content/renderer/media/webrtc_logging.h" | 25 #include "content/renderer/media/webrtc_logging.h" |
| 26 #include "content/renderer/media/webrtc_uma_histograms.h" | 26 #include "content/renderer/media/webrtc_uma_histograms.h" |
| 27 #include "content/renderer/render_thread_impl.h" | 27 #include "content/renderer/render_thread_impl.h" |
| 28 #include "media/base/audio_hardware_config.h" | 28 #include "media/base/audio_hardware_config.h" |
| 29 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" | 29 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
| 30 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" | 30 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
| 31 #include "third_party/WebKit/public/web/WebDocument.h" | 31 #include "third_party/WebKit/public/web/WebDocument.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 RenderThreadImpl::current()->GetAudioHardwareConfig(); | 64 RenderThreadImpl::current()->GetAudioHardwareConfig(); |
| 65 *output_sample_rate = hardware_config->GetOutputSampleRate(); | 65 *output_sample_rate = hardware_config->GetOutputSampleRate(); |
| 66 *output_buffer_size = hardware_config->GetOutputBufferSize(); | 66 *output_buffer_size = hardware_config->GetOutputBufferSize(); |
| 67 } | 67 } |
| 68 | 68 |
| 69 } // namespace | 69 } // namespace |
| 70 | 70 |
| 71 MediaStreamImpl::MediaStreamImpl( | 71 MediaStreamImpl::MediaStreamImpl( |
| 72 RenderView* render_view, | 72 RenderView* render_view, |
| 73 MediaStreamDispatcher* media_stream_dispatcher, | 73 MediaStreamDispatcher* media_stream_dispatcher, |
| 74 MediaStreamDependencyFactory* dependency_factory) | 74 PeerConnectionDependencyFactory* dependency_factory) |
| 75 : RenderViewObserver(render_view), | 75 : RenderViewObserver(render_view), |
| 76 dependency_factory_(dependency_factory), | 76 dependency_factory_(dependency_factory), |
| 77 media_stream_dispatcher_(media_stream_dispatcher) { | 77 media_stream_dispatcher_(media_stream_dispatcher) { |
| 78 } | 78 } |
| 79 | 79 |
| 80 MediaStreamImpl::~MediaStreamImpl() { | 80 MediaStreamImpl::~MediaStreamImpl() { |
| 81 } | 81 } |
| 82 | 82 |
| 83 void MediaStreamImpl::requestUserMedia( | 83 void MediaStreamImpl::requestUserMedia( |
| 84 const blink::WebUserMediaRequest& user_media_request) { | 84 const blink::WebUserMediaRequest& user_media_request) { |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 DCHECK_EQ(devices.size(), webkit_tracks->size()); | 457 DCHECK_EQ(devices.size(), webkit_tracks->size()); |
| 458 | 458 |
| 459 for (size_t i = 0; i < devices.size(); ++i) { | 459 for (size_t i = 0; i < devices.size(); ++i) { |
| 460 blink::WebMediaStreamSource webkit_source; | 460 blink::WebMediaStreamSource webkit_source; |
| 461 InitializeSourceObject(devices[i], | 461 InitializeSourceObject(devices[i], |
| 462 blink::WebMediaStreamSource::TypeVideo, | 462 blink::WebMediaStreamSource::TypeVideo, |
| 463 constraints, | 463 constraints, |
| 464 request->frame, | 464 request->frame, |
| 465 &webkit_source); | 465 &webkit_source); |
| 466 (*webkit_tracks)[i] = | 466 (*webkit_tracks)[i] = |
| 467 request->CreateAndStartVideoTrack(webkit_source, constraints, | 467 request->CreateAndStartVideoTrack(webkit_source, constraints); |
| 468 dependency_factory_); | |
| 469 } | 468 } |
| 470 } | 469 } |
| 471 | 470 |
| 472 void MediaStreamImpl::CreateAudioTracks( | 471 void MediaStreamImpl::CreateAudioTracks( |
| 473 const StreamDeviceInfoArray& devices, | 472 const StreamDeviceInfoArray& devices, |
| 474 const blink::WebMediaConstraints& constraints, | 473 const blink::WebMediaConstraints& constraints, |
| 475 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, | 474 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, |
| 476 UserMediaRequestInfo* request) { | 475 UserMediaRequestInfo* request) { |
| 477 DCHECK_EQ(devices.size(), webkit_tracks->size()); | 476 DCHECK_EQ(devices.size(), webkit_tracks->size()); |
| 478 | 477 |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 809 sources_waiting_for_callback_.push_back(native_source); | 808 sources_waiting_for_callback_.push_back(native_source); |
| 810 native_source->AddTrack( | 809 native_source->AddTrack( |
| 811 track, constraints, base::Bind( | 810 track, constraints, base::Bind( |
| 812 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted, | 811 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted, |
| 813 AsWeakPtr())); | 812 AsWeakPtr())); |
| 814 } | 813 } |
| 815 | 814 |
| 816 blink::WebMediaStreamTrack | 815 blink::WebMediaStreamTrack |
| 817 MediaStreamImpl::UserMediaRequestInfo::CreateAndStartVideoTrack( | 816 MediaStreamImpl::UserMediaRequestInfo::CreateAndStartVideoTrack( |
| 818 const blink::WebMediaStreamSource& source, | 817 const blink::WebMediaStreamSource& source, |
| 819 const blink::WebMediaConstraints& constraints, | 818 const blink::WebMediaConstraints& constraints) { |
| 820 MediaStreamDependencyFactory* factory) { | |
| 821 DCHECK(source.type() == blink::WebMediaStreamSource::TypeVideo); | 819 DCHECK(source.type() == blink::WebMediaStreamSource::TypeVideo); |
| 822 MediaStreamVideoSource* native_source = | 820 MediaStreamVideoSource* native_source = |
| 823 MediaStreamVideoSource::GetVideoSource(source); | 821 MediaStreamVideoSource::GetVideoSource(source); |
| 824 DCHECK(native_source); | 822 DCHECK(native_source); |
| 825 sources_.push_back(source); | 823 sources_.push_back(source); |
| 826 sources_waiting_for_callback_.push_back(native_source); | 824 sources_waiting_for_callback_.push_back(native_source); |
| 827 return MediaStreamVideoTrack::CreateVideoTrack( | 825 return MediaStreamVideoTrack::CreateVideoTrack( |
| 828 native_source, constraints, base::Bind( | 826 native_source, constraints, base::Bind( |
| 829 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted, | 827 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted, |
| 830 AsWeakPtr()), | 828 AsWeakPtr()), |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 879 sources_.begin(); | 877 sources_.begin(); |
| 880 it != sources_.end(); ++it) { | 878 it != sources_.end(); ++it) { |
| 881 if (source.id() == it->id()) { | 879 if (source.id() == it->id()) { |
| 882 sources_.erase(it); | 880 sources_.erase(it); |
| 883 return; | 881 return; |
| 884 } | 882 } |
| 885 } | 883 } |
| 886 } | 884 } |
| 887 | 885 |
| 888 } // namespace content | 886 } // namespace content |
| OLD | NEW |