New issue
Advanced search Search tips

Issue 868026 link

Starred by 16 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 26
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Unable to access microphone on Huawei Matebook X Pro

Reported by larouche...@gmail.com, Jul 26

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36

Steps to reproduce the problem:
1. Go to any website or web app that makes use of the microphone. Must use a Matebook X pro. 
2. 
3. 

What is the expected behavior?
working microphone

What went wrong?
can not access microphone

Did this work before? N/A 

Chrome version: 68.0.3440.75  Channel: stable
OS Version: 10.0
Flash Version: 

Issue is with Huawei Matebook X Pro only. Latest drivers latest windows 10.

https://www.reddit.com/r/Huawei/comments/8nactr/matebook_x_pro_microphone_issue_in_chrome_please/?sort=new
 
Capture.PNG
30.7 KB View Download
Labels: Needs-Triage-M68
Bug report filed in the webrtc test github.
https://github.com/webrtc/testrtc/issues/272
I think the bug is related to this: https://bugs.chromium.org/p/chromium/issues/detail?id=855371
Labels: Triaged-ET Needs-Feedback
Tested the issue on chrome reported version# 68.0.3440.75 using windows-10 Surface pro with steps mentioned below:
1) Launched chrome reported version and opened New Tab page
2) Clicked on Mic icon, clicked on Allow access for microphone, and spoke youtube, able to navigate to nextpage

@Reporter: Please find the attached screencast for your reference and provide your inputs on it and let us know if this issue is specific to Huawei Matebook X Pro and try to test this issue by creating new person with no apps and extensions in it and let us know if the issue still persists.

Thanks!
868026.mp4
1.2 MB View Download
Hi, here's a google drive link for the video I just recorded. This computer has a quad microphone setup. https://drive.google.com/file/d/1cTIhK4fCWkHV5vHcljQ2eg9LNeK8zj-l/view?usp=sharing

Comment 6 Deleted

Project Member

Comment 7 by sheriffbot@chromium.org, Jul 27

Cc: viswa.karala@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Again, this bug is specific to something in the matebook x pro. Possibly the microphones. Workarounds include, using a wired or bluetooth microphone. Or use the internal quad microphones in Edge or Firefox!
Labels: TE-Hardware-Dependency
As per comment#8 the issue seems to be repro on Matebook X Pro only and it is not getting reproduced from TE end as per comment#4. Hence adding harware dependency label.

Thanks.!
Components: -UI Blink>GetUserMedia>Mic
Owner: ar...@chromium.org
Status: Assigned (was: Unconfirmed)
Labels: Needs-Feedback
It would be useful to see a trace from the Developers Tools console running navigator.mediaDevices.getUserMedia({audio: true}) to have an idea of whether the issue is cause by an exception on the device, or whether the input source is simply never detected.
Possibly using appr.tc to join a call could also be a viable option to verify what happens in such a case.
Waiting for someone to join this room: https://appr.tc/r/162203304
States:     
Signaling:  have-local-offer
Gathering:  complete
Connection: new
Local:      host:1 srflx:1 relay:2
Remote:     

Stats:      
Call time:  01:10
Setup time: 0 ms

Messages:  
Error getting user media: Could not start audio source
getUserMedia error: Failed to get access to local media. Error name was NotReadableError. Continuing without sending a stream.

Version:    
gitHash:    20cdd7652d58c9cf47ef92ba0190a5505760dc05
branch:     master
time:       Fri Mar 9 17:06:42 2018 +0100
Thanks for that. My suspicion is that the driver associated to the mic is actually failing to apply the coercion to use stereo. Could you enable logs and provide an extract related to a test call using appr.tc?

Enabling logging: http://www.chromium.org/for-testers/enable-logging
Here it is. I used Canary channel so it shouldn't contain any personal info, hopefully (I'm not signed into canary, just use it for testing.)
chrome_debug.log
1.7 MB View Download
Blockedon: 453876
I would say the log at line 1592 confirms the suspicion:

[5980:27768:0828/092437.626:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.

The driver does not know how to record stereo, while Chrome currently does not support 4 channels. I will set crbug/453876 as a blocker to this bug. As soon as we complete the multichannel support, we will come back to this to verify that it fixes the issue.
Cc: henrika@chromium.org
Blockedon: -453876
Cc: ar...@chromium.org
Owner: ossu@chromium.org
After obtaining the device I have done some tests, and got help from henrika to determine the root-cause of the issue. It turns out that the issue is not tied to having 2 channels per se but rather to the implementation of the windows specific part of the audio stack.

The problem resides in the type used for input_format_ (https://cs.chromium.org/chromium/src/media/audio/win/audio_low_latency_input_win.h?l=222&rcl=15a90436835a78e8438127b866bccb6769325af4) and the related code. When using WAVEFORMATEX (https://msdn.microsoft.com/en-us/library/windows/desktop/dd390970(v=vs.85).aspx), the assumption is that the code treats only mono or stereo. To deal with devices with more channels, the right type to use is WAVEFORMATEXTENSIBLE (https://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx), and as a result the code should be adjusted for that. I created a PoC just to determine if it is possible to successfully open the device, which indeed it is (crrev.com/c/1254064). The audio of this CL is however distorted so needs further work.

Hence I am removing the dependency on Issue 453876, since the device an be open when using only stereo. I am also reassigning the bug to ossu for further triaging.
Owner: henrika@chromium.org
Cc: grunell@chromium.org ossu@chromium.org
Status: Started (was: Assigned)
Project Member

Comment 21 by bugdroid1@chromium.org, Oct 25

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

commit 4e7696d420da6fbf39c556d0d904c2766860c9c1
Author: henrika <henrika@chromium.org>
Date: Thu Oct 25 16:55:23 2018

Adding multi-channel input support on Windows with minimal impact on all other input cases.

Focus is here to support one particular device and to adapt internally to its multi-channel
structure.

This CL adds a dependency of a channel layout called "discrete" for the input later on Windows.
It also ensures that the input device can be opened up with four channels, but these channels
are then downmixed to two channels to fit the renderer side.

Bug:  868026 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I2fc63802d99d9d438bdd9f8baf424b3d8cdfab65
Reviewed-on: https://chromium-review.googlesource.com/c/1268118
Commit-Queue: Henrik Andreasson <henrika@chromium.org>
Reviewed-by: Oskar Sundbom <ossu@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602760}
[modify] https://crrev.com/4e7696d420da6fbf39c556d0d904c2766860c9c1/content/renderer/media/stream/processed_local_audio_source.cc
[modify] https://crrev.com/4e7696d420da6fbf39c556d0d904c2766860c9c1/content/renderer/media/stream/track_audio_renderer.cc
[modify] https://crrev.com/4e7696d420da6fbf39c556d0d904c2766860c9c1/media/audio/audio_manager_base.cc
[modify] https://crrev.com/4e7696d420da6fbf39c556d0d904c2766860c9c1/media/audio/win/audio_low_latency_input_win.cc
[modify] https://crrev.com/4e7696d420da6fbf39c556d0d904c2766860c9c1/media/audio/win/audio_low_latency_input_win.h
[modify] https://crrev.com/4e7696d420da6fbf39c556d0d904c2766860c9c1/media/audio/win/audio_low_latency_input_win_unittest.cc
[modify] https://crrev.com/4e7696d420da6fbf39c556d0d904c2766860c9c1/media/audio/win/core_audio_util_win.cc
[modify] https://crrev.com/4e7696d420da6fbf39c556d0d904c2766860c9c1/media/audio/win/core_audio_util_win.h
[modify] https://crrev.com/4e7696d420da6fbf39c556d0d904c2766860c9c1/media/webrtc/audio_processor.cc

Status: Fixed (was: Started)
What chrome release is this expected to be included in? thank you everyone for helping fix this. <3
Will probably be included in M72 which will hit stable by the end of January.
But you can always try out the latest changes in Chrome Canary or see the change earlier in e.g. the Chrome dev channel.

Sign in to add a comment