Media/WebRTC Audio Issues: Difference between revisions

Jump to navigation Jump to search
Line 19: Line 19:
=== Increases in delay and loss of sync -- {{bug|879213}} ===
=== Increases in delay and loss of sync -- {{bug|879213}} ===
* Clock-domain mismatches need a resampler to avoid possible latency buildup -- <strike>{{bug|884365}}</strike>
* Clock-domain mismatches need a resampler to avoid possible latency buildup -- <strike>{{bug|884365}}</strike>
* Underflows in MSG cause MSG to "slip" the stream, such that later data is permanently delayed. {{bug|901831}}, {{bug|901539}}.  A resampler can treat just slips as clock jitter -- {{bug|884365}}, though if the underflow is serious enough we may need to simply drop audio.
* Underflows in MSG cause MSG to "slip" the stream, such that later data is permanently delayed. {{bug|901831}}, {{bug|901539}}.  A resampler can treat just slips as clock jitter -- {{bug|908834}}, though if the underflow is serious enough we may need to simply drop audio.
* Reducing load on MSG in callbacks (NotifyPush(), NotifyQueuedTrackChanges()) will reduce the odds of MSG underflowing.  See {{bug|884365}} for reduction in the largest CPU consumer (Opus Encode + AEC).  Also see {{bug|901831}} for an odd windows-only two-browser interaction.
* Reducing load on MSG in callbacks (NotifyPush(), NotifyQueuedTrackChanges()) will reduce the odds of MSG underflowing.  See <strike>{{bug|884365}}</strike> for reduction in the largest CPU consumer (Opus Encode + AEC).  Also see {{bug|901831}} for an odd windows-only two-browser interaction.
 
=== MediaStreamGraph fundamental latency and backend output latency (see [[Gecko:MediaStreamLatency]]) ===
=== MediaStreamGraph fundamental latency and backend output latency (see [[Gecko:MediaStreamLatency]]) ===
* Because MediaStreamGraph reclocks and plays out from the MSG, it has to keep a minimal buffering level to avoid underflow.  This adds 15-30ish ms of input-side latency (and output latency, though output clocking MSG will reduce that).  Note that correcting this may require different audio streams for internal versus PeerConnection/"realtime" streams.  See patch on {{bug|884365}}
* Because MediaStreamGraph reclocks and plays out from the MSG, it has to keep a minimal buffering level to avoid underflow.  This adds 15-30ish ms of input-side latency (and output latency, though output clocking MSG will reduce that).  Note that correcting this may require different audio streams for internal versus PeerConnection/"realtime" streams.  See patch on {{bug|884365}}
Confirmed users
325

edits

Navigation menu