Closed Bug 1409272 Opened 2 years ago Closed 2 years ago

Silence being inserted when data is appended slowly


(Core :: Audio/Video: Playback, enhancement)

55 Branch
Not set



Tracking Status
firefox58 --- fixed


(Reporter: jya, Assigned: jya)


(Blocks 1 open bug, )



(2 files)

In bug 1400674, we fixed A/V sync when silence were being inserted in the stream.

However, we should make sure no silence are needed in the first place.

As data is being fed slowly, the decoding engine hits the end of the buffered range often. The MFT then enters WAITING_FOR_DATA condition which causes a drain + seek.

When using vorbis, the decoder always drops the first compressed packet, causing gaps in the data being played. We need to either seek before the target or not drain+seek the decoder.

Draining the audio decoder shouldn't be required, however this has unwanted side effect with the windows AAC decoder that requires Drain to be called in order to fix timestamps.
I don't see a way to get what we want without explicitly calling Drain on the WMF audio decoder.

So will instead implement a pre-roll like we have for opus.
Assignee: nobody → jyavenard
Comment on attachment 8919306 [details]
Bug 1409272 - P2. Pre-roll vorbis by 80ms when seeking.
Attachment #8919306 - Flags: review?(gsquelart) → review+
Comment on attachment 8919305 [details]
Bug 1409272 - P1: Remove unnecessary and/or unused variables.
Attachment #8919305 - Flags: review?(jwwang) → review+
Pushed by
P1: Remove unnecessary and/or unused variables. r=jwwang
P2. Pre-roll vorbis by 80ms when seeking. r=gerald
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
You need to log in before you can comment on or make changes to this bug.