#include "modules/rtp_rtcp/source/rtp_packet_history.h"
#include <algorithm>
#include <cstdint>
#include <limits>
#include <memory>
#include <utility>
#include "modules/include/module_common_types_public.h"
#include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "system_wrappers/include/clock.h"
namespace webrtc {
namespace {
constexpr size_t kOldPayloadPaddingSizeHysteresis = …;
constexpr uint16_t kMaxOldPayloadPaddingSequenceNumber = …;
}
RtpPacketHistory::StoredPacket::StoredPacket(
std::unique_ptr<RtpPacketToSend> packet,
Timestamp send_time,
uint64_t insert_order)
: … { … }
RtpPacketHistory::StoredPacket::StoredPacket(StoredPacket&&) = default;
RtpPacketHistory::StoredPacket& RtpPacketHistory::StoredPacket::operator=(
RtpPacketHistory::StoredPacket&&) = default;
RtpPacketHistory::StoredPacket::~StoredPacket() = default;
void RtpPacketHistory::StoredPacket::IncrementTimesRetransmitted() { … }
RtpPacketHistory::RtpPacketHistory(Clock* clock, PaddingMode padding_mode)
: … { … }
RtpPacketHistory::~RtpPacketHistory() { … }
void RtpPacketHistory::SetStorePacketsStatus(StorageMode mode,
size_t number_to_store) { … }
RtpPacketHistory::StorageMode RtpPacketHistory::GetStorageMode() const { … }
void RtpPacketHistory::SetRtt(TimeDelta rtt) { … }
void RtpPacketHistory::PutRtpPacket(std::unique_ptr<RtpPacketToSend> packet,
Timestamp send_time) { … }
std::unique_ptr<RtpPacketToSend> RtpPacketHistory::GetPacketAndMarkAsPending(
uint16_t sequence_number) { … }
std::unique_ptr<RtpPacketToSend> RtpPacketHistory::GetPacketAndMarkAsPending(
uint16_t sequence_number,
rtc::FunctionView<std::unique_ptr<RtpPacketToSend>(const RtpPacketToSend&)>
encapsulate) { … }
void RtpPacketHistory::MarkPacketAsSent(uint16_t sequence_number) { … }
bool RtpPacketHistory::GetPacketState(uint16_t sequence_number) const { … }
bool RtpPacketHistory::VerifyRtt(
const RtpPacketHistory::StoredPacket& packet) const { … }
std::unique_ptr<RtpPacketToSend> RtpPacketHistory::GetPayloadPaddingPacket() { … }
std::unique_ptr<RtpPacketToSend> RtpPacketHistory::GetPayloadPaddingPacket(
rtc::FunctionView<std::unique_ptr<RtpPacketToSend>(const RtpPacketToSend&)>
encapsulate) { … }
void RtpPacketHistory::CullAcknowledgedPackets(
rtc::ArrayView<const uint16_t> sequence_numbers) { … }
void RtpPacketHistory::Clear() { … }
void RtpPacketHistory::Reset() { … }
void RtpPacketHistory::CullOldPackets() { … }
std::unique_ptr<RtpPacketToSend> RtpPacketHistory::RemovePacket(
int packet_index) { … }
int RtpPacketHistory::GetPacketIndex(uint16_t sequence_number) const { … }
RtpPacketHistory::StoredPacket* RtpPacketHistory::GetStoredPacket(
uint16_t sequence_number) { … }
}