@@ -73,6 +73,12 @@ uint64_t RoundRobinPacketQueue::QueuedPacket::EnqueueOrder() const {
7373 return enqueue_order_;
7474}
7575
76+ DataSize RoundRobinPacketQueue::QueuedPacket::Size (bool count_overhead) const {
77+ return DataSize::bytes (count_overhead ? owned_packet_->size ()
78+ : owned_packet_->payload_size () +
79+ owned_packet_->padding_size ());
80+ }
81+
7682RtpPacketToSend* RoundRobinPacketQueue::QueuedPacket::RtpPacket () const {
7783 return owned_packet_;
7884}
@@ -111,8 +117,7 @@ bool IsEnabled(const WebRtcKeyValueConfig* field_trials, const char* name) {
111117RoundRobinPacketQueue::RoundRobinPacketQueue (
112118 Timestamp start_time,
113119 const WebRtcKeyValueConfig* field_trials)
114- : transport_overhead_per_packet_(DataSize::Zero()),
115- time_last_updated_(start_time),
120+ : time_last_updated_(start_time),
116121 paused_(false ),
117122 size_packets_(0 ),
118123 size_(DataSize::Zero()),
@@ -162,13 +167,7 @@ std::unique_ptr<RtpPacketToSend> RoundRobinPacketQueue::Pop() {
162167 // case a "budget" will be built up for the stream sending at the lower
163168 // rate. To avoid building a too large budget we limit |bytes| to be within
164169 // kMaxLeading bytes of the stream that has sent the most amount of bytes.
165- DataSize packet_size =
166- DataSize::bytes (queued_packet.RtpPacket ()->payload_size () +
167- queued_packet.RtpPacket ()->padding_size ());
168- if (include_overhead_) {
169- packet_size += DataSize::bytes (queued_packet.RtpPacket ()->headers_size ()) +
170- transport_overhead_per_packet_;
171- }
170+ DataSize packet_size = queued_packet.Size (include_overhead_);
172171 stream->size =
173172 std::max (stream->size + packet_size, max_size_ - kMaxLeadingSize );
174173 max_size_ = std::max (max_size_, stream->size );
@@ -251,18 +250,14 @@ void RoundRobinPacketQueue::SetPauseState(bool paused, Timestamp now) {
251250void RoundRobinPacketQueue::SetIncludeOverhead () {
252251 include_overhead_ = true ;
253252 // We need to update the size to reflect overhead for existing packets.
253+ size_ = DataSize::Zero ();
254254 for (const auto & stream : streams_) {
255255 for (const QueuedPacket& packet : stream.second .packet_queue ) {
256- size_ += DataSize::bytes (packet.RtpPacket ()->headers_size ()) +
257- transport_overhead_per_packet_;
256+ size_ += packet.Size (include_overhead_);
258257 }
259258 }
260259}
261260
262- void RoundRobinPacketQueue::SetTransportOverhead (DataSize overhead_per_packet) {
263- transport_overhead_per_packet_ = overhead_per_packet;
264- }
265-
266261TimeDelta RoundRobinPacketQueue::AverageQueueTime () const {
267262 if (Empty ())
268263 return TimeDelta::Zero ();
@@ -304,12 +299,7 @@ void RoundRobinPacketQueue::Push(QueuedPacket packet) {
304299 packet.SubtractPauseTime (pause_time_sum_);
305300
306301 size_packets_ += 1 ;
307- size_ += DataSize::bytes (packet.RtpPacket ()->payload_size () +
308- packet.RtpPacket ()->padding_size ());
309- if (include_overhead_) {
310- size_ += DataSize::bytes (packet.RtpPacket ()->headers_size ()) +
311- transport_overhead_per_packet_;
312- }
302+ size_ += packet.Size (include_overhead_);
313303
314304 stream->packet_queue .push (packet);
315305}
0 commit comments