New issue
Advanced search Search tips

Issue 853693 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 10
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Regression



Sign in to add a comment

built-in microphone on linux no longer works

Project Member Reported by philipp....@googlemail.com, Jun 18 2018

Issue description

Chrome Version: 69.0.3452.0
OS: Linux, Ubuntu 16.04

What steps will reproduce the problem?
(1) go to https://webrtc.github.io/samples/src/content/peerconnection/pc1/
(2) make a call

What is the expected result?
the call works

What happens instead?
getUserMedia returns a NotFoundError.
navigator.mediaDevices.enumerateDevices() no longer shows the microphone.


This worked in M68, including 68.0.3440.15
Happy bisecT1
 

Comment 1 by guidou@chromium.org, Jun 18 2018

Cc: guidou@chromium.org
Labels: -Pri-3 Pri-1
Owner: ossu@chromium.org
Status: Assigned (was: Untriaged)
Bisected using https://guidou.github.io/enumdemo.html
Good builds show the built-in microphone. Bad builds exclude the built-in microphone. 

The bisect shows r562383 as the culprit.

ossu@: Can you take a look?

Comment 2 by guidou@chromium.org, Jun 18 2018

Labels: ReleaseBlock-Beta

Comment 3 by ossu@chromium.org, Jun 18 2018

That's unfortunate. :/

philipp.hancke: What's your configuration? Are you using a Mic that's plugged into an audio jack? If so, do you plug it in before going to the page or after?Is it never detected? 

Could you please run:
  pacmd list-cards
and post the output in this bug? I'd expect the microphone to become available once it's plugged in, but perhaps that's not working properly - or perhaps Chrome isn't updating properly once that happens.
dell xps13, built in microphone. I happen to be at the Stockholm office tomorrow if that helps.

Setting LANG or LC_ALL to C didn't help with stupid localization but here is the output:

fippo-XPS-13-9350:fippo ~> pacmd list-cards
1 card(s) available.
    index: 0
	name: <alsa_card.pci-0000_00_1f.3>
	driver: <module-alsa-card.c>
	owner module: 6
	properties:
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xdc328000 irq 284"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1f.3"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "9d70"
		device.product.name = "Sunrise Point-LP HD Audio"
		device.form_factor = "internal"
		device.string = "0"
		device.description = "Internes Audio"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	profiles:
		input:analog-stereo: Analog Stereo Eingang (priority 60, available: unknown)
		output:analog-stereo: Analog Stereo Ausgang (priority 6000, available: unknown)
		output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 6060, available: unknown)
		output:hdmi-stereo: Digital Stereo (HDMI) Ausgang (priority 5400, available: unknown)
		output:hdmi-stereo+input:analog-stereo: Digital Stereo (HDMI) Ausgang + Analog Stereo Eingang (priority 5460, available: unknown)
		output:hdmi-surround: Digital Surround 5.1 (HDMI) Ausgang (priority 300, available: unknown)
		output:hdmi-surround+input:analog-stereo: Digital Surround 5.1 (HDMI) Ausgang + Analog Stereo Eingang (priority 360, available: unknown)
		output:hdmi-surround71: Digital Surround 7.1 (HDMI) Ausgang (priority 300, available: unknown)
		output:hdmi-surround71+input:analog-stereo: Digital Surround 7.1 (HDMI) Ausgang + Analog Stereo Eingang (priority 360, available: unknown)
		output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Ausgang (priority 5200, available: unknown)
		output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo (HDMI 2) Ausgang + Analog Stereo Eingang (priority 5260, available: unknown)
		output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Ausgang (priority 100, available: unknown)
		output:hdmi-surround-extra1+input:analog-stereo: Digital Surround 5.1 (HDMI 2) Ausgang + Analog Stereo Eingang (priority 160, available: unknown)
		output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Ausgang (priority 100, available: unknown)
		output:hdmi-surround71-extra1+input:analog-stereo: Digital Surround 7.1 (HDMI 2) Ausgang + Analog Stereo Eingang (priority 160, available: unknown)
		output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Ausgang (priority 5200, available: unknown)
		output:hdmi-stereo-extra2+input:analog-stereo: Digital Stereo (HDMI 3) Ausgang + Analog Stereo Eingang (priority 5260, available: unknown)
		output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Ausgang (priority 100, available: unknown)
		output:hdmi-surround-extra2+input:analog-stereo: Digital Surround 5.1 (HDMI 3) Ausgang + Analog Stereo Eingang (priority 160, available: unknown)
		output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Ausgang (priority 100, available: unknown)
		output:hdmi-surround71-extra2+input:analog-stereo: Digital Surround 7.1 (HDMI 3) Ausgang + Analog Stereo Eingang (priority 160, available: unknown)
		off: Aus (priority 0, available: unknown)
	active profile: <output:analog-stereo+input:analog-stereo>
	sinks:
		alsa_output.pci-0000_00_1f.3.analog-stereo/#0: Internes Audio Analog Stereo
	sources:
		alsa_output.pci-0000_00_1f.3.analog-stereo.monitor/#0: Monitor of Internes Audio Analog Stereo
		alsa_input.pci-0000_00_1f.3.analog-stereo/#1: Internes Audio Analog Stereo
	ports:
		B-hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"
		B-hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"
		B-hdmi-output-2: HDMI / DisplayPort 3 (priority 5700, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"


i assume the
		input:analog-stereo: Analog Stereo Eingang (priority 60, available: unknown)
is causing the issue?

Comment 5 by ossu@chromium.org, Jun 18 2018

Hmm.. could be. My aim with the CL was to only reject inputs with available: no, but apparently something went wrong.

I'll try to fix it today, but if I'm unable to we might wanna try it in person tomorrow.

Thanks!

Comment 6 by ossu@chromium.org, Jun 18 2018

Seems I might've misinterpreted the 'ports' concept in my previous CL. I've uploaded a fix here: https://chromium-review.googlesource.com/c/chromium/src/+/1104433

philip: Would it be possible for you to try it out?

For me, this CL shows my analog input whenever I've plugged a headset into my computer, but not otherwise. There's a wider problem, though, and that is that changes to available ports in pulseaudio don't trigger device change notifications; if the application depends on that to re-enumerate devices, it won't pick up the change and you'll have to reload the page to see the device.

This can be fixed in the long term, but I'm not sure it's reasonable for M68. I'm considering reverting my previous CL for M68, instead. Or at least most of it. Perhaps the best short-term solution would be to mute the audio from monitor devices instead of refusing to open them.

Comment 7 by ossu@chromium.org, Jun 18 2018

Status: Started (was: Assigned)
ossu@: chrome builds take way too long for me but guido can reproduce the issue and might be able to try

Comment 9 by ossu@chromium.org, Jun 18 2018

I expected as much. :)
Guido and I have about the same setup, and we can reproduce it similarly. Your setup is slightly different, in that it's a built-in microphone (as opposed to a built-in audio device with a plug-in microphone).

If you're coming by the office tomorrow, perhaps I can prepare a build that we could try?
sounds like a plan!
If the device has a mic connected, it is enumerated, but gUM is still broken with the patch. Since it's not a device enumeration issue I will look into it a bit more and get back to you.
Owner: guidou@chromium.org
Status: Assigned (was: Started)
It turns out that I was having problems due to not having a mic connected, but the real culprit for the getUserMedia() error is probably something else.
Reassigning to me.

Comment 13 by ossu@chromium.org, Jun 18 2018

Wait, what? I don't think there's anything (newly) broken apart from the changes in my CL. What are you seeing?
After connecting a microphone to the jack, getUserMedia() does work well, with and without the patch.
The gUM() issues I was having was because I forgot I had removed all cameras :)
Let's try tomorrow on your machine.

Comment 15 by ossu@chromium.org, Jun 18 2018

Guido just made me aware that this isn't broken in M68, so there's not a great hurry to fix the surrounding issues. If the patch in #6 works, it should be applied and we'll have to look next at how to do proper device updates from PulseAudio as well.
Owner: ossu@chromium.org

Comment 17 by ossu@chromium.org, Jun 18 2018

Status: Started (was: Assigned)
Labels: M-69
M69 branch is coming soon on July 19th, Your bug is marked as ReleaseBlock-Beta for M69. Please try to land the fix ASAP to trunk in order to prevent many merges going after M69 branch. This will also help us to branch M69 from high quality trunk. Thank you.


Project Member

Comment 20 by bugdroid1@chromium.org, Jun 19 2018

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

commit 96352ebaff051b734e63f11a3877be91f7ecff20
Author: Oskar Sundbom <ossu@chromium.org>
Date: Tue Jun 19 12:58:53 2018

pulse: Only filter ported input devices with no available ports

Leave portless devices alone.

Bug:  853693 , b/79580580
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: I0e505b0f87fdb2b416ca080ad104ea6710e2ec6a
Reviewed-on: https://chromium-review.googlesource.com/1104433
Reviewed-by: Max Morin <maxmorin@chromium.org>
Commit-Queue: Oskar Sundbom <ossu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568416}
[modify] https://crrev.com/96352ebaff051b734e63f11a3877be91f7ecff20/media/audio/pulse/audio_manager_pulse.cc

thanks ossu! Will verify in a week (or two) that this still works as great as in the local build!
Cc: phanindra.mandapaka@chromium.org
Labels: Needs-Feedback
As per comment #0 steps we have tested this issue on reported chrome version 69.0.3452.0 and latest chrome version 69.0.3466.0.

As I am unable to reproduce the issue from our end on Ubuntu 17.10 on the reported version, requesting for help in verification of this.

Thanks.!
853693.webm
12.4 MB View Download
ossu@,
Friendly ping to get an update as per C#22.
Thanks..!
Cc: ligim...@chromium.org
Seems like the issue is fixed,  philipp.hancke@ would you mind verifying at your end?
69.0.3472.3 works again on my machine. Thanks ossu!
Status: Fixed (was: Started)
Marking as fixed by CL in #20 per comment #25.

Sign in to add a comment