Add RRTR parameter to media engine and pass it to video receive stream
This allows clients to enable Receiver reference time reports via PeerConnection. RRTR is not enabled by default but can be added to SDP string. Bug: webrtc:9108 Change-Id: I851f0d65152875bf115553a851b839f83e3d241e Reviewed-on: https://webrtc-review.googlesource.com/66861 Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22767}
This commit is contained in:

committed by
Commit Bot

parent
ac6475e031
commit
634a777b9d
@ -346,6 +346,11 @@ bool HasRemb(const Codec& codec) {
|
||||
FeedbackParam(kRtcpFbParamRemb, kParamValueEmpty));
|
||||
}
|
||||
|
||||
bool HasRrtr(const Codec& codec) {
|
||||
return codec.HasFeedbackParam(
|
||||
FeedbackParam(kRtcpFbParamRrtr, kParamValueEmpty));
|
||||
}
|
||||
|
||||
bool HasTransportCc(const Codec& codec) {
|
||||
return codec.HasFeedbackParam(
|
||||
FeedbackParam(kRtcpFbParamTransportCc, kParamValueEmpty));
|
||||
|
@ -250,6 +250,7 @@ bool CodecNamesEq(const std::string& name1, const std::string& name2);
|
||||
bool CodecNamesEq(const char* name1, const char* name2);
|
||||
bool HasNack(const Codec& codec);
|
||||
bool HasRemb(const Codec& codec);
|
||||
bool HasRrtr(const Codec& codec);
|
||||
bool HasTransportCc(const Codec& codec);
|
||||
// Returns the first codec in |supported_codecs| that matches |codec|, or
|
||||
// nullptr if no codec matches.
|
||||
|
@ -86,6 +86,7 @@ const char kRtcpFbParamTransportCc[] = "transport-cc";
|
||||
|
||||
const char kRtcpFbParamCcm[] = "ccm";
|
||||
const char kRtcpFbCcmParamFir[] = "fir";
|
||||
const char kRtcpFbParamRrtr[] = "rrtr";
|
||||
const char kCodecParamMaxBitrate[] = "x-google-max-bitrate";
|
||||
const char kCodecParamMinBitrate[] = "x-google-min-bitrate";
|
||||
const char kCodecParamStartBitrate[] = "x-google-start-bitrate";
|
||||
|
@ -101,6 +101,9 @@ extern const char kRtcpFbParamTransportCc[];
|
||||
// ccm submessages according to RFC 5104
|
||||
extern const char kRtcpFbParamCcm[];
|
||||
extern const char kRtcpFbCcmParamFir[];
|
||||
// Receiver reference time report
|
||||
// https://tools.ietf.org/html/rfc3611 section 4.4
|
||||
extern const char kRtcpFbParamRrtr[];
|
||||
// Google specific parameters
|
||||
extern const char kCodecParamMaxBitrate[];
|
||||
extern const char kCodecParamMinBitrate[];
|
||||
|
@ -2290,6 +2290,7 @@ void WebRtcVideoChannel::WebRtcVideoReceiveStream::ConfigureCodecs(
|
||||
config_.rtp.red_payload_type = codec.ulpfec.red_payload_type;
|
||||
|
||||
config_.rtp.nack.rtp_history_ms = HasNack(codec.codec) ? kNackHistoryMs : 0;
|
||||
config_.rtp.rtcp_xr.receiver_reference_time_report = HasRrtr(codec.codec);
|
||||
if (codec.ulpfec.red_rtx_payload_type != -1) {
|
||||
config_.rtp
|
||||
.rtx_associated_payload_types[codec.ulpfec.red_rtx_payload_type] =
|
||||
|
Reference in New Issue
Block a user