Merge RtpPacket HasExtension and IsExtensionReserved functions
RtpPacket doesn't keep difference between reserved and set extension. Bug: None Change-Id: I1c79f4ebd7ba20ae5da0194c3faa418050db7d8e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166340 Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30316}
This commit is contained in:
parent
f5c1f79a28
commit
629de6f7ed
@ -139,7 +139,7 @@ void PacketRouter::SendPacket(std::unique_ptr<RtpPacketToSend> packet,
|
||||
rtc::CritScope cs(&modules_crit_);
|
||||
// With the new pacer code path, transport sequence numbers are only set here,
|
||||
// on the pacer thread. Therefore we don't need atomics/synchronization.
|
||||
if (packet->IsExtensionReserved<TransportSequenceNumber>()) {
|
||||
if (packet->HasExtension<TransportSequenceNumber>()) {
|
||||
packet->SetExtension<TransportSequenceNumber>((++transport_seq_) & 0xFFFF);
|
||||
}
|
||||
|
||||
|
||||
@ -618,11 +618,6 @@ rtc::ArrayView<uint8_t> RtpPacket::AllocateExtension(ExtensionType type,
|
||||
}
|
||||
|
||||
bool RtpPacket::HasExtension(ExtensionType type) const {
|
||||
// TODO(webrtc:7990): Add support for empty extensions (length==0).
|
||||
return !FindExtension(type).empty();
|
||||
}
|
||||
|
||||
bool RtpPacket::IsExtensionReserved(ExtensionType type) const {
|
||||
uint8_t id = extensions_.GetId(type);
|
||||
if (id == ExtensionManager::kInvalidId) {
|
||||
// Extension not registered.
|
||||
|
||||
@ -112,10 +112,6 @@ class RtpPacket {
|
||||
bool HasExtension() const;
|
||||
bool HasExtension(ExtensionType type) const;
|
||||
|
||||
template <typename Extension>
|
||||
bool IsExtensionReserved() const;
|
||||
bool IsExtensionReserved(ExtensionType type) const;
|
||||
|
||||
template <typename Extension, typename FirstValue, typename... Values>
|
||||
bool GetExtension(FirstValue, Values...) const;
|
||||
|
||||
@ -207,11 +203,6 @@ bool RtpPacket::HasExtension() const {
|
||||
return HasExtension(Extension::kId);
|
||||
}
|
||||
|
||||
template <typename Extension>
|
||||
bool RtpPacket::IsExtensionReserved() const {
|
||||
return IsExtensionReserved(Extension::kId);
|
||||
}
|
||||
|
||||
template <typename Extension, typename FirstValue, typename... Values>
|
||||
bool RtpPacket::GetExtension(FirstValue first, Values... values) const {
|
||||
auto raw = FindExtension(Extension::kId);
|
||||
|
||||
@ -996,7 +996,7 @@ TEST(RtpPacketTest,
|
||||
kFeedbackRequest->sequence_count);
|
||||
}
|
||||
|
||||
TEST(RtpPacketTest, IsExtensionReserved) {
|
||||
TEST(RtpPacketTest, ReservedExtensionsCountedAsSetExtension) {
|
||||
// Register two extensions.
|
||||
RtpPacketToSend::ExtensionManager extensions;
|
||||
extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
|
||||
@ -1011,9 +1011,9 @@ TEST(RtpPacketTest, IsExtensionReserved) {
|
||||
|
||||
// Only the extension that is both registered and reserved matches
|
||||
// IsExtensionReserved().
|
||||
EXPECT_FALSE(packet.IsExtensionReserved<VideoContentTypeExtension>());
|
||||
EXPECT_FALSE(packet.IsExtensionReserved<AudioLevel>());
|
||||
EXPECT_TRUE(packet.IsExtensionReserved<TransmissionOffset>());
|
||||
EXPECT_FALSE(packet.HasExtension<VideoContentTypeExtension>());
|
||||
EXPECT_FALSE(packet.HasExtension<AudioLevel>());
|
||||
EXPECT_TRUE(packet.HasExtension<TransmissionOffset>());
|
||||
}
|
||||
|
||||
// Tests that RtpPacket::RemoveExtension can successfully remove extensions.
|
||||
|
||||
@ -124,10 +124,10 @@ void RtpSenderEgress::SendPacket(RtpPacketToSend* packet,
|
||||
// data after rtp header may be corrupted if these packets are protected by
|
||||
// the FEC.
|
||||
int64_t diff_ms = now_ms - packet->capture_time_ms();
|
||||
if (packet->IsExtensionReserved<TransmissionOffset>()) {
|
||||
if (packet->HasExtension<TransmissionOffset>()) {
|
||||
packet->SetExtension<TransmissionOffset>(kTimestampTicksPerMs * diff_ms);
|
||||
}
|
||||
if (packet->IsExtensionReserved<AbsoluteSendTime>()) {
|
||||
if (packet->HasExtension<AbsoluteSendTime>()) {
|
||||
packet->SetExtension<AbsoluteSendTime>(
|
||||
AbsoluteSendTime::MsTo24Bits(now_ms));
|
||||
}
|
||||
|
||||
@ -2239,9 +2239,9 @@ TEST_P(RtpSenderTest, GeneratePaddingResendsOldPacketsWithRtx) {
|
||||
EXPECT_EQ(padding_packet->Ssrc(), kRtxSsrc);
|
||||
EXPECT_EQ(padding_packet->payload_size(),
|
||||
kPayloadPacketSize + kRtxHeaderSize);
|
||||
EXPECT_TRUE(padding_packet->IsExtensionReserved<TransportSequenceNumber>());
|
||||
EXPECT_TRUE(padding_packet->IsExtensionReserved<AbsoluteSendTime>());
|
||||
EXPECT_TRUE(padding_packet->IsExtensionReserved<TransmissionOffset>());
|
||||
EXPECT_TRUE(padding_packet->HasExtension<TransportSequenceNumber>());
|
||||
EXPECT_TRUE(padding_packet->HasExtension<AbsoluteSendTime>());
|
||||
EXPECT_TRUE(padding_packet->HasExtension<TransmissionOffset>());
|
||||
|
||||
// Verify all header extensions are received.
|
||||
rtp_egress()->SendPacket(padding_packet.get(), PacedPacketInfo());
|
||||
@ -2265,9 +2265,9 @@ TEST_P(RtpSenderTest, GeneratePaddingResendsOldPacketsWithRtx) {
|
||||
EXPECT_GT(packet->padding_size(), 0u);
|
||||
padding_bytes_generated += packet->padding_size();
|
||||
|
||||
EXPECT_TRUE(packet->IsExtensionReserved<TransportSequenceNumber>());
|
||||
EXPECT_TRUE(packet->IsExtensionReserved<AbsoluteSendTime>());
|
||||
EXPECT_TRUE(packet->IsExtensionReserved<TransmissionOffset>());
|
||||
EXPECT_TRUE(packet->HasExtension<TransportSequenceNumber>());
|
||||
EXPECT_TRUE(packet->HasExtension<AbsoluteSendTime>());
|
||||
EXPECT_TRUE(packet->HasExtension<TransmissionOffset>());
|
||||
|
||||
// Verify all header extensions are received.
|
||||
rtp_egress()->SendPacket(packet.get(), PacedPacketInfo());
|
||||
@ -2323,9 +2323,9 @@ TEST_P(RtpSenderTest, GeneratePaddingCreatesPurePaddingWithoutRtx) {
|
||||
EXPECT_EQ(packet->payload_size(), 0u);
|
||||
EXPECT_GT(packet->padding_size(), 0u);
|
||||
padding_bytes_generated += packet->padding_size();
|
||||
EXPECT_TRUE(packet->IsExtensionReserved<TransportSequenceNumber>());
|
||||
EXPECT_TRUE(packet->IsExtensionReserved<AbsoluteSendTime>());
|
||||
EXPECT_TRUE(packet->IsExtensionReserved<TransmissionOffset>());
|
||||
EXPECT_TRUE(packet->HasExtension<TransportSequenceNumber>());
|
||||
EXPECT_TRUE(packet->HasExtension<AbsoluteSendTime>());
|
||||
EXPECT_TRUE(packet->HasExtension<TransmissionOffset>());
|
||||
|
||||
// Verify all header extensions are received.
|
||||
rtp_egress()->SendPacket(packet.get(), PacedPacketInfo());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user