| Index: content/renderer/media/rtc_peer_connection_handler.cc
|
| diff --git a/content/renderer/media/rtc_peer_connection_handler.cc b/content/renderer/media/rtc_peer_connection_handler.cc
|
| index 08f71c064b371d3c20beba4ae47d339b8d7c67a9..6548faa66b774fd724dea55adbe64d0303b7ee7a 100644
|
| --- a/content/renderer/media/rtc_peer_connection_handler.cc
|
| +++ b/content/renderer/media/rtc_peer_connection_handler.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "content/renderer/media/media_stream_dependency_factory.h"
|
| +#include "content/renderer/media/media_stream_source_extra_data.h"
|
| #include "content/renderer/media/peer_connection_tracker.h"
|
| #include "content/renderer/media/remote_media_stream_impl.h"
|
| #include "content/renderer/media/rtc_data_channel_handler.h"
|
| @@ -549,13 +550,16 @@ bool RTCPeerConnectionHandler::addStream(
|
| this, stream, PeerConnectionTracker::SOURCE_LOCAL);
|
|
|
| // A media stream is connected to a peer connection, enable the
|
| - // peer connection mode for the capturer.
|
| - WebRtcAudioDeviceImpl* audio_device =
|
| - dependency_factory_->GetWebRtcAudioDevice();
|
| - if (audio_device) {
|
| - WebRtcAudioCapturer* capturer = audio_device->GetDefaultCapturer();
|
| - if (capturer)
|
| - capturer->EnablePeerConnectionMode();
|
| + // peer connection mode for the sources.
|
| + blink::WebVector<blink::WebMediaStreamTrack> audio_tracks;
|
| + stream.audioTracks(audio_tracks);
|
| + for (size_t i = 0; i < audio_tracks.size(); ++i) {
|
| + const blink::WebMediaStreamSource& source = audio_tracks[i].source();
|
| + MediaStreamSourceExtraData* extra_data =
|
| + static_cast<MediaStreamSourceExtraData*>(source.extraData());
|
| + // |extra_data| is NULL if the track is a remote audio track.
|
| + if (extra_data && extra_data->GetAudioCapturer())
|
| + extra_data->GetAudioCapturer()->EnablePeerConnectionMode();
|
| }
|
|
|
| return AddStream(stream, &constraints);
|
|
|