Index: media/cast/audio_sender/audio_sender.cc |
diff --git a/media/cast/audio_sender/audio_sender.cc b/media/cast/audio_sender/audio_sender.cc |
index ea44218d25b127a0c316642f600698f0138751f0..878f3456c8766a80447ad5268b0bded293997445 100644 |
--- a/media/cast/audio_sender/audio_sender.cc |
+++ b/media/cast/audio_sender/audio_sender.cc |
@@ -252,9 +252,15 @@ void AudioSender::OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback) { |
// This is to avoid aggresive resend. |
duplicate_ack_counter_ = 0; |
+ base::TimeDelta rtt; |
+ base::TimeDelta avg_rtt; |
+ base::TimeDelta min_rtt; |
+ base::TimeDelta max_rtt; |
+ rtcp_.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt); |
+ |
// A NACK is also used to cancel pending re-transmissions. |
transport_sender_->ResendPackets( |
- true, cast_feedback.missing_frames_and_packets_, true); |
+ true, cast_feedback.missing_frames_and_packets_, false, min_rtt); |
} |
const base::TimeTicks now = cast_environment_->Clock()->NowTicks(); |
@@ -280,7 +286,8 @@ void AudioSender::OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback) { |
latest_acked_frame_id_++; |
missing_frames_and_packets[latest_acked_frame_id_] = missing; |
} |
- transport_sender_->ResendPackets(true, missing_frames_and_packets, true); |
+ transport_sender_->ResendPackets( |
+ true, missing_frames_and_packets, true, base::TimeDelta()); |
latest_acked_frame_id_ = cast_feedback.ack_frame_id_; |
} |
} |
@@ -313,10 +320,16 @@ void AudioSender::ResendForKickstart() { |
std::make_pair(last_sent_frame_id_, missing)); |
last_send_time_ = cast_environment_->Clock()->NowTicks(); |
+ base::TimeDelta rtt; |
+ base::TimeDelta avg_rtt; |
+ base::TimeDelta min_rtt; |
+ base::TimeDelta max_rtt; |
+ rtcp_.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt); |
+ |
// Sending this extra packet is to kick-start the session. There is |
// no need to optimize re-transmission for this case. |
- transport_sender_->ResendPackets(true, missing_frames_and_packets, |
- false); |
+ transport_sender_->ResendPackets( |
+ true, missing_frames_and_packets, false, min_rtt); |
} |
} // namespace cast |