Remove RtpPacketToSend::GetHeader as almost unused.

Merge rtp::Packet::GetHeader into RtpPacketReceived::GetHeader removing
error-prone code where latter shadow former version

BUG=None

Review-Url: https://codereview.webrtc.org/3012983002
Cr-Commit-Position: refs/heads/master@{#19784}
This commit is contained in:
danilchap 2017-09-11 12:24:41 -07:00 committed by Commit Bot
parent a827c087fa
commit ce25181714
6 changed files with 68 additions and 59 deletions

View File

@ -118,6 +118,7 @@ rtc_static_library("rtp_rtcp") {
"source/rtp_packet.h",
"source/rtp_packet_history.cc",
"source/rtp_packet_history.h",
"source/rtp_packet_received.cc",
"source/rtp_packet_received.h",
"source/rtp_packet_to_send.h",
"source/rtp_payload_registry.cc",

View File

@ -16,7 +16,6 @@
#include "webrtc/common_types.h"
#include "webrtc/modules/rtp_rtcp/include/rtp_header_extension_map.h"
#include "webrtc/modules/rtp_rtcp/source/byte_io.h"
#include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h"
#include "webrtc/rtc_base/checks.h"
#include "webrtc/rtc_base/logging.h"
#include "webrtc/rtc_base/random.h"
@ -145,43 +144,6 @@ std::vector<uint32_t> Packet::Csrcs() const {
return csrcs;
}
void Packet::GetHeader(RTPHeader* header) const {
header->markerBit = Marker();
header->payloadType = PayloadType();
header->sequenceNumber = SequenceNumber();
header->timestamp = Timestamp();
header->ssrc = Ssrc();
std::vector<uint32_t> csrcs = Csrcs();
header->numCSRCs = csrcs.size();
for (size_t i = 0; i < csrcs.size(); ++i) {
header->arrOfCSRCs[i] = csrcs[i];
}
header->paddingLength = padding_size();
header->headerLength = headers_size();
header->payload_type_frequency = 0;
header->extension.hasTransmissionTimeOffset =
GetExtension<TransmissionOffset>(
&header->extension.transmissionTimeOffset);
header->extension.hasAbsoluteSendTime =
GetExtension<AbsoluteSendTime>(&header->extension.absoluteSendTime);
header->extension.hasTransportSequenceNumber =
GetExtension<TransportSequenceNumber>(
&header->extension.transportSequenceNumber);
header->extension.hasAudioLevel = GetExtension<AudioLevel>(
&header->extension.voiceActivity, &header->extension.audioLevel);
header->extension.hasVideoRotation =
GetExtension<VideoOrientation>(&header->extension.videoRotation);
header->extension.hasVideoContentType =
GetExtension<VideoContentTypeExtension>(
&header->extension.videoContentType);
header->extension.has_video_timing =
GetExtension<VideoTimingExtension>(&header->extension.video_timing);
GetExtension<RtpStreamId>(&header->extension.stream_id);
GetExtension<RepairedRtpStreamId>(&header->extension.repaired_stream_id);
GetExtension<RtpMid>(&header->extension.mid);
GetExtension<PlayoutDelayLimits>(&header->extension.playout_delay);
}
size_t Packet::headers_size() const {
return payload_offset_;
}

View File

@ -18,7 +18,6 @@
#include "webrtc/rtc_base/copyonwritebuffer.h"
namespace webrtc {
struct RTPHeader;
class RtpHeaderExtensionMap;
class Random;
@ -49,10 +48,6 @@ class Packet {
uint32_t Ssrc() const;
std::vector<uint32_t> Csrcs() const;
// TODO(danilchap): Remove this function when all code update to use RtpPacket
// directly. Function is there just for easier backward compatibilty.
void GetHeader(RTPHeader* header) const;
size_t headers_size() const;
// Payload.
@ -127,7 +122,7 @@ class Packet {
explicit Packet(const ExtensionManager* extensions);
Packet(const Packet&);
Packet(const ExtensionManager* extensions, size_t capacity);
virtual ~Packet();
~Packet();
Packet& operator=(const Packet&) = default;

View File

@ -0,0 +1,56 @@
/*
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/modules/rtp_rtcp/source/rtp_packet_received.h"
#include <vector>
#include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h"
namespace webrtc {
void RtpPacketReceived::GetHeader(RTPHeader* header) const {
header->markerBit = Marker();
header->payloadType = PayloadType();
header->sequenceNumber = SequenceNumber();
header->timestamp = Timestamp();
header->ssrc = Ssrc();
std::vector<uint32_t> csrcs = Csrcs();
header->numCSRCs = csrcs.size();
for (size_t i = 0; i < csrcs.size(); ++i) {
header->arrOfCSRCs[i] = csrcs[i];
}
header->paddingLength = padding_size();
header->headerLength = headers_size();
header->payload_type_frequency = payload_type_frequency();
header->extension.hasTransmissionTimeOffset =
GetExtension<TransmissionOffset>(
&header->extension.transmissionTimeOffset);
header->extension.hasAbsoluteSendTime =
GetExtension<AbsoluteSendTime>(&header->extension.absoluteSendTime);
header->extension.hasTransportSequenceNumber =
GetExtension<TransportSequenceNumber>(
&header->extension.transportSequenceNumber);
header->extension.hasAudioLevel = GetExtension<AudioLevel>(
&header->extension.voiceActivity, &header->extension.audioLevel);
header->extension.hasVideoRotation =
GetExtension<VideoOrientation>(&header->extension.videoRotation);
header->extension.hasVideoContentType =
GetExtension<VideoContentTypeExtension>(
&header->extension.videoContentType);
header->extension.has_video_timing =
GetExtension<VideoTimingExtension>(&header->extension.video_timing);
GetExtension<RtpStreamId>(&header->extension.stream_id);
GetExtension<RepairedRtpStreamId>(&header->extension.repaired_stream_id);
GetExtension<RtpMid>(&header->extension.mid);
GetExtension<PlayoutDelayLimits>(&header->extension.playout_delay);
}
} // namespace webrtc

View File

@ -22,10 +22,9 @@ class RtpPacketReceived : public rtp::Packet {
explicit RtpPacketReceived(const ExtensionManager* extensions)
: Packet(extensions) {}
void GetHeader(RTPHeader* header) const {
Packet::GetHeader(header);
header->payload_type_frequency = payload_type_frequency();
}
// TODO(danilchap): Remove this function when all code update to use RtpPacket
// directly. Function is there just for easier backward compatibilty.
void GetHeader(RTPHeader* header) const;
// Time in local time base as close as it can to packet arrived on the
// network.

View File

@ -500,9 +500,6 @@ TEST_P(RtpSenderTestWithoutPacer, WritesTimestampToTimingExtension) {
packet->SetExtension<VideoTimingExtension>(kVideoTiming);
EXPECT_TRUE(rtp_sender_->AssignSequenceNumber(packet.get()));
size_t packet_size = packet->size();
webrtc::RTPHeader rtp_header;
packet->GetHeader(&rtp_header);
const int kStoredTimeInMs = 100;
fake_clock_.AdvanceTimeMilliseconds(kStoredTimeInMs);
@ -513,10 +510,10 @@ TEST_P(RtpSenderTestWithoutPacer, WritesTimestampToTimingExtension) {
EXPECT_EQ(1, transport_.packets_sent());
EXPECT_EQ(packet_size, transport_.last_sent_packet().size());
transport_.last_sent_packet().GetHeader(&rtp_header);
EXPECT_TRUE(rtp_header.extension.has_video_timing);
EXPECT_EQ(kStoredTimeInMs,
rtp_header.extension.video_timing.pacer_exit_delta_ms);
VideoSendTiming video_timing;
EXPECT_TRUE(transport_.last_sent_packet().GetExtension<VideoTimingExtension>(
&video_timing));
EXPECT_EQ(kStoredTimeInMs, video_timing.pacer_exit_delta_ms);
fake_clock_.AdvanceTimeMilliseconds(kStoredTimeInMs);
rtp_sender_->TimeToSendPacket(kSsrc, kSeqNum, capture_time_ms, false,
@ -525,10 +522,9 @@ TEST_P(RtpSenderTestWithoutPacer, WritesTimestampToTimingExtension) {
EXPECT_EQ(2, transport_.packets_sent());
EXPECT_EQ(packet_size, transport_.last_sent_packet().size());
transport_.last_sent_packet().GetHeader(&rtp_header);
EXPECT_TRUE(rtp_header.extension.has_video_timing);
EXPECT_EQ(kStoredTimeInMs * 2,
rtp_header.extension.video_timing.pacer_exit_delta_ms);
EXPECT_TRUE(transport_.last_sent_packet().GetExtension<VideoTimingExtension>(
&video_timing));
EXPECT_EQ(kStoredTimeInMs * 2, video_timing.pacer_exit_delta_ms);
}
TEST_P(RtpSenderTest, TrafficSmoothingWithExtensions) {