Closed Bug 929138 Opened 11 years ago Closed 10 years ago

Provide audio stream-to-speakers to getUserMedia() to use for echo-cancelling microphone input

Categories

(Core :: WebRTC: Audio/Video, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla28

People

(Reporter: jesup, Assigned: padenot)

References

Details

(Whiteboard: [getusermedia])

To implement a full AEC for getUserMedia, where all channels are cancelled along with other browser-generated audio, we need access to the full, final output stream as close to where it goes to the OS/speakers as possible, including all underrun/overrun modifications.

It will likely be in the output clock domain, and input devices will be a different clock domain.  The AEC will need to compensate for that (as normal).  

We'll also want to know about any deeper-than-where-we-get-this-data underruns or overruns that will affect timing.  If we submitted 10ms of data to the lower levels (and reported it to the AEC/gUM), and then we're told there was an underrun down lower, we likely will need to reset/retrain the AEC.  Also notification (if possible) if the output device changes (speakers to headphones, etc) if we know.

Note that we may want such a signal to be async to the buffers being forwarded.

We'll want to use a lockless circular buffer for the audio data, likely, if possible.  (there's one in the mac webrtc driver IIRC)
Blocks: 694814
Assignee: nobody → paul
Target Milestone: --- → mozilla28
Fixed by 982490
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.