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

Issue 668275 link

Starred by 5 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocking:
issue 647498
issue 663546



Sign in to add a comment

Convert AudioRendererSink::GetOutputDeviceInfo() to be async only.

Project Member Reported by dalecur...@chromium.org, Nov 23 2016

Issue description

There are too many issues with having this API be synchronous; from timeouts to render thread blocks. It makes more sense for it to take a callback and return the info once it's available. If we switched this API to be async we can remove the timeouts entirely or have them be informational only.

The clients which would be hard to convert are:

Cast Mojo Media Client:
https://cs.chromium.org/chromium/src/chromecast/media/service/cast_mojo_media_client.cc?q=GetOutputDeviceInfo&sq=package:chromium&l=77&dr=C

Track audio renderer:
https://cs.chromium.org/chromium/src/content/renderer/media/track_audio_renderer.cc?q=GetOutputDeviceInfo&sq=package:chromium&l=304&dr=C

WebRTC audio rendering:
https://cs.chromium.org/chromium/src/content/renderer/media/webrtc_audio_renderer.cc?q=GetOutputDeviceInfo&sq=package:chromium&l=200&dr=C
https://cs.chromium.org/chromium/src/content/renderer/media/webrtc_local_audio_source_provider.cc?q=GetOutputDeviceInfo&sq=package:chromium&dr=C

AudioRendererMixerManager::GetMixer()
https://cs.chromium.org/chromium/src/content/renderer/media/audio_renderer_mixer_manager.cc?q=GetOutputDeviceInfo&sq=package:chromium&l=193&dr=C

GetAudioHardwareParams:
https://cs.chromium.org/chromium/src/content/renderer/renderer_blink_platform_impl.cc?q=GetOutputDeviceInfo&sq=package:chromium&l=184&dr=C

Pepper Plugin instance:
https://cs.chromium.org/chromium/src/content/renderer/pepper/pepper_plugin_instance_impl.cc?q=GetOutputDeviceInfo&sq=package:chromium&dr=C


The steps to conversion would be:
- Introduce new async api, convert simple clients.
- Convert harder clients.
- Remove older API.
 
olka@ on another thread you indicated that fixing this was part of the Mojo audio process work. Is that still the case?

Comment 2 by olka@chromium.org, Nov 24 2016

Unfortunately, I was too optimistic. As you pointed out on that thread and here as well, we have quite a lot of clients to convert, and we don't have resources for that. It should be a separate effort. 
Owner: dalecur...@chromium.org
Status: Assigned (was: Untriaged)
Dale, do you want to keep it to yourself?
Labels: -OS-Linux OS-All
I guess that's usually what happens, so why not :)

Comment 5 by olka@chromium.org, Dec 14 2016

Blocking: 663546

Comment 6 by olka@chromium.org, Dec 16 2016

Blocking: 647498

Comment 7 by olka@chromium.org, Dec 16 2016

Cc: solenberg@chromium.org
Cc: -grunell@chromium.org dalecur...@chromium.org
Owner: grunell@chromium.org

Sign in to add a comment