Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Commit b647785

Browse files
Erik SprångCommit Bot
authored andcommitted
Cleans up code related to legacy pre-pacing fec generation.
Bug: webrtc:11340 Change-Id: If3493db9fafdd3ad041f78999e304c8714be517f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186562 Reviewed-by: Sebastian Jansson <[email protected]> Commit-Queue: Erik Språng <[email protected]> Cr-Commit-Position: refs/heads/master@{#32349}
1 parent 0d1b044 commit b647785

File tree

9 files changed

+27
-167
lines changed

9 files changed

+27
-167
lines changed

call/rtp_video_sender.cc

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,6 @@ std::vector<RtpStreamSender> CreateRtpStreamSenders(
197197
FrameEncryptorInterface* frame_encryptor,
198198
const CryptoOptions& crypto_options,
199199
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
200-
bool use_deferred_fec,
201200
const WebRtcKeyValueConfig& trials) {
202201
RTC_DCHECK_GT(rtp_config.ssrcs.size(), 0);
203202

@@ -245,9 +244,6 @@ std::vector<RtpStreamSender> CreateRtpStreamSenders(
245244
std::unique_ptr<VideoFecGenerator> fec_generator =
246245
MaybeCreateFecGenerator(clock, rtp_config, suspended_ssrcs, i, trials);
247246
configuration.fec_generator = fec_generator.get();
248-
if (!use_deferred_fec) {
249-
video_config.fec_generator = fec_generator.get();
250-
}
251247

252248
configuration.rtx_send_ssrc =
253249
rtp_config.GetRtxSsrcAssociatedWithMediaSsrc(rtp_config.ssrcs[i]);
@@ -335,9 +331,6 @@ RtpVideoSender::RtpVideoSender(
335331
field_trials_.Lookup("WebRTC-SendSideBwe-WithOverhead"),
336332
"Enabled")),
337333
has_packet_feedback_(TransportSeqNumExtensionConfigured(rtp_config)),
338-
use_deferred_fec_(!absl::StartsWith(
339-
field_trials_.Lookup("WebRTC-DeferredFecGeneration"),
340-
"Disabled")),
341334
active_(false),
342335
module_process_thread_(nullptr),
343336
suspended_ssrcs_(std::move(suspended_ssrcs)),
@@ -356,7 +349,6 @@ RtpVideoSender::RtpVideoSender(
356349
frame_encryptor,
357350
crypto_options,
358351
std::move(frame_transformer),
359-
use_deferred_fec_,
360352
field_trials_)),
361353
rtp_config_(rtp_config),
362354
codec_type_(GetVideoCodecType(rtp_config)),
@@ -844,7 +836,6 @@ int RtpVideoSender::ProtectionRequest(const FecProtectionParams* delta_params,
844836
*sent_nack_rate_bps = 0;
845837
*sent_fec_rate_bps = 0;
846838
for (const RtpStreamSender& stream : rtp_streams_) {
847-
if (use_deferred_fec_) {
848839
stream.rtp_rtcp->SetFecProtectionParams(*delta_params, *key_params);
849840

850841
auto send_bitrate = stream.rtp_rtcp->GetSendRates();
@@ -853,17 +844,6 @@ int RtpVideoSender::ProtectionRequest(const FecProtectionParams* delta_params,
853844
send_bitrate[RtpPacketMediaType::kForwardErrorCorrection].bps();
854845
*sent_nack_rate_bps +=
855846
send_bitrate[RtpPacketMediaType::kRetransmission].bps();
856-
} else {
857-
if (stream.fec_generator) {
858-
stream.fec_generator->SetProtectionParameters(*delta_params,
859-
*key_params);
860-
*sent_fec_rate_bps += stream.fec_generator->CurrentFecRate().bps();
861-
}
862-
*sent_video_rate_bps += stream.sender_video->VideoBitrateSent();
863-
*sent_nack_rate_bps +=
864-
stream.rtp_rtcp->GetSendRates()[RtpPacketMediaType::kRetransmission]
865-
.bps<uint32_t>();
866-
}
867847
}
868848
return 0;
869849
}

call/rtp_video_sender.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,6 @@ class RtpVideoSender : public RtpVideoSenderInterface,
172172
const FieldTrialBasedConfig field_trials_;
173173
const bool send_side_bwe_with_overhead_;
174174
const bool has_packet_feedback_;
175-
const bool use_deferred_fec_;
176175

177176
// TODO(holmer): Remove mutex_ once RtpVideoSender runs on the
178177
// transport task queue.

modules/pacing/pacing_controller_unittest.cc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2106,10 +2106,7 @@ TEST_P(PacingControllerTest, PaddingTargetAccountsForPaddingRate) {
21062106
AdvanceTimeAndProcess();
21072107
}
21082108

2109-
TEST_P(PacingControllerTest, SendsDeferredFecPackets) {
2110-
ScopedFieldTrials trial("WebRTC-DeferredFecGeneration/Enabled/");
2111-
SetUp();
2112-
2109+
TEST_P(PacingControllerTest, SendsFecPackets) {
21132110
const uint32_t kSsrc = 12345;
21142111
const uint32_t kFlexSsrc = 54321;
21152112
uint16_t sequence_number = 1234;

modules/rtp_rtcp/source/rtp_sender_egress.cc

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,7 @@ RtpSenderEgress::RtpSenderEgress(const RtpRtcpInterface::Configuration& config,
101101
is_audio_(config.audio),
102102
#endif
103103
need_rtp_packet_infos_(config.need_rtp_packet_infos),
104-
fec_generator_(!IsTrialSetTo(config.field_trials,
105-
"WebRTC-DeferredFecGeneration",
106-
"Disabled")
107-
? config.fec_generator
108-
: nullptr),
104+
fec_generator_(config.fec_generator),
109105
transport_feedback_observer_(config.transport_feedback_callback),
110106
send_side_delay_observer_(config.send_side_delay_observer),
111107
send_packet_observer_(config.send_packet_observer),
@@ -176,7 +172,7 @@ void RtpSenderEgress::SendPacket(RtpPacketToSend* packet,
176172
}
177173

178174
if (fec_generator_ && packet->fec_protect_packet()) {
179-
// Deferred fec generation is used, add packet to generator.
175+
// This packet should be protected by FEC, add it to packet generator.
180176
RTC_DCHECK(fec_generator_);
181177
RTC_DCHECK(packet->packet_type() == RtpPacketMediaType::kVideo);
182178
absl::optional<std::pair<FecProtectionParams, FecProtectionParams>>

modules/rtp_rtcp/source/rtp_sender_unittest.cc

Lines changed: 9 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,8 @@ MATCHER_P(SameRtcEventTypeAs, value, "") {
143143
}
144144

145145
struct TestConfig {
146-
TestConfig(bool with_overhead, bool deferred_fec)
147-
: with_overhead(with_overhead), deferred_fec(deferred_fec) {}
146+
explicit TestConfig(bool with_overhead) : with_overhead(with_overhead) {}
148147
bool with_overhead = false;
149-
bool deferred_fec = false;
150148
};
151149

152150
class MockRtpPacketPacer : public RtpPacketSender {
@@ -283,12 +281,10 @@ class FieldTrialConfig : public WebRtcKeyValueConfig {
283281
public:
284282
FieldTrialConfig()
285283
: overhead_enabled_(false),
286-
deferred_fec_(false),
287284
max_padding_factor_(1200) {}
288285
~FieldTrialConfig() override {}
289286

290287
void SetOverHeadEnabled(bool enabled) { overhead_enabled_ = enabled; }
291-
void UseDeferredFec(bool enabled) { deferred_fec_ = enabled; }
292288
void SetMaxPaddingFactor(double factor) { max_padding_factor_ = factor; }
293289

294290
std::string Lookup(absl::string_view key) const override {
@@ -299,15 +295,12 @@ class FieldTrialConfig : public WebRtcKeyValueConfig {
299295
return ssb.str();
300296
} else if (key == "WebRTC-SendSideBwe-WithOverhead") {
301297
return overhead_enabled_ ? "Enabled" : "Disabled";
302-
} else if (key == "WebRTC-DeferredFecGeneration") {
303-
return deferred_fec_ ? "Enabled" : "Disabled";
304298
}
305299
return "";
306300
}
307301

308302
private:
309303
bool overhead_enabled_;
310-
bool deferred_fec_;
311304
double max_padding_factor_;
312305
};
313306

@@ -329,7 +322,6 @@ class RtpSenderTest : public ::testing::TestWithParam<TestConfig> {
329322
clock_),
330323
kMarkerBit(true) {
331324
field_trials_.SetOverHeadEnabled(GetParam().with_overhead);
332-
field_trials_.UseDeferredFec(GetParam().deferred_fec);
333325
}
334326

335327
void SetUp() override { SetUpRtpSender(true, false, false); }
@@ -1339,9 +1331,6 @@ TEST_P(RtpSenderTest, SendFlexfecPackets) {
13391331
RTPSenderVideo::Config video_config;
13401332
video_config.clock = clock_;
13411333
video_config.rtp_sender = rtp_sender();
1342-
if (!GetParam().deferred_fec) {
1343-
video_config.fec_generator = &flexfec_sender;
1344-
}
13451334
video_config.fec_type = flexfec_sender.GetFecType();
13461335
video_config.fec_overhead_bytes = flexfec_sender.MaxPacketOverhead();
13471336
video_config.fec_type = flexfec_sender.GetFecType();
@@ -1369,7 +1358,7 @@ TEST_P(RtpSenderTest, SendFlexfecPackets) {
13691358
EXPECT_EQ(packet->Ssrc(), kSsrc);
13701359
EXPECT_EQ(packet->SequenceNumber(), kSeqNum);
13711360
media_packet = std::move(packet);
1372-
if (GetParam().deferred_fec) {
1361+
13731362
// Simulate RtpSenderEgress adding packet to fec generator.
13741363
flexfec_sender.AddPacketAndGenerateFec(*media_packet);
13751364
auto fec_packets = flexfec_sender.GetFecPackets();
@@ -1378,7 +1367,6 @@ TEST_P(RtpSenderTest, SendFlexfecPackets) {
13781367
EXPECT_EQ(fec_packet->packet_type(),
13791368
RtpPacketMediaType::kForwardErrorCorrection);
13801369
EXPECT_EQ(fec_packet->Ssrc(), kFlexFecSsrc);
1381-
}
13821370
} else {
13831371
EXPECT_EQ(packet->packet_type(),
13841372
RtpPacketMediaType::kForwardErrorCorrection);
@@ -1440,9 +1428,6 @@ TEST_P(RtpSenderTestWithoutPacer, SendFlexfecPackets) {
14401428
RTPSenderVideo::Config video_config;
14411429
video_config.clock = clock_;
14421430
video_config.rtp_sender = rtp_sender();
1443-
if (!GetParam().deferred_fec) {
1444-
video_config.fec_generator = &flexfec_sender;
1445-
}
14461431
video_config.fec_type = flexfec_sender.GetFecType();
14471432
video_config.fec_overhead_bytes = flexfec_sender_.MaxPacketOverhead();
14481433
video_config.field_trials = &field_trials;
@@ -1453,11 +1438,7 @@ TEST_P(RtpSenderTestWithoutPacer, SendFlexfecPackets) {
14531438
params.fec_rate = 15;
14541439
params.max_fec_frames = 1;
14551440
params.fec_mask_type = kFecMaskRandom;
1456-
if (GetParam().deferred_fec) {
1457-
rtp_egress()->SetFecProtectionParameters(params, params);
1458-
} else {
1459-
flexfec_sender.SetProtectionParameters(params, params);
1460-
}
1441+
rtp_egress()->SetFecProtectionParameters(params, params);
14611442

14621443
EXPECT_CALL(mock_rtc_event_log_,
14631444
LogProxy(SameRtcEventTypeAs(RtcEvent::Type::RtpPacketOutgoing)))
@@ -1768,9 +1749,6 @@ TEST_P(RtpSenderTest, FecOverheadRate) {
17681749
RTPSenderVideo::Config video_config;
17691750
video_config.clock = clock_;
17701751
video_config.rtp_sender = rtp_sender();
1771-
if (!GetParam().deferred_fec) {
1772-
video_config.fec_generator = &flexfec_sender;
1773-
}
17741752
video_config.fec_type = flexfec_sender.GetFecType();
17751753
video_config.fec_overhead_bytes = flexfec_sender.MaxPacketOverhead();
17761754
video_config.field_trials = &field_trials;
@@ -1780,11 +1758,7 @@ TEST_P(RtpSenderTest, FecOverheadRate) {
17801758
params.fec_rate = 15;
17811759
params.max_fec_frames = 1;
17821760
params.fec_mask_type = kFecMaskRandom;
1783-
if (GetParam().deferred_fec) {
1784-
rtp_egress()->SetFecProtectionParameters(params, params);
1785-
} else {
1786-
flexfec_sender.SetProtectionParameters(params, params);
1787-
}
1761+
rtp_egress()->SetFecProtectionParameters(params, params);
17881762

17891763
constexpr size_t kNumMediaPackets = 10;
17901764
constexpr size_t kNumFecPackets = kNumMediaPackets;
@@ -1806,19 +1780,13 @@ TEST_P(RtpSenderTest, FecOverheadRate) {
18061780
constexpr size_t kPacketLength = kRtpHeaderLength + kFlexfecHeaderLength +
18071781
kGenericCodecHeaderLength + kPayloadLength;
18081782

1809-
if (GetParam().deferred_fec) {
18101783
EXPECT_NEAR(
18111784
kNumFecPackets * kPacketLength * 8 /
18121785
(kNumFecPackets * kTimeBetweenPacketsMs / 1000.0f),
18131786
rtp_egress()
18141787
->GetSendRates()[RtpPacketMediaType::kForwardErrorCorrection]
18151788
.bps<double>(),
18161789
500);
1817-
} else {
1818-
EXPECT_NEAR(kNumFecPackets * kPacketLength * 8 /
1819-
(kNumFecPackets * kTimeBetweenPacketsMs / 1000.0f),
1820-
flexfec_sender.CurrentFecRate().bps<double>(), 500);
1821-
}
18221790
}
18231791

18241792
TEST_P(RtpSenderTest, BitrateCallbacks) {
@@ -1970,9 +1938,6 @@ TEST_P(RtpSenderTestWithoutPacer, StreamDataCountersCallbacksUlpfec) {
19701938
video_config.rtp_sender = rtp_sender();
19711939
video_config.field_trials = &field_trials_;
19721940
video_config.red_payload_type = kRedPayloadType;
1973-
if (!GetParam().deferred_fec) {
1974-
video_config.fec_generator = &ulpfec_generator;
1975-
}
19761941
video_config.fec_type = ulpfec_generator.GetFecType();
19771942
video_config.fec_overhead_bytes = ulpfec_generator.MaxPacketOverhead();
19781943
RTPSenderVideo rtp_sender_video(video_config);
@@ -1989,11 +1954,7 @@ TEST_P(RtpSenderTestWithoutPacer, StreamDataCountersCallbacksUlpfec) {
19891954
fec_params.fec_mask_type = kFecMaskRandom;
19901955
fec_params.fec_rate = 1;
19911956
fec_params.max_fec_frames = 1;
1992-
if (GetParam().deferred_fec) {
1993-
rtp_egress()->SetFecProtectionParameters(fec_params, fec_params);
1994-
} else {
1995-
ulpfec_generator.SetProtectionParameters(fec_params, fec_params);
1996-
}
1957+
rtp_egress()->SetFecProtectionParameters(fec_params, fec_params);
19971958
video_header.frame_type = VideoFrameType::kVideoFrameDelta;
19981959
ASSERT_TRUE(rtp_sender_video.SendVideo(kPayloadType, kCodecType, 1234, 4321,
19991960
payload, video_header,
@@ -2823,11 +2784,6 @@ TEST_P(RtpSenderTest, IgnoresNackAfterDisablingMedia) {
28232784
}
28242785

28252786
TEST_P(RtpSenderTest, DoesntFecProtectRetransmissions) {
2826-
if (!GetParam().deferred_fec) {
2827-
// This test make sense only for deferred fec generation.
2828-
return;
2829-
}
2830-
28312787
// Set up retranmission without RTX, so that a plain copy of the old packet is
28322788
// re-sent instead.
28332789
const int64_t kRtt = 10;
@@ -2864,16 +2820,12 @@ TEST_P(RtpSenderTest, DoesntFecProtectRetransmissions) {
28642820

28652821
INSTANTIATE_TEST_SUITE_P(WithAndWithoutOverhead,
28662822
RtpSenderTest,
2867-
::testing::Values(TestConfig{false, false},
2868-
TestConfig{false, true},
2869-
TestConfig{true, false},
2870-
TestConfig{false, false}));
2823+
::testing::Values(TestConfig{false},
2824+
TestConfig{true}));
28712825

28722826
INSTANTIATE_TEST_SUITE_P(WithAndWithoutOverhead,
28732827
RtpSenderTestWithoutPacer,
2874-
::testing::Values(TestConfig{false, false},
2875-
TestConfig{false, true},
2876-
TestConfig{true, false},
2877-
TestConfig{false, false}));
2828+
::testing::Values(TestConfig{false},
2829+
TestConfig{true}));
28782830

28792831
} // namespace webrtc

0 commit comments

Comments
 (0)