Chromium Code Reviews| 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 |