Propagate Environment to RtpPacketHistory
Passing Environment instead of Clock into this class simplifies some plumbing for downstream consumers that need to read field trials within this class. Bug: webrtc:362762208 Change-Id: Ia501e9f7f1d91a8115a2f71fb005dd35146db172 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362535 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Åsa Persson <asapersson@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43048}
This commit is contained in:
parent
5cf1285330
commit
bba1a2e476
@ -50,6 +50,15 @@ void RtpPacketHistory::StoredPacket::IncrementTimesRetransmitted() {
|
|||||||
++times_retransmitted_;
|
++times_retransmitted_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RtpPacketHistory::RtpPacketHistory(const Environment& env,
|
||||||
|
PaddingMode padding_mode)
|
||||||
|
: clock_(&env.clock()),
|
||||||
|
padding_mode_(padding_mode),
|
||||||
|
number_to_store_(0),
|
||||||
|
mode_(StorageMode::kDisabled),
|
||||||
|
rtt_(TimeDelta::MinusInfinity()),
|
||||||
|
packets_inserted_(0) {}
|
||||||
|
|
||||||
RtpPacketHistory::RtpPacketHistory(Clock* clock, PaddingMode padding_mode)
|
RtpPacketHistory::RtpPacketHistory(Clock* clock, PaddingMode padding_mode)
|
||||||
: clock_(clock),
|
: clock_(clock),
|
||||||
padding_mode_(padding_mode),
|
padding_mode_(padding_mode),
|
||||||
|
|||||||
@ -19,6 +19,7 @@
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "api/environment/environment.h"
|
||||||
#include "api/function_view.h"
|
#include "api/function_view.h"
|
||||||
#include "api/units/time_delta.h"
|
#include "api/units/time_delta.h"
|
||||||
#include "api/units/timestamp.h"
|
#include "api/units/timestamp.h"
|
||||||
@ -56,7 +57,11 @@ class RtpPacketHistory {
|
|||||||
// With kStoreAndCull, always remove packets after 3x max(1000ms, 3x rtt).
|
// With kStoreAndCull, always remove packets after 3x max(1000ms, 3x rtt).
|
||||||
static constexpr int kPacketCullingDelayFactor = 3;
|
static constexpr int kPacketCullingDelayFactor = 3;
|
||||||
|
|
||||||
RtpPacketHistory(Clock* clock, PaddingMode padding_mode);
|
RtpPacketHistory(const Environment& env, PaddingMode padding_mode);
|
||||||
|
|
||||||
|
[[deprecated("Use Environment constructor")]] RtpPacketHistory(
|
||||||
|
Clock* clock,
|
||||||
|
PaddingMode padding_mode);
|
||||||
|
|
||||||
RtpPacketHistory() = delete;
|
RtpPacketHistory() = delete;
|
||||||
RtpPacketHistory(const RtpPacketHistory&) = delete;
|
RtpPacketHistory(const RtpPacketHistory&) = delete;
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
#include "api/environment/environment_factory.h"
|
||||||
#include "api/units/time_delta.h"
|
#include "api/units/time_delta.h"
|
||||||
#include "api/units/timestamp.h"
|
#include "api/units/timestamp.h"
|
||||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||||
@ -57,9 +58,11 @@ class RtpPacketHistoryTest
|
|||||||
protected:
|
protected:
|
||||||
RtpPacketHistoryTest()
|
RtpPacketHistoryTest()
|
||||||
: fake_clock_(123456),
|
: fake_clock_(123456),
|
||||||
hist_(&fake_clock_, /*enable_padding_prio=*/GetParam()) {}
|
env_(CreateEnvironment(&fake_clock_)),
|
||||||
|
hist_(env_, /*enable_padding_prio=*/GetParam()) {}
|
||||||
|
|
||||||
SimulatedClock fake_clock_;
|
SimulatedClock fake_clock_;
|
||||||
|
Environment env_;
|
||||||
RtpPacketHistory hist_;
|
RtpPacketHistory hist_;
|
||||||
|
|
||||||
std::unique_ptr<RtpPacketToSend> CreateRtpPacket(uint16_t seq_num) {
|
std::unique_ptr<RtpPacketToSend> CreateRtpPacket(uint16_t seq_num) {
|
||||||
@ -626,7 +629,8 @@ INSTANTIATE_TEST_SUITE_P(
|
|||||||
TEST(RtpPacketHistoryRecentLargePacketMode,
|
TEST(RtpPacketHistoryRecentLargePacketMode,
|
||||||
GetPayloadPaddingPacketAfterCullWithAcksReturnOldPacket) {
|
GetPayloadPaddingPacketAfterCullWithAcksReturnOldPacket) {
|
||||||
SimulatedClock fake_clock(1234);
|
SimulatedClock fake_clock(1234);
|
||||||
RtpPacketHistory history(&fake_clock,
|
Environment env = CreateEnvironment(&fake_clock);
|
||||||
|
RtpPacketHistory history(env,
|
||||||
RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
||||||
|
|
||||||
history.SetStorePacketsStatus(StorageMode::kStoreAndCull, 10);
|
history.SetStorePacketsStatus(StorageMode::kStoreAndCull, 10);
|
||||||
@ -646,7 +650,8 @@ TEST(RtpPacketHistoryRecentLargePacketMode,
|
|||||||
TEST(RtpPacketHistoryRecentLargePacketMode,
|
TEST(RtpPacketHistoryRecentLargePacketMode,
|
||||||
GetPayloadPaddingPacketIgnoreSmallRecentPackets) {
|
GetPayloadPaddingPacketIgnoreSmallRecentPackets) {
|
||||||
SimulatedClock fake_clock(1234);
|
SimulatedClock fake_clock(1234);
|
||||||
RtpPacketHistory history(&fake_clock,
|
Environment env = CreateEnvironment(&fake_clock);
|
||||||
|
RtpPacketHistory history(env,
|
||||||
RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
||||||
history.SetStorePacketsStatus(StorageMode::kStoreAndCull, 10);
|
history.SetStorePacketsStatus(StorageMode::kStoreAndCull, 10);
|
||||||
std::unique_ptr<RtpPacketToSend> packet = CreatePacket(kStartSeqNum);
|
std::unique_ptr<RtpPacketToSend> packet = CreatePacket(kStartSeqNum);
|
||||||
@ -667,7 +672,8 @@ TEST(RtpPacketHistoryRecentLargePacketMode,
|
|||||||
TEST(RtpPacketHistoryRecentLargePacketMode,
|
TEST(RtpPacketHistoryRecentLargePacketMode,
|
||||||
GetPayloadPaddingPacketReturnsRecentPacketIfSizeNearMax) {
|
GetPayloadPaddingPacketReturnsRecentPacketIfSizeNearMax) {
|
||||||
SimulatedClock fake_clock(1234);
|
SimulatedClock fake_clock(1234);
|
||||||
RtpPacketHistory history(&fake_clock,
|
Environment env = CreateEnvironment(&fake_clock);
|
||||||
|
RtpPacketHistory history(env,
|
||||||
RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
||||||
history.SetStorePacketsStatus(StorageMode::kStoreAndCull, 10);
|
history.SetStorePacketsStatus(StorageMode::kStoreAndCull, 10);
|
||||||
std::unique_ptr<RtpPacketToSend> packet = CreatePacket(kStartSeqNum);
|
std::unique_ptr<RtpPacketToSend> packet = CreatePacket(kStartSeqNum);
|
||||||
@ -688,7 +694,8 @@ TEST(RtpPacketHistoryRecentLargePacketMode,
|
|||||||
TEST(RtpPacketHistoryRecentLargePacketMode,
|
TEST(RtpPacketHistoryRecentLargePacketMode,
|
||||||
GetPayloadPaddingPacketReturnsLastPacketAfterLargeSequenceNumberGap) {
|
GetPayloadPaddingPacketReturnsLastPacketAfterLargeSequenceNumberGap) {
|
||||||
SimulatedClock fake_clock(1234);
|
SimulatedClock fake_clock(1234);
|
||||||
RtpPacketHistory history(&fake_clock,
|
Environment env = CreateEnvironment(&fake_clock);
|
||||||
|
RtpPacketHistory history(env,
|
||||||
RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
||||||
history.SetStorePacketsStatus(StorageMode::kStoreAndCull, 10);
|
history.SetStorePacketsStatus(StorageMode::kStoreAndCull, 10);
|
||||||
uint16_t sequence_number = std::numeric_limits<uint16_t>::max() - 50;
|
uint16_t sequence_number = std::numeric_limits<uint16_t>::max() - 50;
|
||||||
|
|||||||
@ -58,8 +58,7 @@ constexpr TimeDelta kDefaultExpectedRetransmissionTime = TimeDelta::Millis(125);
|
|||||||
ModuleRtpRtcpImpl::RtpSenderContext::RtpSenderContext(
|
ModuleRtpRtcpImpl::RtpSenderContext::RtpSenderContext(
|
||||||
const Environment& env,
|
const Environment& env,
|
||||||
const RtpRtcpInterface::Configuration& config)
|
const RtpRtcpInterface::Configuration& config)
|
||||||
: packet_history(&env.clock(),
|
: packet_history(env, RtpPacketHistory::PaddingMode::kRecentLargePacket),
|
||||||
RtpPacketHistory::PaddingMode::kRecentLargePacket),
|
|
||||||
sequencer_(config.local_media_ssrc,
|
sequencer_(config.local_media_ssrc,
|
||||||
config.rtx_send_ssrc,
|
config.rtx_send_ssrc,
|
||||||
/*require_marker_before_media_padding=*/!config.audio,
|
/*require_marker_before_media_padding=*/!config.audio,
|
||||||
|
|||||||
@ -73,8 +73,7 @@ ModuleRtpRtcpImpl2::RtpSenderContext::RtpSenderContext(
|
|||||||
const Environment& env,
|
const Environment& env,
|
||||||
TaskQueueBase& worker_queue,
|
TaskQueueBase& worker_queue,
|
||||||
const RtpRtcpInterface::Configuration& config)
|
const RtpRtcpInterface::Configuration& config)
|
||||||
: packet_history(&env.clock(),
|
: packet_history(env, RtpPacketHistory::PaddingMode::kRecentLargePacket),
|
||||||
RtpPacketHistory::PaddingMode::kRecentLargePacket),
|
|
||||||
sequencer(config.local_media_ssrc,
|
sequencer(config.local_media_ssrc,
|
||||||
config.rtx_send_ssrc,
|
config.rtx_send_ssrc,
|
||||||
/*require_marker_before_media_padding=*/!config.audio,
|
/*require_marker_before_media_padding=*/!config.audio,
|
||||||
|
|||||||
@ -124,7 +124,7 @@ class RtpSenderEgressTest : public ::testing::Test {
|
|||||||
: time_controller_(kStartTime),
|
: time_controller_(kStartTime),
|
||||||
env_(CreateEnvironment(time_controller_.GetClock())),
|
env_(CreateEnvironment(time_controller_.GetClock())),
|
||||||
transport_(&header_extensions_),
|
transport_(&header_extensions_),
|
||||||
packet_history_(&env_.clock(),
|
packet_history_(env_,
|
||||||
RtpPacketHistory::PaddingMode::kRecentLargePacket),
|
RtpPacketHistory::PaddingMode::kRecentLargePacket),
|
||||||
sequence_number_(kStartSequenceNumber) {}
|
sequence_number_(kStartSequenceNumber) {}
|
||||||
|
|
||||||
|
|||||||
@ -154,7 +154,7 @@ class RtpSenderTest : public ::testing::Test {
|
|||||||
|
|
||||||
void CreateSender(const RtpRtcpInterface::Configuration& config) {
|
void CreateSender(const RtpRtcpInterface::Configuration& config) {
|
||||||
packet_history_ = std::make_unique<RtpPacketHistory>(
|
packet_history_ = std::make_unique<RtpPacketHistory>(
|
||||||
&env_.clock(), RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
env_, RtpPacketHistory::PaddingMode::kRecentLargePacket);
|
||||||
sequencer_.emplace(kSsrc, kRtxSsrc,
|
sequencer_.emplace(kSsrc, kRtxSsrc,
|
||||||
/*require_marker_before_media_padding=*/!config.audio,
|
/*require_marker_before_media_padding=*/!config.audio,
|
||||||
&env_.clock());
|
&env_.clock());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user