OLD | NEW |
---|---|
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 |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
91 void OnLocalSourceStopped(const blink::WebMediaStreamSource& source); | 91 void OnLocalSourceStopped(const blink::WebMediaStreamSource& source); |
92 | 92 |
93 // These methods are virtual for test purposes. A test can override them to | 93 // 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 | 94 // test requesting local media streams. The function notifies WebKit that the |
95 // |request| have completed. | 95 // |request| have completed. |
96 virtual void GetUserMediaRequestSucceeded( | 96 virtual void GetUserMediaRequestSucceeded( |
97 const blink::WebMediaStream& stream, | 97 const blink::WebMediaStream& stream, |
98 blink::WebUserMediaRequest* request_info); | 98 blink::WebUserMediaRequest* request_info); |
99 virtual void GetUserMediaRequestFailed( | 99 virtual void GetUserMediaRequestFailed( |
100 blink::WebUserMediaRequest* request_info, | 100 blink::WebUserMediaRequest* request_info, |
101 content::MediaStreamRequestResult result); | 101 content::MediaStreamRequestResult result, |
102 const blink::WebString& result_name = blink::WebString()); | |
no longer working on chromium
2014/07/25 19:27:35
I don't understand why you need a result_name stri
jiajia.qin
2014/07/28 04:46:52
The spec says if it is a constraint failure. Let e
| |
102 virtual void EnumerateDevicesSucceded( | 103 virtual void EnumerateDevicesSucceded( |
103 blink::WebMediaDevicesRequest* request, | 104 blink::WebMediaDevicesRequest* request, |
104 blink::WebVector<blink::WebMediaDeviceInfo>& devices); | 105 blink::WebVector<blink::WebMediaDeviceInfo>& devices); |
105 // Creates a MediaStreamVideoSource object. | 106 // Creates a MediaStreamVideoSource object. |
106 // This is virtual for test purposes. | 107 // This is virtual for test purposes. |
107 virtual MediaStreamVideoSource* CreateVideoSource( | 108 virtual MediaStreamVideoSource* CreateVideoSource( |
108 const StreamDeviceInfo& device, | 109 const StreamDeviceInfo& device, |
109 const MediaStreamSource::SourceStoppedCallback& stop_callback); | 110 const MediaStreamSource::SourceStoppedCallback& stop_callback); |
110 | 111 |
111 private: | 112 private: |
112 // Class for storing information about a WebKit request to create a | 113 // Class for storing information about a WebKit request to create a |
113 // MediaStream. | 114 // MediaStream. |
114 class UserMediaRequestInfo | 115 class UserMediaRequestInfo |
115 : public base::SupportsWeakPtr<UserMediaRequestInfo> { | 116 : public base::SupportsWeakPtr<UserMediaRequestInfo> { |
116 public: | 117 public: |
117 typedef base::Callback<void(UserMediaRequestInfo* request_info, | 118 typedef base::Callback<void(UserMediaRequestInfo* request_info, |
118 content::MediaStreamRequestResult result)> | 119 content::MediaStreamRequestResult result, |
120 const blink::WebString& result_name)> | |
119 ResourcesReady; | 121 ResourcesReady; |
120 | 122 |
121 UserMediaRequestInfo(int request_id, | 123 UserMediaRequestInfo(int request_id, |
122 blink::WebFrame* frame, | 124 blink::WebFrame* frame, |
123 const blink::WebUserMediaRequest& request, | 125 const blink::WebUserMediaRequest& request, |
124 bool enable_automatic_output_device_selection); | 126 bool enable_automatic_output_device_selection); |
125 ~UserMediaRequestInfo(); | 127 ~UserMediaRequestInfo(); |
126 int request_id; | 128 int request_id; |
127 // True if MediaStreamDispatcher has generated the stream, see | 129 // True if MediaStreamDispatcher has generated the stream, see |
128 // OnStreamGenerated. | 130 // OnStreamGenerated. |
(...skipping 13 matching lines...) Expand all Loading... | |
142 // Triggers |callback| when all sources used in this request have either | 144 // Triggers |callback| when all sources used in this request have either |
143 // successfully started, or a source has failed to start. | 145 // successfully started, or a source has failed to start. |
144 void CallbackOnTracksStarted(const ResourcesReady& callback); | 146 void CallbackOnTracksStarted(const ResourcesReady& callback); |
145 | 147 |
146 bool IsSourceUsed(const blink::WebMediaStreamSource& source) const; | 148 bool IsSourceUsed(const blink::WebMediaStreamSource& source) const; |
147 void RemoveSource(const blink::WebMediaStreamSource& source); | 149 void RemoveSource(const blink::WebMediaStreamSource& source); |
148 | 150 |
149 bool AreAllSourcesRemoved() const { return sources_.empty(); } | 151 bool AreAllSourcesRemoved() const { return sources_.empty(); } |
150 | 152 |
151 private: | 153 private: |
152 void OnTrackStarted(MediaStreamSource* source, bool success); | 154 void OnTrackStarted( |
no longer working on chromium
2014/07/28 19:55:08
Avoid using default param.
If OnTrackStarted is u
jiajia.qin
2014/07/30 05:18:07
I have made a overload for GetUserMediaRequestFail
| |
155 MediaStreamSource* source, | |
156 content::MediaStreamRequestResult result, | |
157 const blink::WebString& result_name = blink::WebString()); | |
153 void CheckAllTracksStarted(); | 158 void CheckAllTracksStarted(); |
154 | 159 |
155 ResourcesReady ready_callback_; | 160 ResourcesReady ready_callback_; |
156 bool request_failed_; | 161 bool request_failed_; |
157 // Sources used in this request. | 162 // Sources used in this request. |
158 std::vector<blink::WebMediaStreamSource> sources_; | 163 std::vector<blink::WebMediaStreamSource> sources_; |
159 std::vector<MediaStreamSource*> sources_waiting_for_callback_; | 164 std::vector<MediaStreamSource*> sources_waiting_for_callback_; |
160 }; | 165 }; |
161 typedef ScopedVector<UserMediaRequestInfo> UserMediaRequests; | 166 typedef ScopedVector<UserMediaRequestInfo> UserMediaRequests; |
162 | 167 |
(...skipping 30 matching lines...) Expand all Loading... | |
193 void CreateAudioTracks( | 198 void CreateAudioTracks( |
194 const StreamDeviceInfoArray& devices, | 199 const StreamDeviceInfoArray& devices, |
195 const blink::WebMediaConstraints& constraints, | 200 const blink::WebMediaConstraints& constraints, |
196 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, | 201 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, |
197 UserMediaRequestInfo* request); | 202 UserMediaRequestInfo* request); |
198 | 203 |
199 // Callback function triggered when all native versions of the | 204 // Callback function triggered when all native versions of the |
200 // underlying media sources and tracks have been created and started. | 205 // underlying media sources and tracks have been created and started. |
201 void OnCreateNativeTracksCompleted( | 206 void OnCreateNativeTracksCompleted( |
202 UserMediaRequestInfo* request, | 207 UserMediaRequestInfo* request, |
203 content::MediaStreamRequestResult result); | 208 content::MediaStreamRequestResult result, |
209 const blink::WebString& result_name = blink::WebString()); | |
204 | 210 |
205 UserMediaRequestInfo* FindUserMediaRequestInfo(int request_id); | 211 UserMediaRequestInfo* FindUserMediaRequestInfo(int request_id); |
206 UserMediaRequestInfo* FindUserMediaRequestInfo( | 212 UserMediaRequestInfo* FindUserMediaRequestInfo( |
207 const blink::WebUserMediaRequest& request); | 213 const blink::WebUserMediaRequest& request); |
208 void DeleteUserMediaRequestInfo(UserMediaRequestInfo* request); | 214 void DeleteUserMediaRequestInfo(UserMediaRequestInfo* request); |
209 | 215 |
210 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(int request_id); | 216 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(int request_id); |
211 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo( | 217 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo( |
212 const blink::WebMediaDevicesRequest& request); | 218 const blink::WebMediaDevicesRequest& request); |
213 void DeleteMediaDevicesRequestInfo(MediaDevicesRequestInfo* request); | 219 void DeleteMediaDevicesRequestInfo(MediaDevicesRequestInfo* request); |
(...skipping 22 matching lines...) Expand all Loading... | |
236 | 242 |
237 // Requests to enumerate media devices. | 243 // Requests to enumerate media devices. |
238 MediaDevicesRequests media_devices_requests_; | 244 MediaDevicesRequests media_devices_requests_; |
239 | 245 |
240 DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl); | 246 DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl); |
241 }; | 247 }; |
242 | 248 |
243 } // namespace content | 249 } // namespace content |
244 | 250 |
245 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ | 251 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ |
OLD | NEW |