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

Side by Side Diff: content/renderer/media/media_stream_impl.h

Issue 344653003: Revert 274608 "Implement getMediaDevices." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/2057/src/
Patch Set: Created 6 years, 6 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 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_
6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ 6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/scoped_vector.h" 15 #include "base/memory/scoped_vector.h"
16 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
17 #include "base/threading/non_thread_safe.h" 17 #include "base/threading/non_thread_safe.h"
18 #include "content/common/content_export.h" 18 #include "content/common/content_export.h"
19 #include "content/public/renderer/render_view_observer.h" 19 #include "content/public/renderer/render_view_observer.h"
20 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h" 20 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h"
21 #include "content/renderer/media/media_stream_source.h" 21 #include "content/renderer/media/media_stream_source.h"
22 #include "third_party/WebKit/public/platform/WebMediaStream.h" 22 #include "third_party/WebKit/public/platform/WebMediaStream.h"
23 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 23 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
24 #include "third_party/WebKit/public/platform/WebVector.h" 24 #include "third_party/WebKit/public/platform/WebVector.h"
25 #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h"
26 #include "third_party/WebKit/public/web/WebUserMediaClient.h" 25 #include "third_party/WebKit/public/web/WebUserMediaClient.h"
27 #include "third_party/WebKit/public/web/WebUserMediaRequest.h" 26 #include "third_party/WebKit/public/web/WebUserMediaRequest.h"
28 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" 27 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h"
29 28
30 namespace content { 29 namespace content {
31 class PeerConnectionDependencyFactory; 30 class PeerConnectionDependencyFactory;
32 class MediaStreamDispatcher; 31 class MediaStreamDispatcher;
33 class MediaStreamVideoSource; 32 class MediaStreamVideoSource;
34 class VideoCapturerDelegate; 33 class VideoCapturerDelegate;
35 34
(...skipping 14 matching lines...) Expand all
50 RenderView* render_view, 49 RenderView* render_view,
51 MediaStreamDispatcher* media_stream_dispatcher, 50 MediaStreamDispatcher* media_stream_dispatcher,
52 PeerConnectionDependencyFactory* dependency_factory); 51 PeerConnectionDependencyFactory* dependency_factory);
53 virtual ~MediaStreamImpl(); 52 virtual ~MediaStreamImpl();
54 53
55 // blink::WebUserMediaClient implementation 54 // blink::WebUserMediaClient implementation
56 virtual void requestUserMedia( 55 virtual void requestUserMedia(
57 const blink::WebUserMediaRequest& user_media_request); 56 const blink::WebUserMediaRequest& user_media_request);
58 virtual void cancelUserMediaRequest( 57 virtual void cancelUserMediaRequest(
59 const blink::WebUserMediaRequest& user_media_request); 58 const blink::WebUserMediaRequest& user_media_request);
60 virtual void requestMediaDevices(
61 const blink::WebMediaDevicesRequest& media_devices_request) OVERRIDE;
62 virtual void cancelMediaDevicesRequest(
63 const blink::WebMediaDevicesRequest& media_devices_request) OVERRIDE;
64 59
65 // MediaStreamDispatcherEventHandler implementation. 60 // MediaStreamDispatcherEventHandler implementation.
66 virtual void OnStreamGenerated( 61 virtual void OnStreamGenerated(
67 int request_id, 62 int request_id,
68 const std::string& label, 63 const std::string& label,
69 const StreamDeviceInfoArray& audio_array, 64 const StreamDeviceInfoArray& audio_array,
70 const StreamDeviceInfoArray& video_array) OVERRIDE; 65 const StreamDeviceInfoArray& video_array) OVERRIDE;
71 virtual void OnStreamGenerationFailed( 66 virtual void OnStreamGenerationFailed(
72 int request_id, 67 int request_id,
73 content::MediaStreamRequestResult result) OVERRIDE; 68 content::MediaStreamRequestResult result) OVERRIDE;
(...skipping 18 matching lines...) Expand all
92 87
93 // These methods are virtual for test purposes. A test can override them to 88 // These methods are virtual for test purposes. A test can override them to
94 // test requesting local media streams. The function notifies WebKit that the 89 // test requesting local media streams. The function notifies WebKit that the
95 // |request| have completed. 90 // |request| have completed.
96 virtual void GetUserMediaRequestSucceeded( 91 virtual void GetUserMediaRequestSucceeded(
97 const blink::WebMediaStream& stream, 92 const blink::WebMediaStream& stream,
98 blink::WebUserMediaRequest* request_info); 93 blink::WebUserMediaRequest* request_info);
99 virtual void GetUserMediaRequestFailed( 94 virtual void GetUserMediaRequestFailed(
100 blink::WebUserMediaRequest* request_info, 95 blink::WebUserMediaRequest* request_info,
101 content::MediaStreamRequestResult result); 96 content::MediaStreamRequestResult result);
102 virtual void EnumerateDevicesSucceded( 97
103 blink::WebMediaDevicesRequest* request,
104 blink::WebVector<blink::WebMediaDeviceInfo>& devices);
105 // Creates a MediaStreamVideoSource object. 98 // Creates a MediaStreamVideoSource object.
106 // This is virtual for test purposes. 99 // This is virtual for test purposes.
107 virtual MediaStreamVideoSource* CreateVideoSource( 100 virtual MediaStreamVideoSource* CreateVideoSource(
108 const StreamDeviceInfo& device, 101 const StreamDeviceInfo& device,
109 const MediaStreamSource::SourceStoppedCallback& stop_callback); 102 const MediaStreamSource::SourceStoppedCallback& stop_callback);
110 103
111 private: 104 private:
112 // Class for storing information about a WebKit request to create a 105 // Class for storing information about a WebKit request to create a
113 // MediaStream. 106 // MediaStream.
114 class UserMediaRequestInfo 107 class UserMediaRequestInfo
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 const blink::WebMediaStreamSource& source) 158 const blink::WebMediaStreamSource& source)
166 : frame(frame), source(source) { 159 : frame(frame), source(source) {
167 } 160 }
168 // |frame| is the WebFrame that requested |source|. NULL in unit tests. 161 // |frame| is the WebFrame that requested |source|. NULL in unit tests.
169 // TODO(perkj): Change so that |frame| is not NULL in unit tests. 162 // TODO(perkj): Change so that |frame| is not NULL in unit tests.
170 blink::WebFrame* frame; 163 blink::WebFrame* frame;
171 blink::WebMediaStreamSource source; 164 blink::WebMediaStreamSource source;
172 }; 165 };
173 typedef std::vector<LocalStreamSource> LocalStreamSources; 166 typedef std::vector<LocalStreamSource> LocalStreamSources;
174 167
175 struct MediaDevicesRequestInfo;
176 typedef ScopedVector<MediaDevicesRequestInfo> MediaDevicesRequests;
177
178 // Creates a WebKit representation of stream sources based on 168 // Creates a WebKit representation of stream sources based on
179 // |devices| from the MediaStreamDispatcher. 169 // |devices| from the MediaStreamDispatcher.
180 void InitializeSourceObject( 170 void InitializeSourceObject(
181 const StreamDeviceInfo& device, 171 const StreamDeviceInfo& device,
182 blink::WebMediaStreamSource::Type type, 172 blink::WebMediaStreamSource::Type type,
183 const blink::WebMediaConstraints& constraints, 173 const blink::WebMediaConstraints& constraints,
184 blink::WebFrame* frame, 174 blink::WebFrame* frame,
185 blink::WebMediaStreamSource* webkit_source); 175 blink::WebMediaStreamSource* webkit_source);
186 176
187 void CreateVideoTracks( 177 void CreateVideoTracks(
(...skipping 12 matching lines...) Expand all
200 // underlying media sources and tracks have been created and started. 190 // underlying media sources and tracks have been created and started.
201 void OnCreateNativeTracksCompleted( 191 void OnCreateNativeTracksCompleted(
202 UserMediaRequestInfo* request, 192 UserMediaRequestInfo* request,
203 content::MediaStreamRequestResult result); 193 content::MediaStreamRequestResult result);
204 194
205 UserMediaRequestInfo* FindUserMediaRequestInfo(int request_id); 195 UserMediaRequestInfo* FindUserMediaRequestInfo(int request_id);
206 UserMediaRequestInfo* FindUserMediaRequestInfo( 196 UserMediaRequestInfo* FindUserMediaRequestInfo(
207 const blink::WebUserMediaRequest& request); 197 const blink::WebUserMediaRequest& request);
208 void DeleteUserMediaRequestInfo(UserMediaRequestInfo* request); 198 void DeleteUserMediaRequestInfo(UserMediaRequestInfo* request);
209 199
210 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(int request_id);
211 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(
212 const blink::WebMediaDevicesRequest& request);
213 void DeleteMediaDevicesRequestInfo(MediaDevicesRequestInfo* request);
214
215 // Returns the source that use a device with |device.session_id| 200 // Returns the source that use a device with |device.session_id|
216 // and |device.device.id|. NULL if such source doesn't exist. 201 // and |device.device.id|. NULL if such source doesn't exist.
217 const blink::WebMediaStreamSource* FindLocalSource( 202 const blink::WebMediaStreamSource* FindLocalSource(
218 const StreamDeviceInfo& device) const; 203 const StreamDeviceInfo& device) const;
219 204
220 void StopLocalSource(const blink::WebMediaStreamSource& source, 205 void StopLocalSource(const blink::WebMediaStreamSource& source,
221 bool notify_dispatcher); 206 bool notify_dispatcher);
222 207
223 // Weak ref to a PeerConnectionDependencyFactory, owned by the RenderThread. 208 // Weak ref to a PeerConnectionDependencyFactory, owned by the RenderThread.
224 // It's valid for the lifetime of RenderThread. 209 // It's valid for the lifetime of RenderThread.
225 // TODO(xians): Remove this dependency once audio do not need it for local 210 // TODO(xians): Remove this dependency once audio do not need it for local
226 // audio. 211 // audio.
227 PeerConnectionDependencyFactory* dependency_factory_; 212 PeerConnectionDependencyFactory* dependency_factory_;
228 213
229 // media_stream_dispatcher_ is a weak reference, owned by RenderView. It's 214 // media_stream_dispatcher_ is a weak reference, owned by RenderView. It's
230 // valid for the lifetime of RenderView. 215 // valid for the lifetime of RenderView.
231 MediaStreamDispatcher* media_stream_dispatcher_; 216 MediaStreamDispatcher* media_stream_dispatcher_;
232 217
233 LocalStreamSources local_sources_; 218 LocalStreamSources local_sources_;
234 219
235 UserMediaRequests user_media_requests_; 220 UserMediaRequests user_media_requests_;
236 221
237 // Requests to enumerate media devices.
238 MediaDevicesRequests media_devices_requests_;
239
240 DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl); 222 DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl);
241 }; 223 };
242 224
243 } // namespace content 225 } // namespace content
244 226
245 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ 227 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_dispatcher.h ('k') | content/renderer/media/media_stream_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698