Closed Bug 1198588 Opened 4 years ago Closed 4 years ago

A/V sync is broken for media playback when AudioStream is opened in LowLatency mode

Categories

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

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla43
Tracking Status
firefox43 --- fixed

People

(Reporter: kinetik, Assigned: kinetik)

Details

Attachments

(1 file)

Discovered while testing, and not a high priority as media playback never uses AudioStream with LowLatency, but this should still work:

If AudioStream is opened with LatencyRequest::LowLatency, A/V sync is broken.  cubeb_stream_init is still opened with the default (high) latency of 100ms, so the only behaviour differences are in AudioStream itself.  There are a bunch of special cases for LowLatency, most suspect of which is the initial buffer prefill.
I was going to remove the LowLatency option for AudioStream, since it's not very useful: you're opening a stream in low latency mode, but you sticking a massive buffer in from of the callback, so it kind of defeats the purpose.
Oh right, this code is no longer used since MSG moved to the callback based architecture.  In that case, it looks like we can delete ~450 LOC from AudioStream.
Assignee: nobody → kinetik
Status: NEW → ASSIGNED
Ignore the first (now cancelled) try push, I missed removing another ~50 LOC.

This removes the following from AudioStream, all of which were added and used only for MSG purposes:

- Low latency mode
- Latency logger
- Async OpenCubeb
- Output panning for shared headset/mic devices on OS X
Attachment #8653240 - Flags: review?(padenot)
Comment on attachment 8653240 [details] [diff] [review]
bug1198588_v0.patch

Review of attachment 8653240 [details] [diff] [review]:
-----------------------------------------------------------------

Cool !
Attachment #8653240 - Flags: review?(padenot) → review+
https://hg.mozilla.org/mozilla-central/rev/b12b9840d67b
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
You need to log in before you can comment on or make changes to this bug.