Chromium Code Reviews| Index: webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc |
| diff --git a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc |
| index 8ad60aea65aff66f3a0856b94bad65ed280285e5..fcc4773f2770a1db8eb0e80bf7d0110769bf8a4b 100644 |
| --- a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc |
| +++ b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc |
| @@ -210,14 +210,15 @@ void RemoteBitrateEstimatorAbsSendTime::IncomingPacketFeedbackVector( |
| for (const auto& packet_info : packet_feedback_vector) { |
| IncomingPacketInfo(packet_info.arrival_time_ms, |
| ConvertMsTo24Bits(packet_info.send_time_ms), |
| - packet_info.payload_size, 0, packet_info.was_paced); |
| + packet_info.payload_size, 0, |
| + packet_info.probe_cluster_id); |
| } |
| } |
| void RemoteBitrateEstimatorAbsSendTime::IncomingPacket(int64_t arrival_time_ms, |
| size_t payload_size, |
| const RTPHeader& header, |
| - bool was_paced) { |
| + int probe_cluster_id) { |
| RTC_DCHECK(network_thread_.CalledOnValidThread()); |
| if (!header.extension.hasAbsoluteSendTime) { |
| LOG(LS_WARNING) << "RemoteBitrateEstimatorAbsSendTimeImpl: Incoming packet " |
| @@ -225,7 +226,7 @@ void RemoteBitrateEstimatorAbsSendTime::IncomingPacket(int64_t arrival_time_ms, |
| return; |
| } |
| IncomingPacketInfo(arrival_time_ms, header.extension.absoluteSendTime, |
| - payload_size, header.ssrc, was_paced); |
| + payload_size, header.ssrc, probe_cluster_id); |
| } |
| void RemoteBitrateEstimatorAbsSendTime::IncomingPacketInfo( |
| @@ -233,7 +234,7 @@ void RemoteBitrateEstimatorAbsSendTime::IncomingPacketInfo( |
| uint32_t send_time_24bits, |
| size_t payload_size, |
| uint32_t ssrc, |
| - bool was_paced) { |
| + int probe_cluster_id) { |
| assert(send_time_24bits < (1ul << 24)); |
| // Shift up send time to use the full 32 bits that inter_arrival works with, |
| // so wrapping works properly. |
| @@ -254,7 +255,8 @@ void RemoteBitrateEstimatorAbsSendTime::IncomingPacketInfo( |
| // For now only try to detect probes while we don't have a valid estimate, and |
| // make sure the packet was paced. We currently assume that only packets |
| // larger than 200 bytes are paced by the sender. |
| - was_paced = was_paced && payload_size > PacedSender::kMinProbePacketSize; |
| + bool include_probe = probe_cluster_id != PacketInfo::kNotAProbe && |
| + payload_size > PacedSender::kMinProbePacketSize; |
| bool update_estimate = false; |
| uint32_t target_bitrate_bps = 0; |
| std::vector<uint32_t> ssrcs; |
| @@ -266,7 +268,7 @@ void RemoteBitrateEstimatorAbsSendTime::IncomingPacketInfo( |
| RTC_DCHECK(estimator_.get()); |
| ssrcs_[ssrc] = now_ms; |
| - if (was_paced && |
| + if (include_probe && |
|
stefan-webrtc
2016/05/26 16:29:50
Shouldn't we also make use of the fact that we kno
|
| (!remote_rate_.ValidEstimate() || |
| now_ms - first_packet_time_ms_ < kInitialProbingIntervalMs)) { |
| // TODO(holmer): Use a map instead to get correct order? |