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

Unified Diff: content/renderer/media/user_media_client_impl.h

Issue 2696443002: Reland of Use spec-compliant algorithm to select video devices in getUserMedia. (Closed)
Patch Set: Address boliu's comments Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/user_media_client_impl.h
diff --git a/content/renderer/media/user_media_client_impl.h b/content/renderer/media/user_media_client_impl.h
index d6ee61e4b61dfdf3daab80f290c8e111f9a82d2c..db866f2bf5d442f92f208f49509457f32e46883d 100644
--- a/content/renderer/media/user_media_client_impl.h
+++ b/content/renderer/media/user_media_client_impl.h
@@ -30,11 +30,16 @@
#include "third_party/WebKit/public/web/WebUserMediaClient.h"
#include "third_party/WebKit/public/web/WebUserMediaRequest.h"
+namespace base {
+class TaskRunner;
+}
+
namespace content {
class PeerConnectionDependencyFactory;
class MediaStreamAudioSource;
class MediaStreamDispatcher;
class MediaStreamVideoSource;
+struct VideoCaptureSourceSelectionResult;
// UserMediaClientImpl is a delegate for the Media Stream GetUserMedia API.
// It ties together WebKit and MediaStreamManager
@@ -51,7 +56,8 @@ class CONTENT_EXPORT UserMediaClientImpl
UserMediaClientImpl(
RenderFrame* render_frame,
PeerConnectionDependencyFactory* dependency_factory,
- std::unique_ptr<MediaStreamDispatcher> media_stream_dispatcher);
+ std::unique_ptr<MediaStreamDispatcher> media_stream_dispatcher,
+ const scoped_refptr<base::TaskRunner>& worker_task_runner);
~UserMediaClientImpl() override;
MediaStreamDispatcher* media_stream_dispatcher() const {
@@ -282,19 +288,40 @@ class CONTENT_EXPORT UserMediaClientImpl
const ::mojom::MediaDevicesDispatcherHostPtr& GetMediaDevicesDispatcher();
- void SelectUserMediaDevice(
+ struct RequestSettings;
+
+ void SelectAudioInputDevice(
int request_id,
const blink::WebUserMediaRequest& user_media_request,
std::unique_ptr<StreamControls> controls,
- bool enable_automatic_output_device_selection,
- const url::Origin& security_origin,
+ const RequestSettings& request_settings,
const EnumerationResult& device_enumeration);
+
+ void SetupVideoInput(int request_id,
+ const blink::WebUserMediaRequest& user_media_request,
+ std::unique_ptr<StreamControls> controls,
+ const RequestSettings& request_settings);
+
+ void SelectVideoDeviceSourceSettings(
+ int request_id,
+ const blink::WebUserMediaRequest& user_media_request,
+ std::unique_ptr<StreamControls> controls,
+ const RequestSettings& request_settings,
+ std::vector<::mojom::VideoInputDeviceCapabilitiesPtr>
+ video_input_capabilities);
+
+ void FinalizeSelectVideoDeviceSourceSettings(
+ int request_id,
+ const blink::WebUserMediaRequest& user_media_request,
+ std::unique_ptr<StreamControls> controls,
+ const RequestSettings& request_settings,
+ const VideoCaptureSourceSelectionResult& selection_result);
+
void FinalizeRequestUserMedia(
int request_id,
const blink::WebUserMediaRequest& user_media_request,
std::unique_ptr<StreamControls> controls,
- bool enable_automatic_output_device_selection,
- const url::Origin& security_origin);
+ const RequestSettings& request_settings);
// Callback invoked by MediaDevicesEventDispatcher when a device-change
// notification arrives.
@@ -322,6 +349,8 @@ class CONTENT_EXPORT UserMediaClientImpl
blink::WebMediaDeviceChangeObserver media_device_change_observer_;
+ const scoped_refptr<base::TaskRunner> worker_task_runner_;
+
// Note: This member must be the last to ensure all outstanding weak pointers
// are invalidated first.
base::WeakPtrFactory<UserMediaClientImpl> weak_factory_;
« no previous file with comments | « content/renderer/media/mock_media_stream_dispatcher.cc ('k') | content/renderer/media/user_media_client_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698