| 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)
|
| + << "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;
|
|
|