Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Unified Diff: media/cast/net/rtp/rtp_sender.cc

Issue 560223002: [Cast] Limit frames in flight by duration, and not by number of frames. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed auto-eviction from PacketStorage, since that should never happen. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698