Closed Bug 1914925 Opened 2 months ago Closed 23 days ago

Apple Studio Display Microphone Not Working

Categories

(Core :: Audio/Video: cubeb, defect, P2)

Firefox 129
defect

Tracking

()

RESOLVED FIXED
132 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr128 --- unaffected
firefox130 --- wontfix
firefox131 --- fixed
firefox132 --- fixed

People

(Reporter: jmkenz, Assigned: pehrsons)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(2 files)

Steps to reproduce:

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:129.0) Gecko/20100101 Firefox/129.0.

Using a MacBook Pro (macOS 14.5) with an Apple Studio Display connected, visit a website that requires microphone access and that gives you a choice of which microphone to use. For example, https://codepen.io/eddch/pen/ZMOjPL or https://online-voice-recorder.com.

Give the website permission to use the Apple Studio Display Microphone (or all microphones). Use the website's UI to ensure you have selected Apple Studio Display Microphone as your selected microphone.

Try to record some sound and see that you either receive an error or record silence.

By contrast, select the MacBook Pro Microphone instead. Ensure the MacBook Pro lid is open. Try recording again and confirm it is successfully able to capture sound.

Actual results:

You either receive an error or record silence.

Expected results:

The website should have successfully captured sound from the Apple Studio Display Microphone.

Note that the Apple Studio Display Microphone is functioning normally when doing these same steps in Chrome.

Please move if there is a better product/component for this bug.

Component: Untriaged → Audio/Video
Product: Firefox → Core

Moving to WebRTC: Audio/Video.

Component: Audio/Video → WebRTC: Audio/Video

Does this happen only when the Studio Display is also default speaker on your system?
If so, a known issue with VPIO, happens in Safari as well, and reported to Apple.
The symptoms I've seen is that sometimes (not 0% and not 100%, but the rate may vary between Firefox and Safari) it works as expected, other times the input audio we receive from the Studio Display Mic is actually the output audio from the Studio Display Speakers. I.e. it appears to be an AEC reference stream mixup.

We have a block list for this particular case though, so I wonder why that is not working.

I might see a bug here. Could you confirm whether input audio starts working 10 seconds into the capture, when it starts out broken? Also, on about:config, does setting the pref media.getusermedia.microphone.voice_stream_priming.enabled to false prior to starting the capture help?

Tentatively marking the regression on this assumption.

Assignee: nobody → apehrson
Flags: needinfo?(jmkenz)
Keywords: regression
Regressed by: 1903002

Thank you Andreas, you're onto something!

  • This does happen only when the Studio Display is also default speaker on your system.
  • Waiting for 10 seconds does not help.
  • Setting media.getusermedia.microphone.voice_stream_priming.enabled to false does overcome the issue. However, on https://codepen.io/eddch/pen/ZMOjPL, if I initially select Studio Display Mic and then switch to a different mic and then reselect the Studio Display Mic, then it no longer works.
Flags: needinfo?(jmkenz)

(In reply to James McKenzie from comment #5)

Thank you Andreas, you're onto something!

  • This does happen only when the Studio Display is also default speaker on your system.
  • Waiting for 10 seconds does not help.
  • Setting media.getusermedia.microphone.voice_stream_priming.enabled to false does overcome the issue. However, on https://codepen.io/eddch/pen/ZMOjPL, if I initially select Studio Display Mic and then switch to a different mic and then reselect the Studio Display Mic, then it no longer works.

Ok, thanks. I might be able to improve this, but I'm not sure I can fix it entirely. Please also file with Apple through Feedback Assistant on SDKs/Core Audio that the VoiceProcessingIO audio unit frequently doesn't provide the correct input stream when Studio Display is used for both input and output.

Component: WebRTC: Audio/Video → Audio/Video: cubeb

Tested and confirmed.

Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true

Set release status flags based on info from the regressing bug 1903002

Looks like a 1-liner will do: https://github.com/mozilla/cubeb-coreaudio-rs/pull/235

Hopefully this issue is not triggered for non-VPIO units using the Studio Display devices when setting up VPIO for other devices. I haven't tested that thoroughly. That wouldn't be an issue we can address anyway, and it is much more of a corner case than the reported issue.

Severity: -- → S3
Priority: -- → P2
Pushed by pehrsons@gmail.com: https://hg.mozilla.org/integration/autoland/rev/d80f46ac8396 Update cubeb-coreaudio-rs to revision 2407441a2f. r=cubeb-reviewers,padenot
Status: ASSIGNED → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 132 Branch
Attachment #9425194 - Flags: approval-mozilla-beta?

beta Uplift Approval Request

  • User impact if declined: Apple Studio Display microphone doesn't work in some situations
  • Code covered by automated testing: no
  • Fix verified in Nightly: no
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing: None
  • Risk associated with taking this patch: Very low
  • Explanation of risk level: Trivial change, blocking the macOS voice processing audio unit for the Studio Display in input-only cases
  • String changes made/needed: None
  • Is Android affected?: no

Comment on attachment 9425194 [details]
Bug 1914925 - Update cubeb-coreaudio-rs to revision 2407441a2f. r?#cubeb-reviewers

Approved for 131.0b8

Attachment #9425194 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Comment on attachment 9425194 [details]
Bug 1914925 - Update cubeb-coreaudio-rs to revision 2407441a2f. r?#cubeb-reviewers

Backed out of beta for causing lint failures
try build
Back out link: https://hg.mozilla.org/releases/mozilla-beta/rev/cde74cd18107f85b974bfafb94e7868b24a87e22
Failure push
Failure log

Attachment #9425194 - Flags: approval-mozilla-beta+ → approval-mozilla-beta?
Attachment #9425194 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

I tried this out using Firefox 131 today, and it is working when you select Apple Studio Display Microphone as your initial microphone choice when first visiting https://codepen.io/eddch/pen/ZMOjPL.

However, if I then choose a different microphone, and then switch back to Apple Studio Display Microphone, it no longer picks up any sound.

Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Blocks: 1922588

Let's continue in bug 1922588.

Status: REOPENED → RESOLVED
Closed: 1 month ago23 days ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: