Reland of Log created probe clusters to RtcEventLog. (patchset #1 id:1 of https://codereview.chromium.org/2775273003/ )
Reason for revert: Speculative reland since it apparently built on https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/22852 Original issue's description: > Revert of Log created probe clusters to RtcEventLog. (patchset #3 id:40001 of https://codereview.chromium.org/2776073003/ ) > > Reason for revert: > Break build bots. > > Original issue's description: > > Log created probe clusters to RtcEventLog. > > > > BUG=webrtc:6984 > > > > Review-Url: https://codereview.webrtc.org/2776073003 > > Cr-Commit-Position: refs/heads/master@{#17413} > > Committed:bb9e6edc32> > TBR=terelius@webrtc.org,stefan@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:6984 > > Review-Url: https://codereview.webrtc.org/2775273003 > Cr-Commit-Position: refs/heads/master@{#17415} > Committed:7ac5c32db2TBR=terelius@webrtc.org,stefan@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:6984 Review-Url: https://codereview.webrtc.org/2783693002 Cr-Commit-Position: refs/heads/master@{#17424}
This commit is contained in:
parent
76cc9be72c
commit
2a63160b95
@ -53,8 +53,8 @@ SendSideCongestionController::SendSideCongestionController(
|
||||
clock,
|
||||
observer,
|
||||
event_log,
|
||||
std::unique_ptr<PacedSender>(new PacedSender(clock, packet_router))) {
|
||||
}
|
||||
std::unique_ptr<PacedSender>(
|
||||
new PacedSender(clock, packet_router, event_log))) {}
|
||||
|
||||
SendSideCongestionController::SendSideCongestionController(
|
||||
const Clock* clock,
|
||||
|
||||
@ -31,6 +31,7 @@ rtc_static_library("pacing") {
|
||||
"../../system_wrappers",
|
||||
"../rtp_rtcp",
|
||||
"../utility",
|
||||
"//webrtc/logging:rtc_event_log_api",
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
include_rules = [
|
||||
"+webrtc/base",
|
||||
"+webrtc/system_wrappers",
|
||||
"+webrtc/logging/rtc_event_log"
|
||||
]
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
|
||||
#include "webrtc/base/checks.h"
|
||||
#include "webrtc/base/logging.h"
|
||||
#include "webrtc/logging/rtc_event_log/rtc_event_log.h"
|
||||
#include "webrtc/modules/pacing/paced_sender.h"
|
||||
|
||||
namespace webrtc {
|
||||
@ -45,10 +46,13 @@ constexpr int64_t kProbeClusterTimeoutMs = 5000;
|
||||
|
||||
} // namespace
|
||||
|
||||
BitrateProber::BitrateProber()
|
||||
BitrateProber::BitrateProber() : BitrateProber(nullptr) {}
|
||||
|
||||
BitrateProber::BitrateProber(RtcEventLog* event_log)
|
||||
: probing_state_(ProbingState::kDisabled),
|
||||
next_probe_time_ms_(-1),
|
||||
next_cluster_id_(0) {
|
||||
next_cluster_id_(0),
|
||||
event_log_(event_log) {
|
||||
SetEnabled(true);
|
||||
}
|
||||
|
||||
@ -95,6 +99,11 @@ void BitrateProber::CreateProbeCluster(int bitrate_bps, int64_t now_ms) {
|
||||
cluster.pace_info.send_bitrate_bps = bitrate_bps;
|
||||
cluster.pace_info.probe_cluster_id = next_cluster_id_++;
|
||||
clusters_.push(cluster);
|
||||
if (event_log_)
|
||||
event_log_->LogProbeClusterCreated(
|
||||
cluster.pace_info.probe_cluster_id, cluster.pace_info.send_bitrate_bps,
|
||||
cluster.pace_info.probe_cluster_min_probes,
|
||||
cluster.pace_info.probe_cluster_min_bytes);
|
||||
|
||||
LOG(LS_INFO) << "Probe cluster (bitrate:min bytes:min packets): ("
|
||||
<< cluster.pace_info.send_bitrate_bps << ":"
|
||||
|
||||
@ -18,12 +18,14 @@
|
||||
#include "webrtc/typedefs.h"
|
||||
|
||||
namespace webrtc {
|
||||
class RtcEventLog;
|
||||
|
||||
// Note that this class isn't thread-safe by itself and therefore relies
|
||||
// on being protected by the caller.
|
||||
class BitrateProber {
|
||||
public:
|
||||
BitrateProber();
|
||||
explicit BitrateProber(RtcEventLog* event_log);
|
||||
|
||||
void SetEnabled(bool enable);
|
||||
|
||||
@ -100,6 +102,7 @@ class BitrateProber {
|
||||
int64_t next_probe_time_ms_;
|
||||
|
||||
int next_cluster_id_;
|
||||
RtcEventLog* const event_log_;
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
@ -21,7 +21,8 @@ namespace webrtc {
|
||||
|
||||
class MockPacedSender : public PacedSender {
|
||||
public:
|
||||
MockPacedSender() : PacedSender(Clock::GetRealTimeClock(), nullptr) {}
|
||||
MockPacedSender()
|
||||
: PacedSender(Clock::GetRealTimeClock(), nullptr, nullptr) {}
|
||||
MOCK_METHOD6(SendPacket, bool(Priority priority,
|
||||
uint32_t ssrc,
|
||||
uint16_t sequence_number,
|
||||
|
||||
@ -247,7 +247,9 @@ class IntervalBudget {
|
||||
const int64_t PacedSender::kMaxQueueLengthMs = 2000;
|
||||
const float PacedSender::kDefaultPaceMultiplier = 2.5f;
|
||||
|
||||
PacedSender::PacedSender(const Clock* clock, PacketSender* packet_sender)
|
||||
PacedSender::PacedSender(const Clock* clock,
|
||||
PacketSender* packet_sender,
|
||||
RtcEventLog* event_log)
|
||||
: clock_(clock),
|
||||
packet_sender_(packet_sender),
|
||||
alr_detector_(new AlrDetector()),
|
||||
@ -255,7 +257,7 @@ PacedSender::PacedSender(const Clock* clock, PacketSender* packet_sender)
|
||||
paused_(false),
|
||||
media_budget_(new paced_sender::IntervalBudget(0)),
|
||||
padding_budget_(new paced_sender::IntervalBudget(0)),
|
||||
prober_(new BitrateProber()),
|
||||
prober_(new BitrateProber(event_log)),
|
||||
probing_send_failure_(false),
|
||||
estimated_bitrate_bps_(0),
|
||||
min_send_bitrate_kbps_(0u),
|
||||
|
||||
@ -27,6 +27,7 @@ class BitrateProber;
|
||||
class Clock;
|
||||
class CriticalSectionWrapper;
|
||||
class ProbeClusterCreatedObserver;
|
||||
class RtcEventLog;
|
||||
|
||||
namespace paced_sender {
|
||||
class IntervalBudget;
|
||||
@ -68,7 +69,9 @@ class PacedSender : public Module, public RtpPacketSender {
|
||||
// overshoots from the encoder.
|
||||
static const float kDefaultPaceMultiplier;
|
||||
|
||||
PacedSender(const Clock* clock, PacketSender* packet_sender);
|
||||
PacedSender(const Clock* clock,
|
||||
PacketSender* packet_sender,
|
||||
RtcEventLog* event_log);
|
||||
|
||||
virtual ~PacedSender();
|
||||
|
||||
|
||||
@ -106,7 +106,7 @@ class PacedSenderTest : public ::testing::Test {
|
||||
PacedSenderTest() : clock_(123456) {
|
||||
srand(0);
|
||||
// Need to initialize PacedSender after we initialize clock.
|
||||
send_bucket_.reset(new PacedSender(&clock_, &callback_));
|
||||
send_bucket_.reset(new PacedSender(&clock_, &callback_, nullptr));
|
||||
send_bucket_->CreateProbeCluster(kFirstClusterBps);
|
||||
send_bucket_->CreateProbeCluster(kSecondClusterBps);
|
||||
// Default to bitrate probing disabled for testing purposes. Probing tests
|
||||
@ -410,7 +410,7 @@ TEST_F(PacedSenderTest, VerifyAverageBitrateVaryingMediaPayload) {
|
||||
const int kTimeStep = 5;
|
||||
const int64_t kBitrateWindow = 10000;
|
||||
PacedSenderPadding callback;
|
||||
send_bucket_.reset(new PacedSender(&clock_, &callback));
|
||||
send_bucket_.reset(new PacedSender(&clock_, &callback, nullptr));
|
||||
send_bucket_->SetProbingEnabled(false);
|
||||
send_bucket_->SetEstimatedBitrate(kTargetBitrateBps);
|
||||
|
||||
@ -805,7 +805,7 @@ TEST_F(PacedSenderTest, ProbingWithInsertedPackets) {
|
||||
uint16_t sequence_number = 1234;
|
||||
|
||||
PacedSenderProbing packet_sender;
|
||||
send_bucket_.reset(new PacedSender(&clock_, &packet_sender));
|
||||
send_bucket_.reset(new PacedSender(&clock_, &packet_sender, nullptr));
|
||||
send_bucket_->CreateProbeCluster(kFirstClusterBps);
|
||||
send_bucket_->CreateProbeCluster(kSecondClusterBps);
|
||||
send_bucket_->SetEstimatedBitrate(kInitialBitrateBps);
|
||||
@ -851,7 +851,7 @@ TEST_F(PacedSenderTest, ProbingWithPaddingSupport) {
|
||||
uint16_t sequence_number = 1234;
|
||||
|
||||
PacedSenderProbing packet_sender;
|
||||
send_bucket_.reset(new PacedSender(&clock_, &packet_sender));
|
||||
send_bucket_.reset(new PacedSender(&clock_, &packet_sender, nullptr));
|
||||
send_bucket_->CreateProbeCluster(kFirstClusterBps);
|
||||
send_bucket_->SetEstimatedBitrate(kInitialBitrateBps);
|
||||
|
||||
|
||||
@ -156,8 +156,7 @@ uint32_t VideoSender::TargetBitrateKbps() {
|
||||
PacedVideoSender::PacedVideoSender(PacketProcessorListener* listener,
|
||||
VideoSource* source,
|
||||
BandwidthEstimatorType estimator)
|
||||
: VideoSender(listener, source, estimator),
|
||||
pacer_(&clock_, this) {
|
||||
: VideoSender(listener, source, estimator), pacer_(&clock_, this, nullptr) {
|
||||
modules_.push_back(&pacer_);
|
||||
pacer_.SetEstimatedBitrate(source->bits_per_second());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user