Remove rtcp::TransportFeedback::GetStatusVector/GetReceiveDeltas

in favor of GetPacketStatusCount/GetReceivedPackets

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2822153002
Cr-Commit-Position: refs/heads/master@{#17792}
This commit is contained in:
danilchap 2017-04-20 08:23:41 -07:00 committed by Commit bot
parent 714e5cd6c6
commit c1b693c7a8
3 changed files with 6 additions and 53 deletions

View File

@ -122,20 +122,12 @@ std::vector<PacketFeedback> TransportFeedbackAdapter::GetPacketFeedbackVector(
}
last_timestamp_us_ = timestamp_us;
auto received_packets = feedback.GetReceivedPackets();
std::vector<PacketFeedback> packet_feedback_vector;
if (received_packets.empty()) {
if (feedback.GetPacketStatusCount() == 0) {
LOG(LS_INFO) << "Empty transport feedback packet received.";
return packet_feedback_vector;
}
const uint16_t last_sequence_number =
received_packets.back().sequence_number();
const size_t packet_count =
1 + ForwardDiff(feedback.GetBaseSequence(), last_sequence_number);
packet_feedback_vector.reserve(packet_count);
// feedback.GetStatusVector().size() is a less efficient way to reach what
// should be the same value.
RTC_DCHECK_EQ(packet_count, feedback.GetStatusVector().size());
packet_feedback_vector.reserve(feedback.GetPacketStatusCount());
{
rtc::CritScope cs(&lock_);
@ -143,7 +135,7 @@ std::vector<PacketFeedback> TransportFeedbackAdapter::GetPacketFeedbackVector(
int64_t offset_us = 0;
int64_t timestamp_ms = 0;
uint16_t seq_num = feedback.GetBaseSequence();
for (const auto& packet : received_packets) {
for (const auto& packet : feedback.GetReceivedPackets()) {
// Insert into the vector those unreceived packets which precede this
// iteration's received packet.
for (; seq_num != packet.sequence_number(); ++seq_num) {

View File

@ -376,41 +376,10 @@ uint16_t TransportFeedback::GetBaseSequence() const {
return base_seq_no_;
}
std::vector<TransportFeedback::StatusSymbol>
TransportFeedback::GetStatusVector() const {
std::vector<TransportFeedback::StatusSymbol> symbols;
uint16_t seq_no = GetBaseSequence();
for (const auto& packet : packets_) {
for (; seq_no != packet.sequence_number(); ++seq_no)
symbols.push_back(StatusSymbol::kNotReceived);
if (packet.delta_ticks() >= 0x00 && packet.delta_ticks() <= 0xff) {
symbols.push_back(StatusSymbol::kReceivedSmallDelta);
} else {
symbols.push_back(StatusSymbol::kReceivedLargeDelta);
}
++seq_no;
}
return symbols;
}
std::vector<int16_t> TransportFeedback::GetReceiveDeltas() const {
std::vector<int16_t> deltas;
for (const auto& packet : packets_)
deltas.push_back(packet.delta_ticks());
return deltas;
}
int64_t TransportFeedback::GetBaseTimeUs() const {
return static_cast<int64_t>(base_time_ticks_) * kBaseScaleFactor;
}
std::vector<int64_t> TransportFeedback::GetReceiveDeltasUs() const {
std::vector<int64_t> us_deltas;
for (const auto& packet : packets_)
us_deltas.push_back(packet.delta_us());
return us_deltas;
}
// De-serialize packet.
bool TransportFeedback::Parse(const CommonHeader& packet) {
RTC_DCHECK_EQ(packet.type(), kPacketType);

View File

@ -54,21 +54,13 @@ class TransportFeedback : public Rtpfb {
bool AddReceivedPacket(uint16_t sequence_number, int64_t timestamp_us);
const std::vector<ReceivedPacket>& GetReceivedPackets() const;
enum class StatusSymbol {
kNotReceived,
kReceivedSmallDelta,
kReceivedLargeDelta,
};
uint16_t GetBaseSequence() const;
std::vector<TransportFeedback::StatusSymbol> GetStatusVector() const;
std::vector<int16_t> GetReceiveDeltas() const;
// Returns number of packets (including missing) this feedback describes.
size_t GetPacketStatusCount() const { return num_seq_no_; }
// Get the reference time in microseconds, including any precision loss.
int64_t GetBaseTimeUs() const;
// Convenience method for getting all deltas as microseconds. The first delta
// is relative the base time.
std::vector<int64_t> GetReceiveDeltasUs() const;
bool Parse(const CommonHeader& packet);
static std::unique_ptr<TransportFeedback> ParseFrom(const uint8_t* buffer,