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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/media_stream_center.h" 5 #include "content/renderer/media/media_stream_center.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 14 matching lines...) Expand all
25 25
26 namespace content { 26 namespace content {
27 27
28 static webrtc::MediaStreamInterface* GetNativeMediaStream( 28 static webrtc::MediaStreamInterface* GetNativeMediaStream(
29 const WebKit::WebMediaStream& stream) { 29 const WebKit::WebMediaStream& stream) {
30 MediaStreamExtraData* extra_data = 30 MediaStreamExtraData* extra_data =
31 static_cast<MediaStreamExtraData*>(stream.extraData()); 31 static_cast<MediaStreamExtraData*>(stream.extraData());
32 return extra_data->stream(); 32 return extra_data->stream();
33 } 33 }
34 34
35
36 static webrtc::MediaStreamTrackInterface* GetNativeMediaStreamTrack( 35 static webrtc::MediaStreamTrackInterface* GetNativeMediaStreamTrack(
37 const WebKit::WebMediaStream& stream, 36 const WebKit::WebMediaStream& stream,
38 const WebKit::WebMediaStreamTrack& component) { 37 const WebKit::WebMediaStreamTrack& component) {
39 std::string track_id = UTF16ToUTF8(component.id()); 38 std::string track_id = UTF16ToUTF8(component.id());
40 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream); 39 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream);
41 if (native_stream) { 40 if (native_stream) {
42 if (component.source().type() == WebKit::WebMediaStreamSource::TypeAudio) { 41 if (component.source().type() == WebKit::WebMediaStreamSource::TypeAudio) {
43 return native_stream->FindAudioTrack(track_id); 42 return native_stream->FindAudioTrack(track_id);
44 } 43 }
45 if (component.source().type() == WebKit::WebMediaStreamSource::TypeVideo) { 44 if (component.source().type() == WebKit::WebMediaStreamSource::TypeVideo) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 extra_data->OnLocalStreamStop(); 91 extra_data->OnLocalStreamStop();
93 } 92 }
94 93
95 void MediaStreamCenter::didCreateMediaStream( 94 void MediaStreamCenter::didCreateMediaStream(
96 WebKit::WebMediaStream& stream) { 95 WebKit::WebMediaStream& stream) {
97 if (!rtc_factory_) 96 if (!rtc_factory_)
98 return; 97 return;
99 rtc_factory_->CreateNativeLocalMediaStream(&stream); 98 rtc_factory_->CreateNativeLocalMediaStream(&stream);
100 } 99 }
101 100
101 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
102 const WebKit::WebMediaStream& stream,
103 const WebKit::WebMediaStreamTrack& track) {
104 if (!rtc_factory_) {
tommi (sloooow) - chröme 2013/04/09 13:28:49 no {}
perkj_chrome 2013/04/10 19:58:00 Done.
105 return false;
106 }
107 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.
108 }
109
110 bool MediaStreamCenter::didRemoveMediaStreamTrack(
111 const WebKit::WebMediaStream& stream,
112 const WebKit::WebMediaStreamTrack& track) {
113 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream);
114 WebKit::WebMediaStreamSource::Type type = track.source().type();
115 std::string track_id = UTF16ToUTF8(track.id());
116 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.
117 webrtc::AudioTrackInterface* audio_track =
118 native_stream->FindAudioTrack(track_id);
119 return native_stream->RemoveTrack(audio_track);
120 } else if (type == WebKit::WebMediaStreamSource::TypeVideo) {
121 webrtc::VideoTrackInterface* video_track =
122 native_stream->FindVideoTrack(track_id);
123 return native_stream->RemoveTrack(video_track);
124 }
125 NOTREACHED();
126 return false;
127 }
128
102 } // namespace content 129 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698