diff --git a/modules/rtp_rtcp/include/rtp_rtcp_defines.h b/modules/rtp_rtcp/include/rtp_rtcp_defines.h index cb1296dae8..1e80bb2fab 100644 --- a/modules/rtp_rtcp/include/rtp_rtcp_defines.h +++ b/modules/rtp_rtcp/include/rtp_rtcp_defines.h @@ -96,19 +96,6 @@ enum KeyFrameRequestMethod { kKeyFrameReqPliRtcp, kKeyFrameReqFirRtcp }; enum RtpRtcpPacketType { kPacketRtp = 0, kPacketKeepAlive = 1 }; -// kConditionallyRetransmitHigherLayers allows retransmission of video frames -// in higher layers if either the last frame in that layer was too far back in -// time, or if we estimate that a new frame will be available in a lower layer -// in a shorter time than it would take to request and receive a retransmission. -enum RetransmissionMode : uint8_t { - kRetransmitOff = 0x0, - kRetransmitFECPackets = 0x1, - kRetransmitBaseLayer = 0x2, - kRetransmitHigherLayers = 0x4, - kConditionallyRetransmitHigherLayers = 0x8, - kRetransmitAllPackets = 0xFF -}; - enum RtxMode { kRtxOff = 0x0, kRtxRetransmitted = 0x1, // Only send retransmissions over RTX. diff --git a/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_unittest.cc index c421cf96fe..0529d89e0b 100644 --- a/modules/rtp_rtcp/source/rtp_sender_unittest.cc +++ b/modules/rtp_rtcp/source/rtp_sender_unittest.cc @@ -1828,9 +1828,6 @@ TEST_P(RtpSenderVideoTest, RetransmissionTypesGeneric) { rtp_sender_video_->GetStorageType( header, kConditionallyRetransmitHigherLayers, kDefaultExpectedRetransmissionTimeMs)); - EXPECT_EQ(kAllowRetransmission, rtp_sender_video_->GetStorageType( - header, kRetransmitAllPackets, - kDefaultExpectedRetransmissionTimeMs)); } TEST_P(RtpSenderVideoTest, RetransmissionTypesH264) { @@ -1852,9 +1849,6 @@ TEST_P(RtpSenderVideoTest, RetransmissionTypesH264) { rtp_sender_video_->GetStorageType( header, kConditionallyRetransmitHigherLayers, kDefaultExpectedRetransmissionTimeMs)); - EXPECT_EQ(kAllowRetransmission, rtp_sender_video_->GetStorageType( - header, kRetransmitAllPackets, - kDefaultExpectedRetransmissionTimeMs)); } TEST_P(RtpSenderVideoTest, RetransmissionTypesVP8BaseLayer) { @@ -1884,9 +1878,6 @@ TEST_P(RtpSenderVideoTest, RetransmissionTypesVP8BaseLayer) { rtp_sender_video_->GetStorageType( header, kRetransmitBaseLayer | kConditionallyRetransmitHigherLayers, kDefaultExpectedRetransmissionTimeMs)); - EXPECT_EQ(kAllowRetransmission, rtp_sender_video_->GetStorageType( - header, kRetransmitAllPackets, - kDefaultExpectedRetransmissionTimeMs)); } TEST_P(RtpSenderVideoTest, RetransmissionTypesVP8HigherLayers) { @@ -1910,9 +1901,6 @@ TEST_P(RtpSenderVideoTest, RetransmissionTypesVP8HigherLayers) { rtp_sender_video_->GetStorageType( header, kRetransmitHigherLayers | kRetransmitBaseLayer, kDefaultExpectedRetransmissionTimeMs)); - EXPECT_EQ(kAllowRetransmission, rtp_sender_video_->GetStorageType( - header, kRetransmitAllPackets, - kDefaultExpectedRetransmissionTimeMs)); } } @@ -1937,9 +1925,6 @@ TEST_P(RtpSenderVideoTest, RetransmissionTypesVP9) { rtp_sender_video_->GetStorageType( header, kRetransmitHigherLayers | kRetransmitBaseLayer, kDefaultExpectedRetransmissionTimeMs)); - EXPECT_EQ(kAllowRetransmission, rtp_sender_video_->GetStorageType( - header, kRetransmitAllPackets, - kDefaultExpectedRetransmissionTimeMs)); } } diff --git a/modules/rtp_rtcp/source/rtp_sender_video.cc b/modules/rtp_rtcp/source/rtp_sender_video.cc index 92805f3ccc..949af14b7d 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video.cc +++ b/modules/rtp_rtcp/source/rtp_sender_video.cc @@ -227,7 +227,6 @@ void RTPSenderVideo::SendVideoPacketAsRedMaybeWithUlpfec( BuildRedPayload(*media_packet, red_packet.get()); std::vector> fec_packets; - StorageType fec_storage = kDontRetransmit; { // Only protect while creating RED and FEC packets, not when sending. rtc::CritScope cs(&crit_); @@ -245,8 +244,6 @@ void RTPSenderVideo::SendVideoPacketAsRedMaybeWithUlpfec( fec_packets = ulpfec_generator_.GetUlpfecPacketsAsRed( red_payload_type_, ulpfec_payload_type_, first_fec_sequence_number); RTC_DCHECK_EQ(num_fec_packets, fec_packets.size()); - if (retransmission_settings_ & kRetransmitFECPackets) - fec_storage = kAllowRetransmission; } } } @@ -268,7 +265,7 @@ void RTPSenderVideo::SendVideoPacketAsRedMaybeWithUlpfec( rtp_packet->set_capture_time_ms(media_packet->capture_time_ms()); rtp_packet->set_is_fec(true); uint16_t fec_sequence_number = rtp_packet->SequenceNumber(); - if (rtp_sender_->SendToNetwork(std::move(rtp_packet), fec_storage, + if (rtp_sender_->SendToNetwork(std::move(rtp_packet), kDontRetransmit, RtpPacketSender::kLowPriority)) { rtc::CritScope cs(&stats_crit_); fec_bitrate_.Update(fec_packet->length(), clock_->TimeInMilliseconds()); @@ -664,8 +661,6 @@ StorageType RTPSenderVideo::GetStorageType( int64_t expected_retransmission_time_ms) { if (retransmission_settings == kRetransmitOff) return StorageType::kDontRetransmit; - if (retransmission_settings == kRetransmitAllPackets) - return StorageType::kAllowRetransmission; rtc::CritScope cs(&stats_crit_); // Media packet storage. diff --git a/modules/rtp_rtcp/source/rtp_sender_video.h b/modules/rtp_rtcp/source/rtp_sender_video.h index bba549bddb..8e26206699 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video.h +++ b/modules/rtp_rtcp/source/rtp_sender_video.h @@ -35,6 +35,17 @@ class FrameEncryptorInterface; class RtpPacketizer; class RtpPacketToSend; +// kConditionallyRetransmitHigherLayers allows retransmission of video frames +// in higher layers if either the last frame in that layer was too far back in +// time, or if we estimate that a new frame will be available in a lower layer +// in a shorter time than it would take to request and receive a retransmission. +enum RetransmissionMode : uint8_t { + kRetransmitOff = 0x0, + kRetransmitBaseLayer = 0x2, + kRetransmitHigherLayers = 0x4, + kConditionallyRetransmitHigherLayers = 0x8, +}; + class RTPSenderVideo { public: static constexpr int64_t kTLRateWindowSizeMs = 2500;