Closed
Bug 1385258
Opened 7 years ago
Closed 7 years ago
On Linux, use dummy audio devices for WebRTC
Categories
(Core :: WebRTC: Audio/Video, enhancement, P1)
Core
WebRTC: Audio/Video
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: padenot, Assigned: padenot)
References
Details
(Keywords: stale-bug)
Attachments
(1 file)
It's quite wasteful to use the normal devices, it does tons of IPC and such, and we're using cubeb regardless.
Assignee | ||
Updated•7 years ago
|
Assignee: nobody → padenot
Rank: 18
Priority: -- → P1
Comment hidden (mozreview-request) |
Comment 2•7 years ago
|
||
mozreview-review |
Comment on attachment 8891322 [details] Bug 1385258 - Use dummy audio device with WebRTC on Linux. https://reviewboard.mozilla.org/r/162526/#review167792
Attachment #8891322 -
Flags: review?(dminor) → review+
Comment on attachment 8891322 [details] Bug 1385258 - Use dummy audio device with WebRTC on Linux. With the patch applied neither PulseAudio-only (default) nor ALSA-only work on FreeBSD. getUserMedia test fails with: "NotFoundError: The object can not be found here.". https://mozilla.github.io/webrtc-landing/gum_test.html
Attachment #8891322 -
Flags: feedback-
Comment 4•7 years ago
|
||
Perhaps we should revert the changes to include_alsa_audio and include_pulse_audio in gyp.mozbuild, and add 'OS!="freebsd"'" to the changes to audio_device.gypi so we only get the DummyAudio device on Linux and not FreeBSD. Does this mean we do not use cubeb on FreeBSD?
Comment 5•7 years ago
|
||
mozreview-review |
Comment on attachment 8891322 [details] Bug 1385258 - Use dummy audio device with WebRTC on Linux. https://reviewboard.mozilla.org/r/162526/#review167806
Attachment #8891322 -
Flags: review+
Can you explain why this is Linux-specific? Why not just define include_internal_audio_device=0 on all platforms?
(In reply to Dan Minor [:dminor] from comment #4) > Does this mean we do not use cubeb on FreeBSD? It does or HTML5 audio wouldn't work. Do you mean WebRTC in particular? Looking under dom/media/webrtc/ I don't see Linux-specific code, so any backend that implements .enumerate_devices op should work. Here's what about:support shows: PulseAudio: Media Audio Backend pulse-rust Max Channels 2 Preferred Channel Layout stereo Preferred Sample Rate 44100 Output Devices Name Group Vendor State Preferred Format Channels Rate Latency /dev/dsp0 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 /dev/dsp1 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 /dev/dsp2 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 /dev/dsp3 Enabled All default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 /dev/dsp4 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 /dev/dsp5 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 /dev/dsp6 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 Input Devices Name Group Vendor State Preferred Format Channels Rate Latency Monitor of /dev/dsp0 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 Monitor of /dev/dsp1 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 Monitor of /dev/dsp2 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 /dev/dsp3 Enabled All default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 Monitor of /dev/dsp3 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 /dev/dsp4 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 Monitor of /dev/dsp4 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 Monitor of /dev/dsp5 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 Monitor of /dev/dsp6 Enabled None default: S16LE, support: S16LE S16BE F32LE F32BE 2 default: 44100, support: 1 - 384000 0 - 0 ALSA: Media Audio Backend alsa Max Channels 10000 Preferred Channel Layout unknown Preferred Sample Rate 44100 Output Devices Name Group Vendor State Preferred Format Channels Rate Latency default default default Enabled All default: S16LE, support: S16LE 10000 default: 44100, support: 44100 - 44100 0 - 0 Input Devices Name Group Vendor State Preferred Format Channels Rate Latency default default default Enabled All default: S16LE, support: S16LE 10000 default: 44100, support: 44100 - 44100 0 - 0
Comment hidden (obsolete) |
https://treeherder.mozilla.org/#/jobs?repo=try&revision=453662806b10f6363d9213e29e8ddf3344e09924 # Linux-only https://treeherder.mozilla.org/#/jobs?repo=try&revision=74f07f05bb3b1669e9301e38d15649b6319ae779 # all platforms
Comment 10•7 years ago
|
||
This is an assigned P1 bug without activity in two weeks. If you intend to continue working on this bug for the current release/iteration/sprint, remove the 'stale-bug' keyword. Otherwise we'll reset the priority of the bug back to '--' on Monday, August 28th.
Keywords: stale-bug
Comment 11•7 years ago
|
||
Does FreeBSD set the media.navigator.audio.full_duplex pref to true? That seems to be required for WebRTC to use Cubeb instead of the media/webrtc/... audio layer, if I'm reading the code around https://searchfox.org/mozilla-central/rev/18c16ebf818abb86805ce08a6e537e4cd826f044/dom/media/webrtc/MediaEngineWebRTC.cpp#317 correctly.
Comment 12•7 years ago
|
||
(In reply to Jed Davis [:jld] (⏰UTC-6) from comment #11) > Does FreeBSD set the media.navigator.audio.full_duplex pref to true? No. With the pref enabled PulseAudio works fine but ALSA shows "NotReadableError: Failed to allocate audiosource" probably because FreeBSD uses OSS plugin instead of in-kernel support.
Comment 13•7 years ago
|
||
Can you drop media.navigator.audio.full_duplex=false support if you plan to break it on any/all platform?
Flags: needinfo?(padenot)
Comment 14•7 years ago
|
||
JACK also shows "NotReadableError: Failed to allocate audiosource" with media.navigator.audio.full_duplex=true on FreeBSD. With the patch applied the pref has no effect, similar to comment 3.
Assignee | ||
Comment 15•7 years ago
|
||
Instead of continuing to use old interfaces in webrtc.org that are not supported upstream, we'll take the proper route and modify gecko to use the new, supported audio processing interfaces. I'm closing this, because it's not relevant anymore. It's hacky, fragile, and hurts downstream maintainers.
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: needinfo?(padenot)
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•