Index: content/public/renderer/media_stream_utils.cc |
diff --git a/content/public/renderer/media_stream_utils.cc b/content/public/renderer/media_stream_utils.cc |
index d05b08f5c86fe5281f613565d16aac927f6e71ae..07f25cabd1533d38edd30910ab0ef8a9187ba7bd 100644 |
--- a/content/public/renderer/media_stream_utils.cc |
+++ b/content/public/renderer/media_stream_utils.cc |
@@ -11,10 +11,11 @@ |
#include "base/guid.h" |
#include "base/rand_util.h" |
#include "base/strings/utf_string_conversions.h" |
-#include "content/renderer/media/external_media_stream_audio_source.h" |
+#include "content/renderer/media/media_stream_audio_source.h" |
#include "content/renderer/media/media_stream_video_capturer_source.h" |
#include "content/renderer/media/media_stream_video_source.h" |
#include "content/renderer/media/media_stream_video_track.h" |
+#include "content/renderer/render_thread_impl.h" |
#include "media/base/audio_capturer_source.h" |
#include "media/base/video_capturer_source.h" |
#include "third_party/WebKit/public/platform/WebMediaStream.h" |
@@ -82,17 +83,32 @@ |
web_media_stream_source.initialize(track_id, |
blink::WebMediaStreamSource::TypeAudio, |
track_id, is_remote); |
- MediaStreamAudioSource* const media_stream_source = |
- new ExternalMediaStreamAudioSource(std::move(audio_source), sample_rate, |
- channel_layout, frames_per_buffer, |
- is_remote); |
- // Takes ownership of |media_stream_source|. |
- web_media_stream_source.setExtraData(media_stream_source); |
+ |
+ MediaStreamAudioSource* media_stream_source(new MediaStreamAudioSource( |
+ -1, StreamDeviceInfo(), MediaStreamSource::SourceStoppedCallback(), |
+ RenderThreadImpl::current()->GetPeerConnectionDependencyFactory())); |
+ |
+ blink::WebMediaConstraints constraints; |
+ constraints.initialize(); |
+ { |
+ // TODO(miu): In an upcoming change, a source purposed for passing audio |
+ // directly (i.e., without modification) will replace this "hacky" use of |
+ // WebRtcAudioCapturer. http://crbug.com/577881 |
+ std::unique_ptr<WebRtcAudioCapturer> capturer( |
+ WebRtcAudioCapturer::CreateCapturer(-1, StreamDeviceInfo(), constraints, |
+ nullptr, media_stream_source)); |
+ capturer->SetCapturerSource(std::move(audio_source), params); |
+ media_stream_source->SetAudioCapturer(std::move(capturer)); |
+ } |
+ web_media_stream_source.setExtraData( |
+ media_stream_source); // Takes ownership. |
blink::WebMediaStreamTrack web_media_stream_track; |
web_media_stream_track.initialize(web_media_stream_source); |
- if (!media_stream_source->ConnectToTrack(web_media_stream_track)) |
- return false; |
+ RenderThreadImpl::current() |
+ ->GetPeerConnectionDependencyFactory() |
+ ->CreateLocalAudioTrack(web_media_stream_track); |
+ |
web_media_stream->addTrack(web_media_stream_track); |
return true; |
} |