Closed Bug 1813468 Opened 2 years ago Closed 2 years ago

Fix RemoteTrackSource reference traversal and unlinking

Categories

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

defect

Tracking

()

RESOLVED FIXED
111 Branch
Tracking Status
firefox111 --- fixed

People

(Reporter: pehrsons, Assigned: pehrsons)

References

(Blocks 2 open bugs)

Details

Attachments

(18 files)

(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details

See bug 1807700 comment 1 about RemoteTrackSource.

This removes one dependency in MediaPipeline on RemoteTrackSource.

This sets it up so MediaPipeline control interfaces can be added.

This patch makes RTCRtpReceiver in charge of mute and unmute decisions directly.
MediaPipeline still informs about unmuting after receiving the first RTP packet.

This also removes a dependency on RTCRtpReceiver::Stop that is out of sync
with mReceiving = false.

This patch fixes an issue where playout of queued DTMF tones could get
interrupted for unrelated reasons. This happened if a task, in a transmitting
RTCRtpSender, called both Stop() and then again Start().

With a WatchManager we watch for changes to mTransmitting and setting it to
false and then true in a single task gets coalesced into a noop.

This matches that we do not mute when the jseptrack is inactive.

Blocks: 1568296
Blocks: 1814895
Pushed by pehrsons@gmail.com: https://hg.mozilla.org/integration/autoland/rev/109d1020117a In WPT test that a peer connection receiving video cannot be garbage collected. r=jib https://hg.mozilla.org/integration/autoland/rev/c28bf2b7d094 Move RemoteTrackSource definitions to cpp file. r=bwc https://hg.mozilla.org/integration/autoland/rev/0f2aa0156add Implement reference traversal and unlinking for RemoteTrackSource. r=bwc https://hg.mozilla.org/integration/autoland/rev/4efc6b3c9527 Consolidate PeerConnectionImpl's PrivacyRequested and PrivacyNeeded. r=bwc https://hg.mozilla.org/integration/autoland/rev/dea5d02d4dbb Use an enum for principal privacy in PeerConnectionImpl and friends. r=bwc https://hg.mozilla.org/integration/autoland/rev/a0d17c5a5b11 Trigger setting the private PrincipalHandle in MediaPipeline through RTCRtpReceiver. r=bwc https://hg.mozilla.org/integration/autoland/rev/f2d5a8a91ed2 Make RemoteTrackSource an RTCRtpReceiver member and add it to CC traversal. r=bwc https://hg.mozilla.org/integration/autoland/rev/61a7f60b178c Simplify remote SourceMediaTrack ownership model. r=bwc https://hg.mozilla.org/integration/autoland/rev/be83a372e63b Move unmute-after-enabling logic out of MediaPipeline into RTCRtpReceiver. r=bwc https://hg.mozilla.org/integration/autoland/rev/765bd8c21710 Remove RemoteTrackSource from MediaPipeline. r=bwc https://hg.mozilla.org/integration/autoland/rev/5a551138a5d1 Fix some warnings around MediaPipeline. r=bwc https://hg.mozilla.org/integration/autoland/rev/d1dbd2ad49ba In RemoteTrackSource add a ref to RTCRtpReceiver to prevent GC at the wrong time. r=bwc https://hg.mozilla.org/integration/autoland/rev/f3f3da28953c Rename ConcreteConduitControl to not be specific for conduits. r=bwc https://hg.mozilla.org/integration/autoland/rev/677062c9bf1a Rework RTCRtpReceiver unmute logic through Watchables. r=bwc https://hg.mozilla.org/integration/autoland/rev/1c1098e1e1fc Signal start and stop to MediaPipeline through state mirroring. r=bwc https://hg.mozilla.org/integration/autoland/rev/1d8a6c3290a6 Remove unused member function declarations in RTCRtpSender.h. r=bwc https://hg.mozilla.org/integration/autoland/rev/3cf25f108bff In RTCRtpSender stop RTCDTMFSender playout through a WatchManager. r=bwc https://hg.mozilla.org/integration/autoland/rev/ebfb7a062761 Don't block unmute when the jseptrack is inactive. r=bwc
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/38433 for changes under testing/web-platform/tests
Upstream PR merged by moz-wptsync-bot
Duplicate of this bug: 1805317
Regressions: 1816708
Regressions: 1819130
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: