Index: content/renderer/media/media_stream_center.cc |
diff --git a/content/renderer/media/media_stream_center.cc b/content/renderer/media/media_stream_center.cc |
index 29f2363c75efb9eb6be296e98bccb4ebc5f6cb95..d021d618f1e686c84a2bfd7dfee618f4b600d854 100644 |
--- a/content/renderer/media/media_stream_center.cc |
+++ b/content/renderer/media/media_stream_center.cc |
@@ -32,7 +32,6 @@ static webrtc::MediaStreamInterface* GetNativeMediaStream( |
return extra_data->stream(); |
} |
- |
static webrtc::MediaStreamTrackInterface* GetNativeMediaStreamTrack( |
const WebKit::WebMediaStream& stream, |
const WebKit::WebMediaStreamTrack& component) { |
@@ -99,4 +98,32 @@ void MediaStreamCenter::didCreateMediaStream( |
rtc_factory_->CreateNativeLocalMediaStream(&stream); |
} |
+bool MediaStreamCenter::didAddMediaStreamTrack( |
henrika (OOO until Aug 14)
2013/04/09 16:53:43
Why do we return bool here but void for didCreateM
perkj_chrome
2013/04/10 19:58:00
Good question- this is WebKit magic. Normally an e
|
+ const WebKit::WebMediaStream& stream, |
+ const WebKit::WebMediaStreamTrack& track) { |
+ if (!rtc_factory_) { |
tommi (sloooow) - chröme
2013/04/09 13:28:49
no {}
perkj_chrome
2013/04/10 19:58:00
Done.
|
+ return false; |
+ } |
+ return rtc_factory_->AddNativeLocalMediaTrack(stream, track); |
henrika (OOO until Aug 14)
2013/04/09 16:53:43
Why is the rtc_factory used for didAdd but bot for
perkj_chrome
2013/04/10 19:58:00
make sence. Moved Removed.
|
+} |
+ |
+bool MediaStreamCenter::didRemoveMediaStreamTrack( |
+ const WebKit::WebMediaStream& stream, |
+ const WebKit::WebMediaStreamTrack& track) { |
+ webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream); |
+ WebKit::WebMediaStreamSource::Type type = track.source().type(); |
+ std::string track_id = UTF16ToUTF8(track.id()); |
+ if (type == WebKit::WebMediaStreamSource::TypeAudio) { |
tommi (sloooow) - chröme
2013/04/09 13:28:49
This looks a bit hard to read and spot the three r
perkj_chrome
2013/04/10 19:58:00
Done.
|
+ webrtc::AudioTrackInterface* audio_track = |
+ native_stream->FindAudioTrack(track_id); |
+ return native_stream->RemoveTrack(audio_track); |
+ } else if (type == WebKit::WebMediaStreamSource::TypeVideo) { |
+ webrtc::VideoTrackInterface* video_track = |
+ native_stream->FindVideoTrack(track_id); |
+ return native_stream->RemoveTrack(video_track); |
+ } |
+ NOTREACHED(); |
+ return false; |
+} |
+ |
} // namespace content |