Index: content/renderer/media/webrtc_audio_renderer.cc |
diff --git a/content/renderer/media/webrtc_audio_renderer.cc b/content/renderer/media/webrtc_audio_renderer.cc |
index 49fc1857f83b3771212249d1dc3dec6efa067201..e993dc26f74fb923a5a3fb1211e366e2783fb65d 100644 |
--- a/content/renderer/media/webrtc_audio_renderer.cc |
+++ b/content/renderer/media/webrtc_audio_renderer.cc |
@@ -15,6 +15,7 @@ |
#include "content/renderer/media/media_stream_audio_track.h" |
#include "content/renderer/media/media_stream_dispatcher.h" |
#include "content/renderer/media/media_stream_track.h" |
+#include "content/renderer/media/webrtc/peer_connection_remote_audio_source.h" |
#include "content/renderer/media/webrtc_audio_device_impl.h" |
#include "content/renderer/media/webrtc_logging.h" |
#include "content/renderer/render_frame_impl.h" |
@@ -586,14 +587,17 @@ void WebRtcAudioRenderer::OnPlayStateChanged( |
media_stream.audioTracks(web_tracks); |
for (const blink::WebMediaStreamTrack& web_track : web_tracks) { |
- MediaStreamAudioTrack* track = MediaStreamAudioTrack::GetTrack(web_track); |
// WebRtcAudioRenderer can only render audio tracks received from a remote |
// peer. Since the actual MediaStream is mutable from JavaScript, we need |
// to make sure |web_track| is actually a remote track. |
- if (track->is_local_track()) |
+ PeerConnectionRemoteAudioTrack* const remote_track = |
+ PeerConnectionRemoteAudioTrack::From( |
+ MediaStreamAudioTrack::Get(web_track)); |
+ if (!remote_track) |
continue; |
webrtc::AudioSourceInterface* source = |
- track->GetAudioAdapter()->GetSource(); |
+ static_cast<webrtc::AudioTrackInterface*>(remote_track->track_interface()) |
+ ->GetSource(); |
DCHECK(source); |
if (!state->playing()) { |
if (RemovePlayingState(source, state)) |