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

Unified Diff: content/browser/renderer_host/media/media_stream_manager.h

Issue 8480028: support video device enumeration from renderer process. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: code review Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/media/media_stream_manager.h
===================================================================
--- content/browser/renderer_host/media/media_stream_manager.h (revision 111389)
+++ content/browser/renderer_host/media/media_stream_manager.h (working copy)
@@ -2,20 +2,23 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// MediaStreamManager is used to open media capture devices (video supported
-// now). Call flow:
+// MediaStreamManager is used to open/enumerate media capture devices (video
+// supported now). Call flow:
// 1. GenerateStream is called when a render process wants to use a capture
// device.
// 2. MediaStreamManager will ask MediaStreamDeviceSettings for permission to
// use devices and for which device to use.
-// 3. MediaStreamDeviceSettings will request list(s) of available devices, the
-// requests will be relayed to the corresponding media device manager and the
-// result will be given to MediaStreamDeviceSettings.
+// 3. MediaStreamManager will request the corresponding media device manager(s)
+// to enumerate available devices. The result will be given to
+// MediaStreamDeviceSettings.
// 4. MediaStreamDeviceSettings will, by using user settings, pick devices which
// devices to use and let MediaStreamManager know the result.
// 5. MediaStreamManager will call the proper media device manager to open the
// device and let the MediaStreamRequester know it has been done.
+// When enumeration and open are done in separate operations,
+// MediaStreamDeviceSettings is not involved as in steps.
+
#ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_
#define CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_
@@ -68,6 +71,27 @@
// Closes generated stream.
void StopGeneratedStream(const std::string& label);
+ // Gets a list of devices of |type|.
+ // The request is identified using |label|, which is pointing to a
+ // std::string.
+ void EnumerateDevices(MediaStreamRequester* requester,
scherkus (not reviewing) 2011/12/06 19:25:04 I think I understand why GenerateStream() returns
wjia(left Chromium) 2012/01/24 00:59:46 This is internal implementation in browser process
+ int render_process_id,
+ int render_view_id,
+ MediaStreamType type,
+ const std::string& security_origin,
+ std::string* label);
+
+ // Open a device identified by |device_id|.
+ // The request is identified using |label|, which is pointing to a
+ // std::string.
+ void OpenDevice(MediaStreamRequester* requester,
+ int render_process_id,
+ int render_view_id,
+ const std::string& device_id,
+ MediaStreamType type,
+ const std::string& security_origin,
+ std::string* label);
+
// Implements MediaStreamProviderListener.
virtual void Opened(MediaStreamType stream_type,
int capture_session_id) OVERRIDE;
@@ -80,8 +104,6 @@
MediaStreamProviderError error) OVERRIDE;
// Implements SettingsRequester.
- virtual void GetDevices(const std::string& label,
- MediaStreamType stream_type) OVERRIDE;
virtual void DevicesAccepted(const std::string& label,
const StreamDeviceInfoArray& devices) OVERRIDE;
virtual void SettingsError(const std::string& label) OVERRIDE;
@@ -97,6 +119,11 @@
// Helpers.
bool RequestDone(const MediaStreamManager::DeviceRequest& request) const;
MediaStreamProvider* GetDeviceManager(MediaStreamType stream_type);
+ void StartEnumeration(DeviceRequest* new_request,
+ int render_process_id,
+ int render_view_id,
+ const std::string& security_origin,
+ std::string* label);
scoped_ptr<MediaStreamDeviceSettings> device_settings_;
scoped_ptr<VideoCaptureManager> video_capture_manager_;

Powered by Google App Engine
This is Rietveld 408576698