| Index: media/cast/video_sender/video_sender.cc
|
| diff --git a/media/cast/video_sender/video_sender.cc b/media/cast/video_sender/video_sender.cc
|
| index f228c1b3d1af1cedc5d376e41b690a5345132a79..66b2ec1d4b9d4747f6883c9799c5f89dadb3b282 100644
|
| --- a/media/cast/video_sender/video_sender.cc
|
| +++ b/media/cast/video_sender/video_sender.cc
|
| @@ -316,8 +316,10 @@ void VideoSender::OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback) {
|
| // Only count duplicated ACKs if there is no NACK request in between.
|
| // This is to avoid aggresive resend.
|
| duplicate_ack_counter_ = 0;
|
| +
|
| + // A NACK is also used to cancel pending re-transmissions.
|
| transport_sender_->ResendPackets(
|
| - false, cast_feedback.missing_frames_and_packets_);
|
| + false, cast_feedback.missing_frames_and_packets_, true);
|
| uint32 new_bitrate = 0;
|
| if (congestion_control_.OnNack(rtt, &new_bitrate)) {
|
| UpdateBitrate(new_bitrate);
|
| @@ -367,7 +369,11 @@ void VideoSender::ResendForKickstart() {
|
| missing_frames_and_packets.insert(
|
| std::make_pair(last_sent_frame_id_, missing));
|
| last_send_time_ = cast_environment_->Clock()->NowTicks();
|
| - transport_sender_->ResendPackets(false, missing_frames_and_packets);
|
| +
|
| + // Sending this extra packet is to kick-start the session. There is
|
| + // no need to optimize re-transmission for this case.
|
| + transport_sender_->ResendPackets(false, missing_frames_and_packets,
|
| + false);
|
| }
|
|
|
| void VideoSender::UpdateBitrate(int new_bitrate) {
|
|
|