Remove PlayoutDelayOracle and make RtpSenderVideo guarantee delivery
The PlayoutDelayOracle was responsible for making sure the PlayoutDelay header extension was successfully propagated to the receiving side. Once it was determined that the receiver had received a frame with the new delay tag, it's no longer necessary to propagate. The issue with this implementation is that it is based on max extended sequence number reported via RTCP, which makes it often slow to react, could theoretically fail to produce desired outcome (max received > X does not guarantee X was fully received and decoded), and added a lot of code complexity. The guarantee of delivery can in fact be accomplished more reliably and with less code by making sure to tag each frame until an undiscardable frame is sent. This allows containing the logic fully within RTPSenderVideo. Bug: webrtc:11340 Change-Id: I2d1d2b6b67f4f07b8b33336f8fcfcde724243eef Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168221 Reviewed-by: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30473}
This commit is contained in:
@ -340,8 +340,6 @@ class ModuleRtpRtcpImpl : public RtpRtcp, public RTCPReceiver::ModuleRtpRtcp {
|
||||
|
||||
RemoteBitrateEstimator* const remote_bitrate_;
|
||||
|
||||
RtcpAckObserver* const ack_observer_;
|
||||
|
||||
RtcpRttStats* const rtt_stats_;
|
||||
|
||||
// The processed RTT from RtcpRttStats.
|
||||
|
||||
Reference in New Issue
Block a user