gecko-dev/media/webrtc
Andreas Pehrson 02224ebfcd Bug 1601034 - Add a ProcessedMediaTrack layer in MediaPipelineTransmit to handle replaceTrack of ended tracks. r=dminor,padenot
Before this patch, if a send audio MediaStreamTrack ended, we ended up not
sending anything over the network. If replaceTrack() at that point replaced the
ended track with a live one, we'd start sending data again, but the rtp stream
would continue from where the previous track ended.

Having a gap in audio like that would confuse a receiver's *video* jitter
buffer, because it's trying to sync to an audio track that just had a massive
amount of "jitter" (it can't tell the difference).

This patch fixes this by adding a track layer in MediaPipelineTransmit that
remains active for as long as the MediaPipeline is active. Thus if the send
audio MediaStreamTrack ends, we continue sending silence over the network, which
the receiver can understand. If later replaced, the receiver sees real audio
instead of silence and continues gracefully.

Differential Revision: https://phabricator.services.mozilla.com/D56619

--HG--
extra : moz-landing-system : lando
2019-12-12 15:23:43 +00:00
..
gn-configs Bug 1579834 - [WebRTC] Add mips64 support; r=dminor 2019-09-25 14:15:23 +00:00
signaling Bug 1601034 - Add a ProcessedMediaTrack layer in MediaPipelineTransmit to handle replaceTrack of ended tracks. r=dminor,padenot 2019-12-12 15:23:43 +00:00
trunk Bug 1395259 - Remove win32k usage from webrtc's TaskQueue; r=dminor 2019-11-25 16:11:32 +00:00
.gclient
.gclient_entries
moz.build Bug 1552755 - Update moz.build files; r=ng 2019-05-31 20:20:40 +00:00
webrtc_update.sh
webrtc_version.h Bug 1562642 - Part 2 - Add missing MPL2 headers r=Gijs 2019-07-08 09:27:47 +00:00
webrtc.mozbuild Bug 1512504 - Don't set __PRETTY_FUNCTION__ on clang-cl. r=froydnj 2019-02-14 18:56:29 +00:00