Closed Bug 1692903 Opened 4 years ago Closed 4 years ago

Assertion failure: mSegment.GetDuration() <= buffering, at /home/pehrsons/dev/m-c-2/dom/media/webrtc/MediaEngineWebRTCAudio.cpp:638

Categories

(Core :: WebRTC: Audio/Video, defect, P2)

defect

Tracking

()

RESOLVED FIXED
87 Branch
Tracking Status
firefox87 --- fixed

People

(Reporter: pehrsons, Assigned: pehrsons)

Details

Attachments

(2 files)

I'm able to reproduce this assertion failure when starting a Google Meet meeting on a debug build.

In a case where the packetizer is used and NotifyInputData receives less than a
full packet on the first notification, the first Pull of input data will not
happen during the same iteration.

During the iteration where the first Pull of input data happens, commonly the
following iteration, the appropriate amount of buffering will be calculated.
This calculation will fail to accomodate the silence added in the Pulls since
input data was added to the packetizer but where no input data was pulled.

Thus when input data is pulled we get more than expected out of the packetizer,
and this sets off an assert.

In practice on a non-debug build this patch means that latency is consistently
low (10ms + 128 frames with the packetizer, 128 frames without). Without this
patch it could be up to a packet (10ms) higher when using the packetizer.

Pushed by pehrsons@gmail.com: https://hg.mozilla.org/integration/autoland/rev/5d4c56143e3a Add gtest. r=padenot https://hg.mozilla.org/integration/autoland/rev/3d4360e021fa Set mLiveFramesAppended in NotifyInputData instead of the first Pull. r=padenot

Backed out for Mingw bustage on MediaEngineWebRTC.h

backout: https://hg.mozilla.org/integration/autoland/rev/3c84d77266bf1e3d2b1590b571ca2f6265e3f8b6

push: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&searchStr=windows%2Cmingw%2Call%2Cmingw-clang%2Cbuilds%2Cfor%2Cwindows%2C64-bits%2Cbuild-win64-mingwclang%2Fdebug%2Cbd&revision=3d4360e021fa62a3dfc40df2295038622f7cfa96

failure log: https://treeherder.mozilla.org/logviewer?job_id=330241162&repo=autoland&lineNumber=57165

[task 2021-02-17T13:20:35.875Z] 13:20:35 INFO - In file included from /builds/worker/checkouts/gecko/dom/media/webrtc/MediaEngineWebRTCAudio.h:12:
[task 2021-02-17T13:20:35.875Z] 13:20:35 INFO - /builds/worker/checkouts/gecko/dom/media/webrtc/MediaEngineWebRTC.h:10:10: fatal error: 'CamerasChild.h' file not found
[task 2021-02-17T13:20:35.875Z] 13:20:35 INFO - #include "CamerasChild.h"
[task 2021-02-17T13:20:35.875Z] 13:20:35 INFO - ^~~~~~~~~~~~~~~~
[task 2021-02-17T13:20:35.875Z] 13:20:35 INFO - 1 error generated.
[task 2021-02-17T13:20:35.876Z] 13:20:35 ERROR - make[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:676: Unified_cpp_dom_media_gtest0.o] Error 1
[task 2021-02-17T13:20:35.876Z] 13:20:35 INFO - make[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/media/gtest'
[task 2021-02-17T13:20:35.876Z] 13:20:35 ERROR - make[3]: *** [/builds/worker/checkouts/gecko/config/recurse.mk:72: dom/media/gtest/target-objects] Error 2
[task 2021-02-17T13:20:35.876Z] 13:20:35 INFO - make[3]: *** Waiting for unfinished jobs....
[task 2021-02-17T13:20:35.876Z] 13:20:35 INFO - make[4]: Entering directory '/builds/worker/workspace/obj-build/dom/media/ipc'

Flags: needinfo?(apehrson)
Flags: needinfo?(apehrson)
Pushed by pehrsons@gmail.com: https://hg.mozilla.org/integration/autoland/rev/af1b5dadbdac Add gtest. r=padenot https://hg.mozilla.org/integration/autoland/rev/e0a9d31907d4 Set mLiveFramesAppended in NotifyInputData instead of the first Pull. r=padenot
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: