From 201596f004c80a0e155a493b5942f7ed862336b7 Mon Sep 17 00:00:00 2001 From: Johannes Kron Date: Mon, 22 Oct 2018 14:33:39 +0200 Subject: [PATCH] Make packet max buffer size configurable via field trial flag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:9851 Change-Id: I2d1960e64d5ff11529317088f838032cecb8ae01 Reviewed-on: https://webrtc-review.googlesource.com/c/107346 Reviewed-by: Erik Språng Commit-Queue: Johannes Kron Cr-Commit-Position: refs/heads/master@{#25294} --- video/rtp_video_stream_receiver.cc | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/video/rtp_video_stream_receiver.cc b/video/rtp_video_stream_receiver.cc index 22f370db62..b3cf7fbbf2 100644 --- a/video/rtp_video_stream_receiver.cc +++ b/video/rtp_video_stream_receiver.cc @@ -50,7 +50,7 @@ namespace { // TODO(philipel): Change kPacketBufferStartSize back to 32 in M63 see: // crbug.com/752886 constexpr int kPacketBufferStartSize = 512; -constexpr int kPacketBufferMaxSixe = 2048; +constexpr int kPacketBufferMaxSize = 2048; } // namespace std::unique_ptr CreateRtpRtcpModule( @@ -154,8 +154,21 @@ RtpVideoStreamReceiver::RtpVideoStreamReceiver( process_thread_->RegisterModule(nack_module_.get(), RTC_FROM_HERE); } + // The group here can be either a positive integer with an explicit size, in + // which case that is used as size. All other values shall result in the + // default value being used. + const std::string group_name = + webrtc::field_trial::FindFullName("WebRTC-PacketBufferMaxSize"); + int packet_buffer_max_size = kPacketBufferMaxSize; + if (!group_name.empty() && + (sscanf(group_name.c_str(), "%d", &packet_buffer_max_size) != 1 || + packet_buffer_max_size <= 0)) { + RTC_LOG(LS_WARNING) << "Invalid packet buffer max size: " << group_name; + packet_buffer_max_size = kPacketBufferMaxSize; + } + packet_buffer_ = video_coding::PacketBuffer::Create( - clock_, kPacketBufferStartSize, kPacketBufferMaxSixe, this); + clock_, kPacketBufferStartSize, packet_buffer_max_size, this); reference_finder_.reset(new video_coding::RtpFrameReferenceFinder(this)); }