Add MID/RID configurability to RTPSender.

With the new config option |always_send_mid_and_rid|, the user
of the RTPSender can decide if MIDs and RIDs should always be sent
(when provided and negotiated), or if their sending should be disabled
after the receiver has acked the stream. Depending on the use case,
different settings might be preferable. The default setting is not
changed in this CL.

Bug: webrtc:11416
Change-Id: Ic3c71a6105fb7ee08d53cf9eb03f4e53b5799610
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170109
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30742}
This commit is contained in:
Rasmus Brandt
2020-03-10 14:12:48 +01:00
committed by Commit Bot
parent 84a1b3e9ba
commit ce588ae61d
4 changed files with 86 additions and 11 deletions

View File

@ -121,6 +121,13 @@ class RtpRtcp : public Module, public RtcpFeedbackSenderInterface {
// Corresponds to extmap-allow-mixed in SDP negotiation.
bool extmap_allow_mixed = false;
// If true, the RTP sender will always annotate outgoing packets with
// MID and RID header extensions, if provided and negotiated.
// If false, the RTP sender will stop sending MID and RID header extensions,
// when it knows that the receiver is ready to demux based on SSRC. This is
// done by RTCP RR acking.
bool always_send_mid_and_rid = false;
// If set, field trials are read from |field_trials|, otherwise
// defaults to webrtc::FieldTrialBasedConfig.
const WebRtcKeyValueConfig* field_trials = nullptr;