New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 647660 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 648155

Blocking:
issue 334244
issue 338503



Sign in to add a comment

Move device enumeration, caching and monitoring away from MediaStreamManager

Project Member Reported by guidou@chromium.org, Sep 16 2016

Issue description

MediaStreamManager is currently responsible for a lot of functionality, with some parts of it lower level than others.

For example, maintaining up-to-date device lists is a lower-level operation intended to support higher-level functions.

Maintenance and readability can improve if the lower-level concerns are separated from higher-level ones.

This is part of a plan intended to simplify a number of other tasks such as:
* Migrating IPC to Mojo.
* Implementing new required Blink-level functionality such as getting device capabilities and MediaStreamTrack.applyConstraints.
 

Comment 1 by guidou@chromium.org, Sep 16 2016

Owner: guidou@chromium.org
Status: Started (was: Untriaged)

Comment 2 by guidou@chromium.org, Sep 16 2016

Blocking: 334244 338503

Comment 3 by guidou@chromium.org, Sep 16 2016

Description: Show this description

Comment 4 by guidou@chromium.org, Sep 19 2016

Blockedon: 648155

Comment 5 by guidou@chromium.org, Sep 19 2016

As consequence of moving low-level enumeration to a generic new class, AudioOutputDeviceEnumerator becomes unnecessary.
AudioRendererHost must be updated to use the new mechanism.

Comment 6 by guidou@chromium.org, Sep 19 2016

Components: Blink>WebRTC
Project Member

Comment 7 by bugdroid1@chromium.org, Sep 23 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2

commit cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2
Author: guidou <guidou@chromium.org>
Date: Fri Sep 23 21:28:43 2016

Remove device enumeration, caching and monitoring from MediaStreamManager.

This CL introduces MediaDevicesManager, which is now responsible for low-level
device enumerations, including using device monitoring to maintain updated
caches.

This CL also removes the enumeration functionality from the MediaStreamProvider
interface, as MediaDevicesManager is the new class resnposible for providing
enumeration results to be used to handle renderer-generated enumeration requests
and device-change notifications. Due to this, relatively minor changes are made
to AudioInputDeviceManager and VideoCaptureManager.

BUG= 647660 

Review-Url: https://codereview.chromium.org/2350693002
Cr-Commit-Position: refs/heads/master@{#420735}

[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/BUILD.gn
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/audio_input_device_manager.cc
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/audio_input_device_manager.h
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/audio_input_device_manager_unittest.cc
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/audio_input_renderer_host.cc
[add] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/media_devices_manager.cc
[add] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/media_devices_manager.h
[add] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/media_devices_manager_unittest.cc
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/media_stream_manager.cc
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/media_stream_manager.h
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/media_stream_manager_unittest.cc
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/media_stream_provider.h
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/video_capture_manager.cc
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/video_capture_manager.h
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/browser/renderer_host/media/video_capture_manager_unittest.cc
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/common/BUILD.gn
[add] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/common/media/media_devices.cc
[add] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/common/media/media_devices.h
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/public/common/media_stream_request.h
[modify] https://crrev.com/cc6d460ef322ee5b6eb57736cdf5bdfb8f5c73d2/content/test/BUILD.gn

Comment 8 by guidou@chromium.org, Sep 26 2016

Status: Fixed (was: Started)

Comment 9 by guidou@chromium.org, Sep 26 2016

Status: Started (was: Fixed)
Project Member

Comment 10 by bugdroid1@chromium.org, Sep 26 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63931c20853b821d960649bb5ccd9b2f0332f245

commit 63931c20853b821d960649bb5ccd9b2f0332f245
Author: guidou <guidou@chromium.org>
Date: Mon Sep 26 19:21:58 2016

Remove AudioOutputDeviceEnumerator. Replace usage with MediaDevicesManager.

Drive-by:
  Stop using std::array literals to specify devices to enumerate. Use device types as indexes.
  This makes it easier to understand what is being requested and removes reliance on the order of elements in the array.

BUG= 647660 

Review-Url: https://codereview.chromium.org/2368213002
Cr-Commit-Position: refs/heads/master@{#420959}

[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/BUILD.gn
[delete] https://crrev.com/3507a14bb2e740978d034f7b6ad248b3a5281cb3/content/browser/renderer_host/media/audio_output_device_enumerator.cc
[delete] https://crrev.com/3507a14bb2e740978d034f7b6ad248b3a5281cb3/content/browser/renderer_host/media/audio_output_device_enumerator.h
[delete] https://crrev.com/3507a14bb2e740978d034f7b6ad248b3a5281cb3/content/browser/renderer_host/media/audio_output_device_enumerator_unittest.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/audio_renderer_host.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/audio_renderer_host.h
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/audio_renderer_host_unittest.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_devices_manager.h
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_devices_manager_unittest.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_stream_manager.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_stream_manager.h
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/test/BUILD.gn

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 26 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63931c20853b821d960649bb5ccd9b2f0332f245

commit 63931c20853b821d960649bb5ccd9b2f0332f245
Author: guidou <guidou@chromium.org>
Date: Mon Sep 26 19:21:58 2016

Remove AudioOutputDeviceEnumerator. Replace usage with MediaDevicesManager.

Drive-by:
  Stop using std::array literals to specify devices to enumerate. Use device types as indexes.
  This makes it easier to understand what is being requested and removes reliance on the order of elements in the array.

BUG= 647660 

Review-Url: https://codereview.chromium.org/2368213002
Cr-Commit-Position: refs/heads/master@{#420959}

[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/BUILD.gn
[delete] https://crrev.com/3507a14bb2e740978d034f7b6ad248b3a5281cb3/content/browser/renderer_host/media/audio_output_device_enumerator.cc
[delete] https://crrev.com/3507a14bb2e740978d034f7b6ad248b3a5281cb3/content/browser/renderer_host/media/audio_output_device_enumerator.h
[delete] https://crrev.com/3507a14bb2e740978d034f7b6ad248b3a5281cb3/content/browser/renderer_host/media/audio_output_device_enumerator_unittest.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/audio_renderer_host.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/audio_renderer_host.h
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/audio_renderer_host_unittest.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_devices_manager.h
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_devices_manager_unittest.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_stream_manager.cc
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/browser/renderer_host/media/media_stream_manager.h
[modify] https://crrev.com/63931c20853b821d960649bb5ccd9b2f0332f245/content/test/BUILD.gn

Status: Fixed (was: Started)
Cc: anatolid@chromium.org
Can the owner please set a milestone label to this issue?

FYI, the last CL associated with this issue has been added after the M54 branch was created and before the M55 branch was created, so perhaps it should be labelled as M55?
Labels: M-55

Sign in to add a comment