MediaStreamGraph's underrun assertion fails when audio processing enabled

RESOLVED FIXED in Firefox 63

Status

()

defect
P2
normal
Rank:
15
RESOLVED FIXED
Last year
Last year

People

(Reporter: pehrsons, Assigned: pehrsons)

Tracking

60 Branch
mozilla63
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox63 fixed)

Details

Attachments

(1 attachment)

STR:
Import the patches from bug 1404977
Run the multiple-iframes mochitest with loopback devices on linux (I even need to hardcode them to real devices to trigger this)

Seems to trigger equally well on opt, debug and under rr.
Rank: 15
Priority: -- → P2
The logic here intends to (as is written in the comment) append one block of
silence to the track to allow for us to underrun one full scratch buffer.

The code doesn't match this behavior however, because if we are not underrunning
by less then a block, we end up appending *less* than a block. This causes us to
append at a later time as the scratch buffer can swallow more (up to a full
block) than we appended.

Without processing this seems to work because of timing and ordering, but
with processing (aec/agc/ns) we tend to add 71
(512 for an iteration - 441 packed) samples of silence,
leaving us to hit the assert with a 44% ((128-71)/128) chance during subsequent
iterations.
Comment on attachment 8996957 [details]
Bug 1480161: Fix underrun assert for processed input stream. r?achronop

Alex Chronopoulos [:achronop] has approved the revision.

https://phabricator.services.mozilla.com/D2644
Attachment #8996957 - Flags: review+
Pushed by pehrsons@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/c6bc352b5e62
Fix underrun assert for processed input stream. r=achronop
https://hg.mozilla.org/mozilla-central/rev/c6bc352b5e62
Status: ASSIGNED → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
You need to log in before you can comment on or make changes to this bug.