Index: content/browser/renderer_host/media/video_capture_manager.h |
diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/content/browser/renderer_host/media/video_capture_manager.h |
index 9a50e97020739e24951f88b59bd971d7292eb433..026af56d561e2856c765c4baa6556a6fc3cd9281 100644 |
--- a/content/browser/renderer_host/media/video_capture_manager.h |
+++ b/content/browser/renderer_host/media/video_capture_manager.h |
@@ -88,20 +88,20 @@ class CONTENT_EXPORT VideoCaptureManager |
// that the client was successfully added. A NULL controller is passed to |
// the callback on failure. |done_cb| is not allowed to synchronously call |
// StopCaptureForClient(). |
- void StartCaptureForClient(media::VideoCaptureSessionId session_id, |
- const media::VideoCaptureParams& capture_params, |
- VideoCaptureControllerID client_id, |
- VideoCaptureControllerEventHandler* client_handler, |
- const DoneCB& done_cb); |
+ void ConnectClient(media::VideoCaptureSessionId session_id, |
+ const media::VideoCaptureParams& capture_params, |
+ VideoCaptureControllerID client_id, |
+ VideoCaptureControllerEventHandler* client_handler, |
+ const DoneCB& done_cb); |
// Called by VideoCaptureHost to remove |client_handler|. If this is the last |
// client of the device, the |controller| and its VideoCaptureDevice may be |
// destroyed. The client must not access |controller| after calling this |
// function. |
- void StopCaptureForClient(VideoCaptureController* controller, |
- VideoCaptureControllerID client_id, |
- VideoCaptureControllerEventHandler* client_handler, |
- bool aborted_due_to_error); |
+ void DisconnectClient(VideoCaptureController* controller, |
+ VideoCaptureControllerID client_id, |
+ VideoCaptureControllerEventHandler* client_handler, |
+ bool aborted_due_to_error); |
// Called by VideoCaptureHost to pause to update video buffer specified by |
// |client_id| and |client_handler|. If all clients of |controller| are |
@@ -113,7 +113,7 @@ class CONTENT_EXPORT VideoCaptureManager |
// Called by VideoCaptureHost to resume to update video buffer specified by |
// |client_id| and |client_handler|. The |session_id| and |params| should be |
- // same as those used in StartCaptureForClient(). |
+ // same as those used in ConnectClient(). |
// If this is first active client of |controller|, device will be allocated |
// and it will take a little time to resume. |
// Allocating device could failed if other app holds the camera, the error |
@@ -205,6 +205,7 @@ class CONTENT_EXPORT VideoCaptureManager |
void WillStartDevice(media::VideoFacingMode facing_mode) override; |
void DidStartDevice(VideoCaptureController* controller) override; |
void OnDeviceStartFailed(VideoCaptureController* controller) override; |
+ void OnDeviceStartAborted() override; |
// Retrieves camera calibration information for a particular device. Returns |
// nullopt_t if the |device_id| is not found or camera calibration information |
@@ -251,13 +252,12 @@ class CONTENT_EXPORT VideoCaptureManager |
// |device_id| and |type| (if it is already opened), by its |controller| or by |
// its |serial_id|. In all cases, if not found, nullptr is returned. |
VideoCaptureController* LookupControllerBySessionId(int session_id); |
- VideoCaptureController* LookupControllerByTypeAndId( |
+ VideoCaptureController* LookupControllerByMediaTypeAndDeviceId( |
MediaStreamType type, |
const std::string& device_id) const; |
bool IsControllerPointerValid(const VideoCaptureController* controller) const; |
- VideoCaptureController* LookupControllerBySerialId(int serial_id) const; |
- scoped_refptr<VideoCaptureController> GetControllerSharedRefFromSerialId( |
- int serial_id) const; |
+ scoped_refptr<VideoCaptureController> GetControllerSharedRef( |
+ VideoCaptureController* controller) const; |
// Finds the device info by |id| in |devices_info_cache_|, or nullptr. |
DeviceInfo* GetDeviceInfoById(const std::string& id); |
@@ -271,15 +271,16 @@ class CONTENT_EXPORT VideoCaptureManager |
// Starting a capture device can take 1-2 seconds. |
// To avoid multiple unnecessary start/stop commands to the OS, each start |
- // request is queued in |device_start_queue_|. |
- // QueueStartDevice creates a new entry in |device_start_queue_| and posts a |
+ // request is queued in |device_start_request_queue_|. |
+ // QueueStartDevice creates a new entry in |device_start_request_queue_| and |
+ // posts a |
// request to start the device on the device thread unless there is |
// another request pending start. |
void QueueStartDevice(media::VideoCaptureSessionId session_id, |
VideoCaptureController* controller, |
const media::VideoCaptureParams& params); |
void DoStopDevice(VideoCaptureController* controller); |
- void HandleQueuedStartRequest(); |
+ void ProcessDeviceStartRequestQueue(); |
void MaybePostDesktopCaptureWindowId(media::VideoCaptureSessionId session_id); |
@@ -301,7 +302,7 @@ class CONTENT_EXPORT VideoCaptureManager |
// An entry is kept in this map for every session that has been created via |
// the Open() entry point. The keys are session_id's. This map is used to |
- // determine which device to use when StartCaptureForClient() occurs. Used |
+ // determine which device to use when ConnectClient() occurs. Used |
// only on the IO thread. |
SessionMap sessions_; |
@@ -309,7 +310,9 @@ class CONTENT_EXPORT VideoCaptureManager |
// not be started. This member is only accessed on IO thread. |
std::vector<scoped_refptr<VideoCaptureController>> controllers_; |
- DeviceStartQueue device_start_queue_; |
+ // TODO(chfremer): Consider using CancellableTaskTracker, see |
+ // crbug.com/598465. |
+ DeviceStartQueue device_start_request_queue_; |
// Queue to keep photo-associated requests waiting for a device to initialize, |
// bundles a session id integer and an associated photo-related request. |