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

Side by Side Diff: content/renderer/media/media_stream_center.cc

Issue 218763007: Update MediaStreamTrack::Stop to latest draft. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments. Created 6 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/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 const blink::WebMediaStreamTrack& track) { 114 const blink::WebMediaStreamTrack& track) {
115 MediaStreamTrack* native_track = 115 MediaStreamTrack* native_track =
116 MediaStreamTrack::GetTrack(track); 116 MediaStreamTrack::GetTrack(track);
117 if (native_track) 117 if (native_track)
118 native_track->SetEnabled(false); 118 native_track->SetEnabled(false);
119 } 119 }
120 120
121 bool MediaStreamCenter::didStopMediaStreamTrack( 121 bool MediaStreamCenter::didStopMediaStreamTrack(
122 const blink::WebMediaStreamTrack& track) { 122 const blink::WebMediaStreamTrack& track) {
123 DVLOG(1) << "MediaStreamCenter::didStopMediaStreamTrack"; 123 DVLOG(1) << "MediaStreamCenter::didStopMediaStreamTrack";
124 blink::WebMediaStreamSource source = track.source(); 124 MediaStreamTrack* native_track = MediaStreamTrack::GetTrack(track);
125 MediaStreamSource* extra_data = 125 native_track->Stop();
126 static_cast<MediaStreamSource*>(source.extraData());
127 if (!extra_data) {
128 DVLOG(1) << "didStopMediaStreamTrack called on a remote track.";
129 return false;
130 }
131
132 extra_data->StopSource();
133 return true; 126 return true;
134 } 127 }
135 128
136 blink::WebAudioSourceProvider* 129 blink::WebAudioSourceProvider*
137 MediaStreamCenter::createWebAudioSourceFromMediaStreamTrack( 130 MediaStreamCenter::createWebAudioSourceFromMediaStreamTrack(
138 const blink::WebMediaStreamTrack& track) { 131 const blink::WebMediaStreamTrack& track) {
139 DVLOG(1) << "MediaStreamCenter::createWebAudioSourceFromMediaStreamTrack"; 132 DVLOG(1) << "MediaStreamCenter::createWebAudioSourceFromMediaStreamTrack";
140 MediaStreamTrack* media_stream_track = 133 MediaStreamTrack* media_stream_track =
141 static_cast<MediaStreamTrack*>(track.extraData()); 134 static_cast<MediaStreamTrack*>(track.extraData());
142 // Only local audio track is supported now. 135 // Only local audio track is supported now.
(...skipping 13 matching lines...) Expand all
156 void MediaStreamCenter::didStopLocalMediaStream( 149 void MediaStreamCenter::didStopLocalMediaStream(
157 const blink::WebMediaStream& stream) { 150 const blink::WebMediaStream& stream) {
158 DVLOG(1) << "MediaStreamCenter::didStopLocalMediaStream"; 151 DVLOG(1) << "MediaStreamCenter::didStopLocalMediaStream";
159 MediaStream* native_stream = MediaStream::GetMediaStream(stream); 152 MediaStream* native_stream = MediaStream::GetMediaStream(stream);
160 if (!native_stream) { 153 if (!native_stream) {
161 NOTREACHED(); 154 NOTREACHED();
162 return; 155 return;
163 } 156 }
164 157
165 // TODO(perkj): MediaStream::Stop is being deprecated. But for the moment we 158 // TODO(perkj): MediaStream::Stop is being deprecated. But for the moment we
166 // need to support the old behavior and the new. Since we only create one 159 // need to support both MediaStream::Stop and MediaStreamTrack::Stop.
167 // source object per actual device- we need to fake stopping a
168 // MediaStreamTrack by disabling it if the same device is used as source by
169 // multiple tracks. Note that disabling a track here, don't affect the
170 // enabled property in JS.
171 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; 160 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks;
172 stream.audioTracks(audio_tracks); 161 stream.audioTracks(audio_tracks);
173 for (size_t i = 0; i < audio_tracks.size(); ++i) 162 for (size_t i = 0; i < audio_tracks.size(); ++i)
174 didDisableMediaStreamTrack(audio_tracks[i]); 163 didStopMediaStreamTrack(audio_tracks[i]);
175 164
176 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; 165 blink::WebVector<blink::WebMediaStreamTrack> video_tracks;
177 stream.videoTracks(video_tracks); 166 stream.videoTracks(video_tracks);
178 for (size_t i = 0; i < video_tracks.size(); ++i) 167 for (size_t i = 0; i < video_tracks.size(); ++i)
179 didDisableMediaStreamTrack(video_tracks[i]); 168 didStopMediaStreamTrack(video_tracks[i]);
180
181 native_stream->OnStreamStopped();
182 } 169 }
183 170
184 void MediaStreamCenter::didCreateMediaStream(blink::WebMediaStream& stream) { 171 void MediaStreamCenter::didCreateMediaStream(blink::WebMediaStream& stream) {
185 DVLOG(1) << "MediaStreamCenter::didCreateMediaStream"; 172 DVLOG(1) << "MediaStreamCenter::didCreateMediaStream";
186 blink::WebMediaStream writable_stream(stream); 173 blink::WebMediaStream writable_stream(stream);
187 MediaStream* native_stream( 174 MediaStream* native_stream(
188 new MediaStream(rtc_factory_, 175 new MediaStream(rtc_factory_,
189 MediaStream::StreamStopCallback(),
190 stream)); 176 stream));
191 writable_stream.setExtraData(native_stream); 177 writable_stream.setExtraData(native_stream);
192 178
193 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; 179 blink::WebVector<blink::WebMediaStreamTrack> video_tracks;
194 stream.videoTracks(video_tracks); 180 stream.videoTracks(video_tracks);
195 for (size_t i = 0; i < video_tracks.size(); ++i) { 181 for (size_t i = 0; i < video_tracks.size(); ++i) {
196 if (!MediaStreamTrack::GetTrack(video_tracks[i])) 182 if (!MediaStreamTrack::GetTrack(video_tracks[i]))
197 CreateNativeMediaStreamTrack(video_tracks[i], rtc_factory_); 183 CreateNativeMediaStreamTrack(video_tracks[i], rtc_factory_);
198 } 184 }
199 185
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 device.type == MEDIA_DEVICE_AUDIO_CAPTURE 239 device.type == MEDIA_DEVICE_AUDIO_CAPTURE
254 ? blink::WebSourceInfo::SourceKindAudio 240 ? blink::WebSourceInfo::SourceKindAudio
255 : blink::WebSourceInfo::SourceKindVideo, 241 : blink::WebSourceInfo::SourceKindVideo,
256 blink::WebString::fromUTF8(device.name), 242 blink::WebString::fromUTF8(device.name),
257 video_facing); 243 video_facing);
258 } 244 }
259 request_it->second.requestSucceeded(sourceInfos); 245 request_it->second.requestSucceeded(sourceInfos);
260 } 246 }
261 247
262 } // namespace content 248 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_audio_source.cc ('k') | content/renderer/media/media_stream_dependency_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698