Revert "Allows FEC generation after pacer step."
This reverts commit 75fd127640bdf1729af6b4a25875e6d01f1570e0. Reason for revert: Breaks downstream test Original change's description: > Allows FEC generation after pacer step. > > Split out from https://webrtc-review.googlesource.com/c/src/+/173708 > This CL enables FEC packets to be generated as media packets are sent, > rather than generated, i.e. media packets are inserted into the fec > generator after the pacing stage rather than at packetization time. > > This may have some small impact of performance. FEC packets are > typically only generated when a new packet with a marker bit is added, > which means FEC packets protecting a frame will now be sent after all > of the media packets, rather than (potentially) interleaved with them. > Therefore this feature is currently behind a flag so we can examine the > impact. Once we are comfortable with the behavior we'll make it default > and remove the old code. > > Note that this change does not include the "protect all header > extensions" part of the original CL - that will be a follow-up. > > Bug: webrtc:11340 > Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760 > Commit-Queue: Erik Språng <sprang@webrtc.org> > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#31558} TBR=sprang@webrtc.org,srte@webrtc.org Change-Id: Ie714e5f68580cbd57560e086c9dc7292a052de5f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:11340 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177983 Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31559}
This commit is contained in:
@ -97,10 +97,6 @@ class MockPacingControllerCallback : public PacingController::PacketSender {
|
||||
int64_t capture_timestamp,
|
||||
bool retransmission,
|
||||
bool padding));
|
||||
MOCK_METHOD(std::vector<std::unique_ptr<RtpPacketToSend>>,
|
||||
FetchFec,
|
||||
(),
|
||||
(override));
|
||||
MOCK_METHOD(size_t, SendPadding, (size_t target_size));
|
||||
};
|
||||
|
||||
@ -112,11 +108,6 @@ class MockPacketSender : public PacingController::PacketSender {
|
||||
(std::unique_ptr<RtpPacketToSend> packet,
|
||||
const PacedPacketInfo& cluster_info),
|
||||
(override));
|
||||
MOCK_METHOD(std::vector<std::unique_ptr<RtpPacketToSend>>,
|
||||
FetchFec,
|
||||
(),
|
||||
(override));
|
||||
|
||||
MOCK_METHOD(std::vector<std::unique_ptr<RtpPacketToSend>>,
|
||||
GeneratePadding,
|
||||
(DataSize target_size),
|
||||
@ -134,10 +125,6 @@ class PacingControllerPadding : public PacingController::PacketSender {
|
||||
total_bytes_sent_ += packet->payload_size();
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<RtpPacketToSend>> FetchFec() override {
|
||||
return {};
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<RtpPacketToSend>> GeneratePadding(
|
||||
DataSize target_size) override {
|
||||
size_t num_packets =
|
||||
@ -171,10 +158,6 @@ class PacingControllerProbing : public PacingController::PacketSender {
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<RtpPacketToSend>> FetchFec() override {
|
||||
return {};
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<RtpPacketToSend>> GeneratePadding(
|
||||
DataSize target_size) override {
|
||||
// From RTPSender:
|
||||
@ -316,7 +299,7 @@ class PacingControllerTest
|
||||
}
|
||||
|
||||
SimulatedClock clock_;
|
||||
::testing::NiceMock<MockPacingControllerCallback> callback_;
|
||||
MockPacingControllerCallback callback_;
|
||||
std::unique_ptr<PacingController> pacer_;
|
||||
};
|
||||
|
||||
@ -2046,38 +2029,6 @@ TEST_P(PacingControllerTest, PaddingTargetAccountsForPaddingRate) {
|
||||
AdvanceTimeAndProcess();
|
||||
}
|
||||
|
||||
TEST_P(PacingControllerTest, SendsDeferredFecPackets) {
|
||||
ScopedFieldTrials trial("WebRTC-DeferredFecGeneration/Enabled/");
|
||||
SetUp();
|
||||
|
||||
const uint32_t kSsrc = 12345;
|
||||
const uint32_t kFlexSsrc = 54321;
|
||||
uint16_t sequence_number = 1234;
|
||||
uint16_t flexfec_sequence_number = 4321;
|
||||
const size_t kPacketSize = 123;
|
||||
|
||||
// Set pacing rate to 1000 packet/s, no padding.
|
||||
pacer_->SetPacingRates(
|
||||
DataSize::Bytes(1000 * kPacketSize) / TimeDelta::Seconds(1),
|
||||
DataRate::Zero());
|
||||
|
||||
int64_t now = clock_.TimeInMilliseconds();
|
||||
Send(RtpPacketMediaType::kVideo, kSsrc, sequence_number, now, kPacketSize);
|
||||
EXPECT_CALL(callback_, SendPacket(kSsrc, sequence_number, now, false, false));
|
||||
EXPECT_CALL(callback_, FetchFec).WillOnce([&]() {
|
||||
EXPECT_CALL(callback_, SendPacket(kFlexSsrc, flexfec_sequence_number, now,
|
||||
false, false));
|
||||
EXPECT_CALL(callback_, FetchFec);
|
||||
std::vector<std::unique_ptr<RtpPacketToSend>> fec_packets;
|
||||
fec_packets.push_back(
|
||||
BuildPacket(RtpPacketMediaType::kForwardErrorCorrection, kFlexSsrc,
|
||||
flexfec_sequence_number, now, kPacketSize));
|
||||
return fec_packets;
|
||||
});
|
||||
AdvanceTimeAndProcess();
|
||||
AdvanceTimeAndProcess();
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(
|
||||
WithAndWithoutIntervalBudget,
|
||||
PacingControllerTest,
|
||||
|
||||
Reference in New Issue
Block a user