Remove more unneeded things from ChannelSend
- SetNACKStatus() - only affects NetEq and RTP receiver
- GetRtpTimestampRateHz() - never used.
- ResendPackets() - never used.
Bug: webrtc:9801
Change-Id: I280b620723eb6917624f30f503eb8b8c88144e6d
Reviewed-on: https://webrtc-review.googlesource.com/c/111460
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25721}
diff --git a/audio/audio_send_stream.cc b/audio/audio_send_stream.cc
index 283d9ec..b84cc95 100644
--- a/audio/audio_send_stream.cc
+++ b/audio/audio_send_stream.cc
@@ -255,13 +255,6 @@
if (first_time || old_config.rtp.c_name != new_config.rtp.c_name) {
channel_send->SetRTCP_CNAME(new_config.rtp.c_name);
}
- // TODO(solenberg): Config NACK history window (which is a packet count),
- // using the actual packet size for the configured codec.
- if (first_time || old_config.rtp.nack.rtp_history_ms !=
- new_config.rtp.nack.rtp_history_ms) {
- channel_send->SetNACKStatus(new_config.rtp.nack.rtp_history_ms != 0,
- new_config.rtp.nack.rtp_history_ms / 20);
- }
if (first_time || new_config.send_transport != old_config.send_transport) {
if (old_config.send_transport) {
diff --git a/audio/audio_send_stream_unittest.cc b/audio/audio_send_stream_unittest.cc
index 6930cb1..ddd3408 100644
--- a/audio/audio_send_stream_unittest.cc
+++ b/audio/audio_send_stream_unittest.cc
@@ -151,7 +151,6 @@
stream_config_.send_codec_spec =
AudioSendStream::Config::SendCodecSpec(kIsacPayloadType, kIsacFormat);
stream_config_.rtp.ssrc = kSsrc;
- stream_config_.rtp.nack.rtp_history_ms = 200;
stream_config_.rtp.c_name = kCName;
stream_config_.rtp.extensions.push_back(
RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId));
@@ -195,7 +194,6 @@
}));
EXPECT_CALL(*channel_send_, SetLocalSSRC(kSsrc)).Times(1);
EXPECT_CALL(*channel_send_, SetRTCP_CNAME(StrEq(kCName))).Times(1);
- EXPECT_CALL(*channel_send_, SetNACKStatus(true, 10)).Times(1);
EXPECT_CALL(*channel_send_, SetFrameEncryptor(_)).Times(1);
EXPECT_CALL(*channel_send_, SetExtmapAllowMixed(false)).Times(1);
EXPECT_CALL(*channel_send_,
@@ -335,8 +333,8 @@
config.rtcp_report_interval_ms = 2500;
EXPECT_EQ(
"{rtp: {ssrc: 1234, extmap-allow-mixed: true, extensions: [{uri: "
- "urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 2}], nack: "
- "{rtp_history_ms: 0}, c_name: foo_name}, rtcp_report_interval_ms: 2500, "
+ "urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 2}], "
+ "c_name: foo_name}, rtcp_report_interval_ms: 2500, "
"send_transport: null, media_transport: null, "
"min_bitrate_bps: 12000, max_bitrate_bps: 34000, "
"send_codec_spec: {nack_enabled: true, transport_cc_enabled: false, "
diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index e96b5b7..014505f 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -146,7 +146,6 @@
void SetRTCP_CNAME(absl::string_view c_name) override;
std::vector<ReportBlock> GetRemoteRTCPReportBlocks() const override;
CallSendStatistics GetRTCPStatistics() const override;
- void SetNACKStatus(bool enable, int max_packets) override;
// ProcessAndEncodeAudio() posts a task on the shared encoder task queue,
// which in turn calls (on the queue) ProcessAndEncodeAudioOnTaskQueue() where
@@ -199,15 +198,11 @@
void OnUplinkPacketLossRate(float packet_loss_rate);
bool InputMute() const;
- int ResendPackets(const uint16_t* sequence_numbers, int length);
-
int SetSendRtpHeaderExtension(bool enable, RTPExtensionType type, int id);
void UpdateOverheadForEncoder()
RTC_EXCLUSIVE_LOCKS_REQUIRED(overhead_per_packet_lock_);
- int GetRtpTimestampRateHz() const;
-
int32_t SendRtpAudio(FrameType frameType,
uint8_t payloadType,
uint32_t timeStamp,
@@ -1174,20 +1169,6 @@
return stats;
}
-void ChannelSend::SetNACKStatus(bool enable, int max_packets) {
- RTC_DCHECK_RUN_ON(&worker_thread_checker_);
- // None of these functions can fail.
- if (enable)
- audio_coding_->EnableNack(max_packets);
- else
- audio_coding_->DisableNack();
-}
-
-// Called when we are missing one or more packets.
-int ChannelSend::ResendPackets(const uint16_t* sequence_numbers, int length) {
- return _rtpRtcpModule->SendNACK(sequence_numbers, length);
-}
-
void ChannelSend::ProcessAndEncodeAudio(
std::unique_ptr<AudioFrame> audio_frame) {
RTC_DCHECK_RUNS_SERIALIZED(&audio_thread_race_checker_);
@@ -1293,17 +1274,6 @@
return error;
}
-int ChannelSend::GetRtpTimestampRateHz() const {
- const auto format = audio_coding_->ReceiveFormat();
- // Default to the playout frequency if we've not gotten any packets yet.
- // TODO(ossu): Zero clockrate can only happen if we've added an external
- // decoder for a format we don't support internally. Remove once that way of
- // adding decoders is gone!
- return (format && format->clockrate_hz != 0)
- ? format->clockrate_hz
- : audio_coding_->PlayoutFrequency();
-}
-
int64_t ChannelSend::GetRTT() const {
if (media_transport_) {
// GetRTT is generally used in the RTCP codepath, where media transport is
diff --git a/audio/channel_send.h b/audio/channel_send.h
index a5f7185..cbef365 100644
--- a/audio/channel_send.h
+++ b/audio/channel_send.h
@@ -59,7 +59,6 @@
virtual bool ReceivedRTCPPacket(const uint8_t* packet, size_t length) = 0;
virtual CallSendStatistics GetRTCPStatistics() const = 0;
- virtual void SetNACKStatus(bool enable, int max_packets) = 0;
virtual bool SetEncoder(int payload_type,
std::unique_ptr<AudioEncoder> encoder) = 0;
diff --git a/audio/mock_voe_channel_proxy.h b/audio/mock_voe_channel_proxy.h
index ea7a0c0..03c26c9 100644
--- a/audio/mock_voe_channel_proxy.h
+++ b/audio/mock_voe_channel_proxy.h
@@ -75,7 +75,6 @@
MOCK_METHOD2(SetMid, void(const std::string& mid, int extension_id));
MOCK_METHOD1(SetLocalSSRC, void(uint32_t ssrc));
MOCK_METHOD1(SetRTCP_CNAME, void(absl::string_view c_name));
- MOCK_METHOD2(SetNACKStatus, void(bool enable, int max_packets));
MOCK_METHOD1(SetExtmapAllowMixed, void(bool extmap_allow_mixed));
MOCK_METHOD2(SetSendAudioLevelIndicationStatus, void(bool enable, int id));
MOCK_METHOD1(EnableSendTransportSequenceNumber, void(int id));
diff --git a/call/audio_send_stream.cc b/call/audio_send_stream.cc
index 7fc6fa3..303b49c 100644
--- a/call/audio_send_stream.cc
+++ b/call/audio_send_stream.cc
@@ -62,7 +62,6 @@
}
}
ss << ']';
- ss << ", nack: " << nack.ToString();
ss << ", c_name: " << c_name;
ss << '}';
return ss.str();
diff --git a/call/audio_send_stream.h b/call/audio_send_stream.h
index 0cd0894..c996dab 100644
--- a/call/audio_send_stream.h
+++ b/call/audio_send_stream.h
@@ -89,9 +89,6 @@
// RTP header extensions used for the sent stream.
std::vector<RtpExtension> extensions;
- // See NackConfig for description.
- NackConfig nack;
-
// RTCP CNAME, see RFC 3550.
std::string c_name;
} rtp;
diff --git a/media/engine/webrtcvoiceengine.cc b/media/engine/webrtcvoiceengine.cc
index 9ec7a0c..51f4582 100644
--- a/media/engine/webrtcvoiceengine.cc
+++ b/media/engine/webrtcvoiceengine.cc
@@ -1024,8 +1024,6 @@
void UpdateSendCodecSpec(
const webrtc::AudioSendStream::Config::SendCodecSpec& send_codec_spec) {
RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
- config_.rtp.nack.rtp_history_ms =
- send_codec_spec.nack_enabled ? kNackRtpHistoryMs : 0;
config_.send_codec_spec = send_codec_spec;
auto info =
config_.encoder_factory->QueryAudioEncoder(send_codec_spec.format);
diff --git a/media/engine/webrtcvoiceengine_unittest.cc b/media/engine/webrtcvoiceengine_unittest.cc
index 76f0520..9fd5dfb 100644
--- a/media/engine/webrtcvoiceengine_unittest.cc
+++ b/media/engine/webrtcvoiceengine_unittest.cc
@@ -1635,18 +1635,6 @@
SetSendParameters(send_parameters_);
}
-// Test that we can enable NACK with opus as caller.
-TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackAsCaller) {
- EXPECT_TRUE(SetupSendStream());
- cricket::AudioSendParameters parameters;
- parameters.codecs.push_back(kOpusCodec);
- parameters.codecs[0].AddFeedbackParam(cricket::FeedbackParam(
- cricket::kRtcpFbParamNack, cricket::kParamValueEmpty));
- EXPECT_EQ(0, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
- SetSendParameters(parameters);
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
-}
-
// Test that we can enable NACK with opus as callee.
TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackAsCallee) {
EXPECT_TRUE(SetupRecvStream());
@@ -1661,7 +1649,6 @@
EXPECT_TRUE(
channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrcX)));
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
}
// Test that we can enable NACK on receive streams.
@@ -1672,29 +1659,11 @@
parameters.codecs.push_back(kOpusCodec);
parameters.codecs[0].AddFeedbackParam(cricket::FeedbackParam(
cricket::kRtcpFbParamNack, cricket::kParamValueEmpty));
- EXPECT_EQ(0, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
EXPECT_EQ(0, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms);
SetSendParameters(parameters);
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms);
}
-// Test that we can disable NACK.
-TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecDisableNack) {
- EXPECT_TRUE(SetupSendStream());
- cricket::AudioSendParameters parameters;
- parameters.codecs.push_back(kOpusCodec);
- parameters.codecs[0].AddFeedbackParam(cricket::FeedbackParam(
- cricket::kRtcpFbParamNack, cricket::kParamValueEmpty));
- SetSendParameters(parameters);
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
-
- parameters.codecs.clear();
- parameters.codecs.push_back(kOpusCodec);
- SetSendParameters(parameters);
- EXPECT_EQ(0, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
-}
-
// Test that we can disable NACK on receive streams.
TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecDisableNackRecvStreams) {
EXPECT_TRUE(SetupSendStream());
@@ -1704,13 +1673,11 @@
parameters.codecs[0].AddFeedbackParam(cricket::FeedbackParam(
cricket::kRtcpFbParamNack, cricket::kParamValueEmpty));
SetSendParameters(parameters);
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms);
parameters.codecs.clear();
parameters.codecs.push_back(kOpusCodec);
SetSendParameters(parameters);
- EXPECT_EQ(0, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
EXPECT_EQ(0, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms);
}
@@ -1723,7 +1690,6 @@
parameters.codecs[0].AddFeedbackParam(cricket::FeedbackParam(
cricket::kRtcpFbParamNack, cricket::kParamValueEmpty));
SetSendParameters(parameters);
- EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrcX).rtp.nack.rtp_history_ms);
EXPECT_TRUE(AddRecvStream(kSsrcY));
EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrcY).rtp.nack.rtp_history_ms);
diff --git a/video/end_to_end_tests/retransmission_tests.cc b/video/end_to_end_tests/retransmission_tests.cc
index b8d2d9a..d1a69e3 100644
--- a/video/end_to_end_tests/retransmission_tests.cc
+++ b/video/end_to_end_tests/retransmission_tests.cc
@@ -165,7 +165,6 @@
void ModifyAudioConfigs(
AudioSendStream::Config* send_config,
std::vector<AudioReceiveStream::Config>* receive_configs) override {
- send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
(*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
local_ssrc_ = (*receive_configs)[0].rtp.local_ssrc;
remote_ssrc_ = (*receive_configs)[0].rtp.remote_ssrc;