Chromium Code Reviews| Index: media/cast/sender/video_sender.cc |
| diff --git a/media/cast/sender/video_sender.cc b/media/cast/sender/video_sender.cc |
| index 598e0d3a98906e7234d0fba149a165522df5caf0..ed98963b7536c698180b60390ef3629bbf9a76c2 100644 |
| --- a/media/cast/sender/video_sender.cc |
| +++ b/media/cast/sender/video_sender.cc |
| @@ -282,10 +282,6 @@ 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, true, rtt); |
| } |
| base::TimeTicks now = cast_environment_->Clock()->NowTicks(); |
| @@ -306,14 +302,12 @@ void VideoSender::OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback) { |
| << " for frame " << cast_feedback.ack_frame_id; |
| if (!is_acked_out_of_order) { |
| // Cancel resends of acked frames. |
| - MissingFramesAndPacketsMap missing_frames_and_packets; |
| - PacketIdSet missing; |
| + std::set<uint32> cancel_sending_frames; |
|
hubbe
2014/08/11 19:11:50
Seems like a vector would be sufficient here.
|
| while (latest_acked_frame_id_ != cast_feedback.ack_frame_id) { |
| latest_acked_frame_id_++; |
| - missing_frames_and_packets[latest_acked_frame_id_] = missing; |
| + cancel_sending_frames.insert(latest_acked_frame_id_); |
| } |
| - transport_sender_->ResendPackets( |
| - false, missing_frames_and_packets, true, rtt); |
| + transport_sender_->CancelSendingFrames(ssrc_, cancel_sending_frames); |
| latest_acked_frame_id_ = cast_feedback.ack_frame_id; |
| } |
| } |
| @@ -337,20 +331,8 @@ void VideoSender::ResendForKickstart() { |
| DCHECK(!last_send_time_.is_null()); |
| VLOG(1) << "Resending last packet of frame " << last_sent_frame_id_ |
| << " to kick-start."; |
| - // Send the first packet of the last encoded frame to kick start |
| - // retransmission. This gives enough information to the receiver what |
| - // packets and frames are missing. |
| - MissingFramesAndPacketsMap missing_frames_and_packets; |
| - PacketIdSet missing; |
| - missing.insert(kRtcpCastLastPacket); |
| - missing_frames_and_packets.insert( |
| - std::make_pair(last_sent_frame_id_, missing)); |
| last_send_time_ = cast_environment_->Clock()->NowTicks(); |
| - |
| - // 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, rtt_); |
| + transport_sender_->ResendFrameForKickstart(ssrc_, last_sent_frame_id_); |
| } |
| } // namespace cast |