mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 13:50:40 +01:00
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}
This commit is contained in:
parent
a13be01901
commit
c69a56ef04
10 changed files with 2 additions and 84 deletions
|
@ -255,13 +255,6 @@ void AudioSendStream::ConfigureStream(
|
|||
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) {
|
||||
|
|
|
@ -151,7 +151,6 @@ struct ConfigHelper {
|
|||
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 @@ struct ConfigHelper {
|
|||
}));
|
||||
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 @@ TEST(AudioSendStreamTest, ConfigToString) {
|
|||
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, "
|
||||
|
|
|
@ -146,7 +146,6 @@ class ChannelSend
|
|||
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 @@ class ChannelSend
|
|||
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 @@ CallSendStatistics ChannelSend::GetRTCPStatistics() const {
|
|||
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 @@ int ChannelSend::SetSendRtpHeaderExtension(bool enable,
|
|||
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
|
||||
|
|
|
@ -59,7 +59,6 @@ class ChannelSendInterface {
|
|||
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;
|
||||
|
|
|
@ -75,7 +75,6 @@ class MockChannelSend : public voe::ChannelSendInterface {
|
|||
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));
|
||||
|
|
|
@ -62,7 +62,6 @@ std::string AudioSendStream::Config::Rtp::ToString() const {
|
|||
}
|
||||
}
|
||||
ss << ']';
|
||||
ss << ", nack: " << nack.ToString();
|
||||
ss << ", c_name: " << c_name;
|
||||
ss << '}';
|
||||
return ss.str();
|
||||
|
|
|
@ -89,9 +89,6 @@ class AudioSendStream {
|
|||
// 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;
|
||||
|
|
|
@ -1024,8 +1024,6 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream
|
|||
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);
|
||||
|
|
|
@ -1635,18 +1635,6 @@ TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthForAudioDoesntAffectBwe) {
|
|||
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 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackAsCallee) {
|
|||
|
||||
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 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackRecvStreams) {
|
|||
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 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecDisableNackRecvStreams) {
|
|||
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 @@ TEST_F(WebRtcVoiceEngineTestFake, AddRecvStreamEnableNack) {
|
|||
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);
|
||||
|
|
|
@ -165,7 +165,6 @@ TEST_F(RetransmissionEndToEndTest, ReceivesNackAndRetransmitsAudio) {
|
|||
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;
|
||||
|
|
Loading…
Reference in a new issue