Open Bug 1196108 Opened 9 years ago Updated 2 years ago

don't use external streams for offline destination node

Categories

(Core :: Web Audio, defect, P3)

defect

Tracking

()

Tracking Status
firefox43 --- affected

People

(Reporter: karlt, Unassigned)

References

(Blocks 1 open bug)

Details

Offline AudioDestinationNode doesn't usually need to write output to its AudioSegment because it is already copying the output to its AudioBuffer for the Promise. The only time anything else reads the output is when a MediaRecoder is attached. Skipping the output to the segment saves on memory allocations for the channel pointer arrays and can often mean that the input buffer can be reused without reallocation in the next iteration. The patches at https://treeherder.mozilla.org/#/jobs?repo=try&revision=76630c87e4c8 save about 10% on simple gain and upmix/downmix benchmarks. However, tests are failing due to an existing bug that means that MediaRecoder recording an AudioNode without external output in an offline context does not know when the stream is finished. Perhaps it may be possible to set mFinished on mPipeStream from NotifyFinished() on the AudioNode stream.
Depends on: 1197043
Paul -- I talked with Karl today, and while this is a perf issue, it's unlikely to be needed for "parity" with competitors. If you disagree, please let us know. Thanks.
Blocks: webaudioperf
No longer blocks: webaudioperf_parity
On further consideration, let's keep it on the list, but make it the lowest priority. Karl points out that it will help with gain benchmarks (probably at least 10%). And by keeping this on the short list, it stays on our radar.
Blocks: webaudioperf_parity
No longer blocks: webaudioperf
Rank: 19
Priority: -- → P1
Rank: 19 → 25
Priority: P1 → P2
Mass change P2->P3 to align with new Mozilla triage process.
Priority: P2 → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.