SetSinkId: Enable setSinkId through MSG
Categories
(Core :: Audio/Video: MediaStreamGraph, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox79 | --- | fixed |
People
(Reporter: achronop, Assigned: achronop)
References
Details
Attachments
(4 files)
Tried this just now on meet.google.com with the pref media.setsinkid.enabled
set to true
on MacOS 10.15.3 (19D76) with Firefox Nightly 76.0a1 (2020-03-29) (64-bit)
It does not work for WebRTC during the call but does work for the 'Test' audio bit (likely a local file)
What's the status?
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
Thanks for the response (on multiple bugs) Alex! Looking forward to some testing for this bug when ready.
Assignee | ||
Comment 4•4 years ago
|
||
The name of the two new tracks is CrossGraphTransmitter and CrossGraphReceiver. They are used together to transfer the audio data of the transmitter to the receiver which belongs to different MTG. In addition to that a CrossGraphManager class has been created that creates the connection between the transmitter and the receiver and can redirect to the correct track some operations like the volume change etc.
Assignee | ||
Comment 5•4 years ago
|
||
A new method has been added in AudioStreamTrack to allow the change of the output device. Also, the methods that add/remove the AudioOutput or Volume have been enhanced to use the CrossGraphManager, when available, in order to set the AudioOutput or volume to the correct MediaTrack.
Depends on D77807
Assignee | ||
Comment 6•4 years ago
|
||
The SetSinkId method of HTMLMediaElement has been enhanced to handle the sink change when the element is sourced with a MediaObject through the srcObject attribute. It makes use in the corresponding method of AudioStreamTrack taking into account the AudioOutput and Volume that has to be removed and re-added to the right track.
Depends on D77808
Assignee | ||
Comment 7•4 years ago
|
||
The GetSinkDevice
method is used for the output device enumeration and verification. The result of the enumeration is an object that includes the low-level device id even if the device is the preferred one. In that case, the device id is replaced with null in order to use it directly with the rest of the logic.
Depends on D77809
Assignee | ||
Comment 8•4 years ago
|
||
Comment 10•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/8d4faaf6604c
https://hg.mozilla.org/mozilla-central/rev/49c83d2045f1
https://hg.mozilla.org/mozilla-central/rev/9ad8f66fbc7c
https://hg.mozilla.org/mozilla-central/rev/00372b81041d
Description
•