| Index: media/cast/sender/congestion_control.cc
|
| diff --git a/media/cast/sender/congestion_control.cc b/media/cast/sender/congestion_control.cc
|
| index 70fcfe9dc99baf9ef81734ce203f7c42f294589b..9efe50adbf823f8d6c98d2a56599a8d8dbc78ffb 100644
|
| --- a/media/cast/sender/congestion_control.cc
|
| +++ b/media/cast/sender/congestion_control.cc
|
| @@ -113,9 +113,16 @@ void CongestionControl::AckFrame(uint32 frame_id, base::TimeTicks when) {
|
| FrameStats* frame_stats = GetFrameStats(last_acked_frame_);
|
| while (IsNewerFrameId(frame_id, last_acked_frame_)) {
|
| FrameStats* last_frame_stats = frame_stats;
|
| - last_acked_frame_++;
|
| - frame_stats = GetFrameStats(last_acked_frame_);
|
| + frame_stats = GetFrameStats(last_acked_frame_ + 1);
|
| DCHECK(frame_stats);
|
| + if (frame_stats->sent_time.is_null()) {
|
| + // Can't ack a frame that hasn't been sent yet.
|
| + return;
|
| + }
|
| + last_acked_frame_++;
|
| + if (when < frame_stats->sent_time)
|
| + when = frame_stats->sent_time;
|
| +
|
| frame_stats->ack_time = when;
|
| acked_bits_in_history_ += frame_stats->frame_size;
|
| dead_time_in_history_ += DeadTime(*last_frame_stats, *frame_stats);
|
|
|