Chromium Code Reviews| Index: media/cast/net/rtp/rtp_sender.cc |
| diff --git a/media/cast/net/rtp/rtp_sender.cc b/media/cast/net/rtp/rtp_sender.cc |
| index bf1200fd3305391025973bbf9da08de52dc3344d..cdb3bfa856972b73817784f9efb9bc8fa0d6be1b 100644 |
| --- a/media/cast/net/rtp/rtp_sender.cc |
| +++ b/media/cast/net/rtp/rtp_sender.cc |
| @@ -41,25 +41,22 @@ RtpSender::RtpSender( |
| RtpSender::~RtpSender() {} |
| bool RtpSender::Initialize(const CastTransportRtpConfig& config) { |
| - storage_.reset(new PacketStorage(config.stored_frames)); |
| - if (!storage_->IsValid()) { |
| - return false; |
| - } |
| config_.ssrc = config.ssrc; |
| config_.payload_type = config.rtp_payload_type; |
| - packetizer_.reset(new RtpPacketizer(transport_, storage_.get(), config_)); |
| + packetizer_.reset(new RtpPacketizer(transport_, &storage_, config_)); |
| return true; |
| } |
| void RtpSender::SendFrame(const EncodedFrame& frame) { |
| DCHECK(packetizer_); |
| packetizer_->SendFrameAsPackets(frame); |
| + LOG_IF(DFATAL, storage_.GetNumberOfStoredFrames() == kMaxUnackedFrames) |
|
hubbe
2014/09/18 17:56:05
Shouldn't this be > ?
miu
2014/09/18 21:38:43
Done.
|
| + << "Possible bug: Frames are not being actively released from storage."; |
| } |
| void RtpSender::ResendPackets( |
| const MissingFramesAndPacketsMap& missing_frames_and_packets, |
| bool cancel_rtx_if_not_in_list, const DedupInfo& dedup_info) { |
| - DCHECK(storage_); |
| // Iterate over all frames in the list. |
| for (MissingFramesAndPacketsMap::const_iterator it = |
| missing_frames_and_packets.begin(); |
| @@ -76,7 +73,7 @@ void RtpSender::ResendPackets( |
| bool resend_last = missing_packet_set.find(kRtcpCastLastPacket) != |
| missing_packet_set.end(); |
| - const SendPacketVector* stored_packets = storage_->GetFrame8(frame_id); |
| + const SendPacketVector* stored_packets = storage_.GetFrame8(frame_id); |
| if (!stored_packets) |
| continue; |
| @@ -119,13 +116,14 @@ void RtpSender::ResendPackets( |
| void RtpSender::CancelSendingFrames(const std::vector<uint32>& frame_ids) { |
| for (std::vector<uint32>::const_iterator i = frame_ids.begin(); |
| i != frame_ids.end(); ++i) { |
| - const SendPacketVector* stored_packets = storage_->GetFrame8(*i & 0xFF); |
| + const SendPacketVector* stored_packets = storage_.GetFrame8(*i & 0xFF); |
| if (!stored_packets) |
| continue; |
| for (SendPacketVector::const_iterator j = stored_packets->begin(); |
| j != stored_packets->end(); ++j) { |
| transport_->CancelSendingPacket(j->first); |
| } |
| + storage_.ReleaseFrame(*i); |
| } |
| } |
| @@ -157,7 +155,7 @@ void RtpSender::UpdateSequenceNumber(Packet* packet) { |
| } |
| int64 RtpSender::GetLastByteSentForFrame(uint32 frame_id) { |
| - const SendPacketVector* stored_packets = storage_->GetFrame8(frame_id & 0xFF); |
| + const SendPacketVector* stored_packets = storage_.GetFrame8(frame_id & 0xFF); |
| if (!stored_packets) |
| return 0; |
| PacketKey last_packet_key = stored_packets->rbegin()->first; |