Randell Jesup
unread,Nov 14, 2012, 1:52:07 PM11/14/12You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to rob...@ocallahan.org, Eric Rescorla, dev-...@lists.mozilla.org, Ralph Giles, Jan-Ivar Bruaroey, Ehsan Akhgari, Maire Reavy, Tim Terriberry, Paul Adenot
Adding Tim, Ralph and Jan-Ivar
On 11/13/2012 8:51 PM, Robert O'Callahan wrote:
> Randell, Maire and I talked about how to minimize latency for WebRTC
> and Web Audio with the MediaStreamGraph. I then talked about it some
> more with Ehsan and Paul.
>
> Here's a wiki page summarizing my understanding of where we should or
> could be with the current design (modulo bugs and scheduling
> uncertainty). It also has some suggestions for improving the design.
>
> Feedback appreciated.
>
> Rob
FYI (from dev.media): A December 2009 description of the Chromium
audio/video pipeline (for output), which is all pull-based: (I also sent
this back in July to mozilla.dev.media)
https://sites.google.com/a/chromium.org/dev/developers/design-documents/video
I'm investigating the *actual* code Chromium uses; while not the same
code as in
webrtc.org, it's tied into the
webrtc.org code at a low
level. See also bug 811695. Their direct input code at least through
the capture and channel stages is all push-based from the driver
callbacks (as expected).
See
https://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/media/webrtc_audio_device_impl.h?view=markup
for part of their code and some discussion of how it works. Note in
particular this:
// Then WebRtcAudioDeviceImpl::SetSessionId() needs to be called to set the
// session id that tells which device to use. The user can either get the
// session id from the MediaStream or use a value of 1 (AudioInputDeviceManager
// ::kFakeOpenSessionId), the later will open the default device without going
// through the MediaStream.
So their code can either take input from a mediastream directly, or can
open the default audio device directly, and then feed it into the
processing code (AGC, etc). I'm still looking for their
audio_device->MediaStream code.
Randell