[meta] Update libwebrtc to new stable branch 2H2020
Categories
(Core :: WebRTC, enhancement, P2)
Tracking
()
People
(Reporter: ng, Assigned: pehrsons)
References
(Depends on 13 open bugs, Blocks 18 open bugs, Regressed 5 open bugs)
Details
(Keywords: meta)
Crash Data
Attachments
(297 files, 46 obsolete files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
Bug 1654112 - Update USE_X11 to WEBRTC_USE_X11 like rest of libwebrtc, in desktop_capturer.cc. r?ng!
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
This bug tracks the work necessary for the next libwebrtc update (2H 2020).
Information needed to perform this update is documented at https://wiki.mozilla.org/Media/WebRTC/libwebrtc_Update_2H2020 .
The process is documented at https://wiki.mozilla.org/Media/WebRTC/libwebrtc_Update_Process .
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Assignee | ||
Comment 2•3 years ago
|
||
This code comes from the rollup of previous local patches to upstream, see
https://hg.mozilla.org/mozilla-central/rev/c8e80efab6fb
Updated•3 years ago
|
Assignee | ||
Comment 3•3 years ago
|
||
This is needed to not regress stats. The milliseconds unit is more prevalent in
upstream stats code for timestamps.
Assignee | ||
Comment 4•3 years ago
|
||
This is similar to how it's already included for video send.
Assignee | ||
Comment 5•3 years ago
|
||
Assignee | ||
Comment 6•3 years ago
|
||
Assignee | ||
Comment 7•3 years ago
|
||
Assignee | ||
Comment 8•3 years ago
|
||
Assignee | ||
Comment 9•3 years ago
|
||
This switches those integrations to the new Call API, with AudioSendStream and
AudioReceiveStream as main API surface.
Assignee | ||
Comment 10•3 years ago
|
||
Assignee | ||
Comment 11•3 years ago
|
||
Assignee | ||
Comment 12•3 years ago
|
||
Assignee | ||
Comment 13•3 years ago
|
||
This will be used in PeerConnectionImpl for packetsReceived on the send side (from
rtcp).
Assignee | ||
Comment 14•3 years ago
|
||
For AudioConduit this patch:
- Uses correct threads per upstream, pending changes due to the threading model
update that's coming - Uses new upstream APIs for getting data for the stats
For VideoConduit this patch:
- Removes the stats polling 1-second timer on main thread
- Removes the internal stats classes for bridging stats between main and sts
threads - Uses correct threads for direct access per upstream's thread checkers, pending
changes due to the threading model
For PeerConnectionImpl and RTCRtpReceiver this patch:
- Manages thread access into conduits for thread safety
- Translates from the upstream Stats data models into our DOM data model
Assignee | ||
Comment 15•3 years ago
|
||
These fixes are made to reflect the current state of upstream.
Assignee | ||
Comment 16•3 years ago
|
||
This sets up our code for creating Call instances so that it works. A number of
things are left to do. Most notable fixing the threading model.
Until that is fixed we use main thread as a "worker" but this is not ideal.
It both leads to excessive work loads on main, and us having to set main as
"current" (using upstream's API for this) whenever we call into main from what
is meant to be the worker thread.
Assignee | ||
Comment 17•3 years ago
|
||
Assignee | ||
Comment 18•3 years ago
|
||
Assignee | ||
Comment 19•3 years ago
|
||
Doing this outside of the dtor, especially, removes the requirement of the
conduit having to be destroyed on the worker thread (main).
Not having threading requirements on the conduits' dtor means we can constify
conduit members everywhere, so this patch tries to do that, for added compiler
guarantees.
Assignee | ||
Comment 20•3 years ago
|
||
Assignee | ||
Comment 21•3 years ago
|
||
This assert was intended for when an input stream is started with processing on.
However, when an input stream is started with processing off, then later when
processing is turned on it triggers this assert because mSegment contains data
from InsertInGraph().
Depends on D102289
Assignee | ||
Comment 22•3 years ago
|
||
The new AudioProcessingImpl, and in particular AEC3 it seems, is more picky on
the ordering here. After an ApplyConfig() it needs ProcessStream() to properly
set up its internals. ProcessReverseStream sets off various asserts, for
instance because the processing sample rate is not divisible by 16k if
ProcessReverseStream() was fed 44.1k.
Assignee | ||
Comment 23•3 years ago
|
||
The input stream is not processed in passthrough, so we should skip feeding the
reverse stream too, to stay in sync.
Assignee | ||
Comment 24•3 years ago
|
||
Assignee | ||
Comment 25•3 years ago
|
||
Assignee | ||
Comment 26•3 years ago
|
||
This should also work with libwebrtc 64 currently in-tree.
Assignee | ||
Comment 27•3 years ago
|
||
This removes some prefs for things that are now unconfigurable, and adds some
others. This also re-works the plumbing for updating the config on the fly
through applyConstraints(). It is now simpler, with a single infallible call
to apply the new config.
Assignee | ||
Comment 28•3 years ago
|
||
Before this patch, if the data callback contained less data than was left over
from the last iteration, we'd skip iterating the graph again. The graph is
however is capable of 0-iterations.
This patch removes that optimization so that every data callback results in an
iteration.
This makes it easier to defer processing input data to the track processing
step, as is needed by the next patch in this stack, to keep input and output as
handed to AudioProcessing in sync as config changes are applied with
ControlMessages (in between input and output data notifications). With input
data processing deferred, ControlMessages are run first, then processing of
input data and last processing of output data.
Assignee | ||
Comment 29•3 years ago
|
||
These previously allowed a discontinuity at the beginning of the output stream.
This will no longer occur.
Assignee | ||
Comment 30•3 years ago
|
||
This is similar to the behavior prior to bug 1532898, which introduced telemetry
reporting every second. There's a bit of a difference in that we only report
data if we had collected some though the 1 second interval telemetry timer in
PeerConnectionCtx.
Assignee | ||
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Comment 31•3 years ago
|
||
Assignee | ||
Comment 32•3 years ago
|
||
Assignee | ||
Comment 33•3 years ago
|
||
This patch uses mMutex to guarantee that the audio thread does not get things
pulled away from under its feet. When on the AudioProxyThread we allow blocking
the thread during negotiation. On the real audio thread we avoid blocking on
the mutex and return an error instead. This leads to us inserting silence --
which is fine since we're going through negotiation (call setup, teardown or
re-negotiation).
This also fixes the channel count when GetAudioFrame fails and we insert
silence, to use the same channel count as when we last appended real data. Since
changing the channel count can in the worst case cause a GraphDriver switch.
Assignee | ||
Comment 34•3 years ago
|
||
Assignee | ||
Comment 35•3 years ago
|
||
Prior to this patch, WebRtcCallWrapper would never clear the call instance,
meaning that it went away as the classes having references to WebRtcCallWrapper
also went away. These are mainly TransceiverImpl and PeerConnectionMedia. There
are other classes too, but these are the ones that have a strong-ref to
WebRtcCallWrapper and are cycle collected.
With the worker threads in libwebrtc now using our own TaskQueues on top of
our SharedThreadPool instances, the ownership model of the Call instances
becomes problematic.
On shutdown, xpcom-shutdown-threads happens before the cycle collector is shut
down.
xpcom-shutdown-threads will however, block shutdown until all SharedThreadPools
have been shut down.
If a TransceiverImpl sits around until shutdown it will only be destroyed
during cycle collector shutdown. And, alas, we reach a deadlock as we're stuck
in xpcom-shutdown-threads until that TransceiverImpl gets destroyed.
This patch decouples the Call instance lifetime from the cycle collector, and
avoids the shutdown hang.
Assignee | ||
Comment 36•3 years ago
|
||
This is especially prompted by a recurring task from libwebrtc that when run
will schedule itself again, which on a shut down TaskQueue will fail an assert.
The behavior with this patch better mirrors blink's behavior, and is what
libwebrtc expects.
Assignee | ||
Comment 37•3 years ago
|
||
Assignee | ||
Comment 38•3 years ago
|
||
This prepares VideoConduit for the decoder/encoder factory and its handling of
PluginID.
Assignee | ||
Comment 39•3 years ago
|
||
This hooks up VideoReceiveStream::Config with a decoder factory and
VideoSendStream::Config with both a bitrate allocator factory and an encoder
factory.
The factories are new and wraps all the types of decoders and encoders that we
could create prior to this patch. This patch lets libwebrtc create our codecs
on demand, allowing for reconfiguring the streams and changing codec on the fly.
Some extra care had to be taken to ensure that GMP PluginIDs can be properly
plumbed. This has been implemented with MediaEvent and MozPromise.
Some other changes are made too, as warranted by runtime or threading changes.
Assignee | ||
Comment 40•3 years ago
|
||
Assignee | ||
Comment 41•3 years ago
|
||
With the libwebrtc update codecs will be created off-main.
WebrtcGmpPCHandleSetter not only adds a lot of indirection, it is also
main-thread-only. With this patch we can create gmp codecs on any thread.
Assignee | ||
Comment 42•3 years ago
|
||
Assignee | ||
Comment 43•3 years ago
|
||
Assignee | ||
Comment 44•3 years ago
|
||
Comment 45•3 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=48ee2324cf10f39f6d55d4bed668403e0752e9c3
Updated•3 years ago
|
Assignee | ||
Comment 46•3 years ago
|
||
The RTPFragmentationHeader is gone. Instead the packetizer scans for NALU start
sequences. OpenH264 encodes them natively, but converts them to NALU sizes
as expected by GMP.
This patch puts the start sequences back in, in-place, and mitigates bug 1533001
by allowing the start sequences that leak through from OpenH264 straight through
to libwebrtc, as an audit of OpenH264 code shows this can happen when internally
OpenH264 reports a NAL count of 0.
Comment 47•3 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=a97cc1147107fb94d211d502aeebe386b5ec055b
Assignee | ||
Comment 48•3 years ago
|
||
Comment 49•3 years ago
|
||
Comment 50•3 years ago
|
||
Comment 51•3 years ago
|
||
Depends on D102953
Comment 52•3 years ago
|
||
Depends on D105009
Comment 53•3 years ago
|
||
Depends on D105010
Comment 54•3 years ago
|
||
Depends on D105011
Comment 55•3 years ago
|
||
Depends on D105012
Comment 56•3 years ago
|
||
Depends on D105013
Comment 57•3 years ago
|
||
- Pull in sdk/objc/base and sdk/objc/helpers
- Ensure that -fobjc-arc is set (have to use cflags, because our gn -> json scripting ignores things like cflags_objc)
- Add gclient_args.gni to keep build happy.
- Add a missing include path for libyuv
- Support .m files in build.
Depends on D105014
Comment 58•3 years ago
|
||
Depends on D105015
Comment 59•3 years ago
|
||
Depends on D105016
Comment 60•3 years ago
|
||
Depends on D105017
Comment 61•3 years ago
|
||
Depends on D105018
Comment 62•3 years ago
|
||
Depends on D105019
Assignee | ||
Comment 63•3 years ago
|
||
Assignee | ||
Comment 64•3 years ago
|
||
Assignee | ||
Comment 65•3 years ago
|
||
Assignee | ||
Comment 66•3 years ago
|
||
Assignee | ||
Comment 67•3 years ago
|
||
Peer connections are cleaned up on shutdown through an xpcom-shutdown observer.
It doesn't block shutdown throughout async operations.
webrtc::Call instances are currently used on the main thread and so destroying
them could be a sync operation. However with upcoming threading model changes
they are moving to a worker thread, making destruction of them inevitably async.
Currently they are even destroyed async, even though still on the main thread,
to better simulate the behavior we'd see with the threading model updated.
Destroying Call instances async can lead to a race between destroying all
TaskQueues tied to the Call instance, and reaching xpcom-shutdown-threads.
xpcom-shutdown-threads will shut down the thread pools backing the TaskQueues,
making future dispatches fail. We have asserts checking that dispatches always
succeed.
This patch adds a ShutdownBlocker to the Call wrapper, so progressing to
xpcom-shutdown-threads is blocked until Call instances are cleaned up and no
more dispatches are expected.
Assignee | ||
Comment 68•3 years ago
|
||
Assignee | ||
Comment 69•3 years ago
|
||
Assignee | ||
Comment 70•3 years ago
|
||
Assignee | ||
Comment 71•3 years ago
|
||
Assignee | ||
Comment 72•3 years ago
|
||
Assignee | ||
Comment 73•3 years ago
|
||
Assignee | ||
Comment 74•3 years ago
|
||
Comment 75•3 years ago
|
||
Comment 76•3 years ago
|
||
Comment 77•3 years ago
|
||
Comment 78•3 years ago
|
||
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Comment 79•3 years ago
|
||
Assignee | ||
Comment 80•3 years ago
|
||
This helps with ASAN link errors. Cherry-picked commit's commit message:
310c82cd97b3f1f0d1ee93a0ee2b0aee828b2a93 by Abseil Team <absl-team@google.com>:
Simplify unaligned memory access functions.
The #ifdef to produce calls to __sanitizer_unaligned_load16 etc were needed in past versions of this code, when we were lying to the compiler about the alignment of the loads/stores, by using a reinterpret_cast.
However, a year ago, absl switched to simply use memcpy. Sanitizers support this correctly by default, nothing extra is required.
PiperOrigin-RevId: 343159883
Assignee | ||
Comment 81•3 years ago
|
||
This patch fixes a linker error where __sanitizer_annotate_contiguous_container
is an undefined hidden symbol referenced by
third_party/libwebrtc/third_party/abseil-cpp/absl/container/fixed_array.h.
Assignee | ||
Comment 82•3 years ago
|
||
Assignee | ||
Comment 83•3 years ago
|
||
Assignee | ||
Comment 84•3 years ago
|
||
Comment 85•3 years ago
|
||
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Comment 86•3 years ago
|
||
Comment 87•3 years ago
|
||
Comment 88•3 years ago
|
||
Comment 89•3 years ago
|
||
Comment 90•3 years ago
|
||
Comment 91•3 years ago
|
||
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Comment 92•3 years ago
|
||
Updated•3 years ago
|
Assignee | ||
Comment 93•3 years ago
|
||
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Reporter | ||
Comment 94•3 years ago
|
||
Reporter | ||
Comment 95•3 years ago
|
||
Depends on D107878
Reporter | ||
Comment 96•3 years ago
|
||
Depends on D107879
Reporter | ||
Comment 97•3 years ago
|
||
Depends on D107880
Reporter | ||
Comment 98•3 years ago
|
||
Upstreaming bug 1697385
Depends on D107881
Reporter | ||
Comment 99•3 years ago
|
||
Depends on D107897
Reporter | ||
Comment 100•3 years ago
|
||
Upstreaming bug 1697385
Depends on D107898
Reporter | ||
Comment 101•3 years ago
|
||
Depends on D107899
Reporter | ||
Comment 102•3 years ago
|
||
WIP Note: originally I commented this block out instead of checking build_with_mozilla. This needs to be checked.
Depends on D107900
Reporter | ||
Comment 103•3 years ago
|
||
Depends on D107901
Reporter | ||
Comment 104•3 years ago
|
||
Depends on D107902
Assignee | ||
Comment 105•3 years ago
|
||
Assignee | ||
Comment 106•3 years ago
|
||
Assignee | ||
Comment 107•3 years ago
|
||
This removes media/signaling/src from ThirdPartyPaths.txt as that directory no
longer exists.
It also adds media/signaling/gtest/MockCall.h as the new SetAndGetRecordingState
from upstream libwebrtc causes a static-analysis error because RecordingState is
a non-param type.
Assignee | ||
Comment 108•3 years ago
|
||
Reporter | ||
Comment 109•3 years ago
|
||
Depends on D107878
Reporter | ||
Comment 110•3 years ago
|
||
Depends on D108087
Reporter | ||
Comment 111•3 years ago
|
||
Comment 112•3 years ago
|
||
The cache can be a lot simpler than the old one, since libwebrtc handles
pruning old entries for us, and since we're now telling libwebrtc when we
render frames (so we don't have to make our own stats with guesses of when
frames will be rendered). We also now have a single implementation of the
cache in the base class.
This patch also removes the old CSRC stat insertion stuff we hacked into
libwebrtc for testing, and handles that stuff in our cache directly.
Comment 113•3 years ago
|
||
Involves teaching MediaPipelineFilter to learn ssrc->rid mappings more
aggressively since libwebrtc does not emit RTP RID more than once.
Also involves modifying a couple of mochitests to look for RTP RID in
the first packet, instead of whichever one comes in next once we care.
Comment 114•3 years ago
|
||
- Make sure this is 0 if we have not received a RTCP RR yet.
- Subtract the packet lost count from the result.
Comment 115•3 years ago
|
||
The divisor here was already in ticks/sec, which results in a conversion to seconds.
Comment 116•3 years ago
|
||
Comment 117•3 years ago
|
||
libwebrtc has stopped surfacing these, and Chromium does not support
these stats at all.
Comment 118•3 years ago
|
||
We've never supported the spec spelling (packetsDiscarded), and libwebrtc
no longer supports discarded packet count anyway.
Comment 119•3 years ago
|
||
Alsol, make sure errors note what kind of stats (audio/video) are being checked.
Comment 120•3 years ago
|
||
Updated•3 years ago
|
Comment 121•3 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=449123173f2edfe89657407ae5234ca6868d4511
Comment 122•3 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=2015dfba62fe8d9a38339cedfe986a5c2944100b
Comment 123•3 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=fd3a9e65b9dddfe81bc4dbe4cb91eaf3702c070e
Comment 124•3 years ago
|
||
Updated•3 years ago
|
Assignee | ||
Comment 125•3 years ago
|
||
This makes the latest changes to base_capturer_pipewire in our tree compile
with the libwebrtc 86 update.
Comment 126•3 years ago
|
||
Comment 127•3 years ago
|
||
Comment 128•3 years ago
|
||
Reporter | ||
Comment 129•3 years ago
|
||
Reporter | ||
Comment 130•3 years ago
|
||
Depends on D107902
Reporter | ||
Comment 131•3 years ago
|
||
Depends on D110897
Reporter | ||
Comment 132•3 years ago
|
||
Depends on D110898
Reporter | ||
Comment 133•3 years ago
|
||
Depends on D110895
Reporter | ||
Comment 134•3 years ago
|
||
Depends on D111294
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Reporter | ||
Comment 135•3 years ago
|
||
This updates the previous revision: https://phabricator.services.mozilla.com/D107897 .
Reporter | ||
Comment 136•3 years ago
|
||
It turns out these were in a specific order. This restores the order from a previous patch.
Updated•3 years ago
|
Reporter | ||
Comment 137•3 years ago
|
||
Additionally:
- Trys to detect non-generated build file changes to the tree and exits to prevent a clean checkout and clobber
- Adds the DEBUG_GEN variable that prints what is happening in the script
- tee(s) the output of mach into the logs so one doesn't have to check them to see what went wrong
- Removes the symlinked directories if they were left over by a failed run
- Exits as soon as anything exits unexpectedly
- Adds an optional variable so that the git checkout and the
gclient sync
checkout can live in different locations
Reporter | ||
Comment 138•3 years ago
|
||
Depends on D112131
Reporter | ||
Comment 139•3 years ago
|
||
Depends on D112132
Updated•3 years ago
|
Assignee | ||
Comment 140•3 years ago
|
||
Assignee | ||
Comment 141•3 years ago
|
||
This patch also renames it WebrtcCallWrapper, to better match neighboring
classes starting on "Webrtc".
Assignee | ||
Comment 142•3 years ago
|
||
Ideally TaskQueueWrapper would implement both webrtc::TaskQueueBase and
AbstractThread, but webrtc::TaskQueueBase is not refcounted so implementing both
in the same class is not possible.
This patch implements AbstractThread in a refcounted class CallWorkerThread on
top of TaskQueueWrapper. Because of SharedModuleThread not having a thread-safe
refcount, the same CallWorkerThread must be used for all Call instances.
PeerConnectionCtx's SharedWebrtcState becomes the canonical owner of the
CallWorkerThread, but WebrtcCallWrappers will all hold a strong reference to it.
The new AbstractThread allows us to use webrtc TaskQueues with Mozilla
specific higher order threading functions, like MozPromise, MediaEventSource,
and whatever else could come in handy, without having to use an explicit
CurrentTaskQueueSetter (which is not public) everywhere.
Assignee | ||
Comment 143•3 years ago
|
||
Assignee | ||
Comment 144•3 years ago
|
||
Assignee | ||
Comment 145•3 years ago
|
||
Assignee | ||
Comment 146•3 years ago
|
||
Assignee | ||
Comment 147•3 years ago
|
||
Assignee | ||
Comment 148•3 years ago
|
||
Assignee | ||
Comment 149•3 years ago
|
||
Assignee | ||
Comment 150•3 years ago
|
||
Assignee | ||
Comment 151•3 years ago
|
||
This patch makes mediapipeline_unittest pass an event target to the Call wrapper
but keeps using main thread for that event target, so that it can keep the test
cases simpler by allowing sybnc calls into the conduits.
TaskQueueWrapper::MainAsCurrent is no longer needed as mediapipeline_unittest
was the last user of it. A simpler version remains dedicated in
mediapipeline_unittest instead.
Assignee | ||
Comment 152•3 years ago
|
||
On its own this patch should mainly be seen as a refactor of the way we handle
races in MediaPipelineTransmit::SetTrack. Namely that Stop() immediately
followed by SetTrack is still exposed to racing.
This patch makes MediaPipelines use a WatchManager to manage their tracks.
For receive pipelines, mActive triggers whether we enable the receive listener.
For transmit pipelines, mActive and mDomTrack triggers whether mDomTrack's
underlying track is hooked up to feed data to the conduit. A hole is also
punched through this allowing for unittests to set an overriden send track
to avoid mocking a MediaStreamTrack (DOM object) and MediaTrackGraph (several
non-virtual methods we'd need to override).
This patch also moves the responsibility of starting and stopping conduits to
the transceiver/receiver objects, where most of the interaction with the
conduits is already happening.
Assignee | ||
Comment 153•3 years ago
|
||
This patch mainly sets the stage for using codec configs with StateMirroring.
It also makes the code a bit simpler, and removes the need to handle the nullptr
case.
Assignee | ||
Comment 154•3 years ago
|
||
Assignee | ||
Comment 155•3 years ago
|
||
SharedWebrtcState when managed by PeerConnectionCtx is destroyed on main thread.
With interactions with call instances being async, there is no guarantee that
the objects owned by SharedWebrtcState (and referenced through raw pointers by
Call instances) are alive until all Call instances have been destroyed.
Making the WebrtcCallWrapper keep a strong-ref to the SharedWebrtcState will
ensure it can manage the lifetime of the SharedWebrtcState for as long as
necessary.
Assignee | ||
Comment 156•3 years ago
|
||
The logic used for choosing codec in this patch mimics the logic of Chromium.
Assignee | ||
Comment 157•3 years ago
|
||
Assignee | ||
Comment 158•3 years ago
|
||
Assignee | ||
Comment 159•3 years ago
|
||
The case added by this patch will be used to destroy the worker thread on
shutdown, and have it release its resources. In particular the reference to its
underlying thread pool, which could be blocking shutdown.
Unittests might still use the case where responsibility of destroying the worker
thread is left external, to allow using SharedWebrtcState with main thread as
the worker thread.
Assignee | ||
Comment 160•3 years ago
|
||
This patch makes the Call worker thread support tail dispatch, since it is
required for state mirroring. Since tail dispatch is only used when both the
source and target threads support it, this will only be used for dispatch to or
from other Mozilla threads.
TaskQueueWrappers created by libwebrtc are made to not support tail dispatch,
since upstream code assumes that dispatches are direct. In some places this is
seen by one webrtc::TaskQueue dispatching a task to another webrtc::TaskQueue
and blocks the source thread until the task has run on the target.
Assignee | ||
Comment 161•3 years ago
|
||
Assignee | ||
Comment 162•3 years ago
|
||
Assignee | ||
Comment 163•3 years ago
|
||
Assignee | ||
Comment 164•3 years ago
|
||
This patch makes AudioConduit mimic VideoConduit. We no longer do any
thread-specific actions in the dtor, so this assert is unnecessary.
Assignee | ||
Comment 165•3 years ago
|
||
With VideoConduit setters being called on a worker thread rather than main, we
no longer have a guarantee that the first SendVideoFrame comes in after ssrcs
or the send codec config are set.
Setters have so far been called on main, and the listener that triggers
SendVideoFrame is also managed by main. Using a call worker thread would change
the thread the setters run on, but not the SendVideoFrame triggering listener.
This breaks the guarantee.
Assignee | ||
Comment 166•3 years ago
|
||
Assignee | ||
Updated•3 years ago
|
Updated•3 years ago
|
Comment 167•3 years ago
|
||
- Our build didn't like the non-explictness of these conversion
operators. - Changing to explicit required casts in various places.
Reporter | ||
Updated•3 years ago
|
Comment 168•3 years ago
|
||
Comment 169•3 years ago
|
||
Depends on D113433
Comment 170•3 years ago
|
||
Depends on D113434
Comment 171•3 years ago
|
||
Depends on D113435
Comment 172•3 years ago
|
||
Depends on D113436
Comment 173•3 years ago
|
||
Depends on D113437
Comment 174•3 years ago
|
||
Depends on D113438
Comment 175•3 years ago
|
||
- pipefail doesn't work in sh on linux, so we're running under bash now.
- removing a link for third_party/libwebrtc/.git didn't work due to a typo.
- needed export on MOZCONFIG line.
- only grab the specific .json file based on the build config.
Depends on D113439
Comment 176•3 years ago
|
||
Depends on D113440
Comment 177•3 years ago
|
||
Depends on D113441
Comment 178•3 years ago
|
||
Depends on D113442
Comment 179•3 years ago
|
||
Depends on D113443
Comment 180•3 years ago
|
||
Depends on D113444
Reporter | ||
Comment 181•3 years ago
|
||
Depends on D112133
Reporter | ||
Comment 182•3 years ago
|
||
Depends on D113604
Comment 183•3 years ago
|
||
Reporter | ||
Comment 184•3 years ago
|
||
Depends on D113605
Comment 185•3 years ago
|
||
Comment 186•3 years ago
|
||
Comment 187•3 years ago
|
||
Comment 188•3 years ago
|
||
Only works on Chrome because they zero out alloced memory?
Comment 189•3 years ago
|
||
Involves calling CFRunLoopRunInMode on the capture thread (so the RunLoop gets
cycles), and also calling Start() on the capture thread (so the callbacks are
connected to the same RunLoop we're giving cycles to).
Comment 190•3 years ago
|
||
Comment 191•3 years ago
|
||
Comment 192•3 years ago
|
||
Fixing error: format specifies type 'long' but the argument has type 'webrtc::ScreenId' (aka 'int')
Reporter | ||
Comment 193•3 years ago
|
||
Description
•