Chromium Code Reviews| Index: webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
| diff --git a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
| index 87fab26c8af5c20f883cecc27e3bb17c97debc92..52f8e5118d6b5d0ef301a6ca2a89462389bcc709 100644 |
| --- a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
| +++ b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
| @@ -24,7 +24,7 @@ |
| namespace webrtc { |
| const int64_t kNoTimestamp = -1; |
| -const int64_t kSendTimeHistoryWindowMs = 10000; |
| +const int64_t kSendTimeHistoryWindowMs = 60000; |
| const int64_t kBaseTimestampScaleFactor = |
| rtcp::TransportFeedback::kDeltaScaleFactor * (1 << 8); |
| const int64_t kBaseTimestampRangeSizeUs = kBaseTimestampScaleFactor * (1 << 24); |
| @@ -44,7 +44,8 @@ TransportFeedbackAdapter::TransportFeedbackAdapter( |
| Clock* clock, |
| BitrateController* bitrate_controller) |
| : send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName( |
| - "WebRTC-SendSideBwe-WithOverhead") == "Enabled"), |
| + "WebRTC-SendSideBwe-WithOverhead") == |
| + "Enabled"), |
| transport_overhead_bytes_per_packet_(0), |
| send_time_history_(clock, kSendTimeHistoryWindowMs), |
| clock_(clock), |
| @@ -118,21 +119,25 @@ std::vector<PacketInfo> TransportFeedbackAdapter::GetPacketFeedbackVector( |
| } |
| last_timestamp_us_ = timestamp_us; |
| + auto received_packets = feedback.GetReceivedPackets(); |
| std::vector<PacketInfo> packet_feedback_vector; |
| - packet_feedback_vector.reserve(feedback.GetReceivedPackets().size()); |
| + packet_feedback_vector.reserve(received_packets.size()); |
| + if (received_packets.empty()) { |
| + LOG(LS_INFO) << "Empty transport feedback packet received."; |
| + return packet_feedback_vector; |
| + } |
| { |
| rtc::CritScope cs(&lock_); |
| size_t failed_lookups = 0; |
| int64_t offset_us = 0; |
| + int64_t timestamp_ms = 0; |
| for (const auto& packet : feedback.GetReceivedPackets()) { |
| offset_us += packet.delta_us(); |
| - int64_t timestamp_ms = current_offset_ms_ + (offset_us / 1000); |
| + timestamp_ms = current_offset_ms_ + (offset_us / 1000); |
| PacketInfo info(timestamp_ms, packet.sequence_number()); |
| - if (send_time_history_.GetInfo(&info, true) && info.send_time_ms >= 0) { |
| - packet_feedback_vector.push_back(info); |
| - } else { |
| + if (!send_time_history_.GetInfo(&info, true)) |
|
stefan-webrtc
2017/02/10 14:15:11
With this change we will add also acks which have
|
| ++failed_lookups; |
| - } |
| + packet_feedback_vector.push_back(info); |
| } |
| std::sort(packet_feedback_vector.begin(), packet_feedback_vector.end(), |
| PacketInfoComparator()); |
| @@ -154,8 +159,9 @@ void TransportFeedbackAdapter::OnTransportFeedback( |
| result = delay_based_bwe_->IncomingPacketFeedbackVector( |
| last_packet_feedback_vector_); |
| } |
| - if (result.updated) |
| + if (result.updated) { |
| bitrate_controller_->OnDelayBasedBweResult(result); |
| + } |
| } |
| std::vector<PacketInfo> TransportFeedbackAdapter::GetTransportFeedbackVector() |