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: 7ac5c32db2

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/2783693002
Cr-Commit-Position: refs/heads/master@{#17424}
This commit is contained in:
philipel 2017-03-28 07:42:39 -07:00 committed by Commit bot
parent 76cc9be72c
commit 2a63160b95
10 changed files with 33 additions and 14 deletions

View File

@ -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,

View File

@ -31,6 +31,7 @@ rtc_static_library("pacing") {
"../../system_wrappers",
"../rtp_rtcp",
"../utility",
"//webrtc/logging:rtc_event_log_api",
]
}

View File

@ -1,4 +1,5 @@
include_rules = [
"+webrtc/base",
"+webrtc/system_wrappers",
"+webrtc/logging/rtc_event_log"
]

View File

@ -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 << ":"

View File

@ -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

View File

@ -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,

View File

@ -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),

View File

@ -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();

View File

@ -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);

View File

@ -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());
}