Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1692)

Unified Diff: content/renderer/media/media_stream_center.cc

Issue 13496009: Hookup the MediaStream glue for Adding and Removing tracks to an existing MediaStream. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698