Negotiate use of RTCP loss notification feedback (LNTF)
When the LossNotifications field trial is in effect, LNTF should be offered/accepted in the SDP message, not assumed to be configured on both sides equally. Bug: webrtc:10662 Change-Id: Ibd827779bd301821cbb4196857f6baebfc9e7dc2 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138079 Commit-Queue: Elad Alon <eladalon@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28056}
This commit is contained in:
@ -52,6 +52,8 @@ void VerifyEmptyFlexfecConfig(const RtpConfig::Flexfec& config) {
|
||||
|
||||
TEST_F(ConfigEndToEndTest, VerifyDefaultSendConfigParameters) {
|
||||
VideoSendStream::Config default_send_config(nullptr);
|
||||
EXPECT_FALSE(default_send_config.rtp.lntf.enabled)
|
||||
<< "Enabling LNTF require rtcp-fb: goog-lntf negotiation.";
|
||||
EXPECT_EQ(0, default_send_config.rtp.nack.rtp_history_ms)
|
||||
<< "Enabling NACK require rtcp-fb: nack negotiation.";
|
||||
EXPECT_TRUE(default_send_config.rtp.rtx.ssrcs.empty())
|
||||
@ -74,6 +76,8 @@ TEST_F(ConfigEndToEndTest, VerifyDefaultVideoReceiveConfigParameters) {
|
||||
VideoReceiveStream::Config default_receive_config(nullptr);
|
||||
EXPECT_EQ(RtcpMode::kCompound, default_receive_config.rtp.rtcp_mode)
|
||||
<< "Reduced-size RTCP require rtcp-rsize to be negotiated.";
|
||||
EXPECT_FALSE(default_receive_config.rtp.lntf.enabled)
|
||||
<< "Enabling LNTF require rtcp-fb: goog-lntf negotiation.";
|
||||
EXPECT_FALSE(default_receive_config.rtp.remb)
|
||||
<< "REMB require rtcp-fb: goog-remb to be negotiated.";
|
||||
EXPECT_FALSE(
|
||||
|
@ -158,7 +158,8 @@ RtpVideoStreamReceiver::RtpVideoStreamReceiver(
|
||||
|
||||
process_thread_->RegisterModule(rtp_rtcp_.get(), RTC_FROM_HERE);
|
||||
|
||||
if (webrtc::field_trial::IsEnabled("WebRTC-RtcpLossNotification")) {
|
||||
// TODO(bugs.webrtc.org/10662): NACK and LNTF shouldn't be mutually exclusive.
|
||||
if (config_.rtp.lntf.enabled) {
|
||||
loss_notification_controller_ =
|
||||
absl::make_unique<LossNotificationController>(this, this);
|
||||
} else if (config_.rtp.nack.rtp_history_ms != 0) {
|
||||
@ -395,6 +396,7 @@ void RtpVideoStreamReceiver::SendLossNotification(
|
||||
uint16_t last_decoded_seq_num,
|
||||
uint16_t last_received_seq_num,
|
||||
bool decodability_flag) {
|
||||
RTC_DCHECK(config_.rtp.lntf.enabled);
|
||||
rtp_rtcp_->SendLossNotification(last_decoded_seq_num, last_received_seq_num,
|
||||
decodability_flag);
|
||||
}
|
||||
|
Reference in New Issue
Block a user