Revert "Add ability to cap the video jitter estimate to a max value."
This reverts commit a8ae407a480a2a9982eecf9e3a9b10da5373cd9a. Reason for revert: This CL incorrectly affects non-experiment branch. A new CL affecting only the experiment will be uploaded. Original change's description: > Add ability to cap the video jitter estimate to a max value. > > Bug: webrtc:10572 > Change-Id: I21112824dc02afa71db61bb8c2f02723e8b325b6 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133963 > Commit-Queue: Michael Horowitz <mhoro@webrtc.org> > Reviewed-by: Stefan Holmer <stefan@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#27744} TBR=stefan@webrtc.org,mhoro@webrtc.org Bug: webrtc:10572 Change-Id: I4af334168ca70ecfae7fd18fc7c852819a98d866 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138063 Reviewed-by: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Michael Horowitz <mhoro@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Björn Terelius <terelius@webrtc.org> Commit-Queue: Stefan Holmer <stefan@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28025}
This commit is contained in:
committed by
Commit Bot
parent
040dc4388b
commit
4ed7e511f6
@ -299,14 +299,10 @@ EncodedFrame* FrameBuffer::GetNextFrame() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
float rtt_mult = protection_mode_ == kProtectionNackFEC ? 0.0 : 1.0;
|
float rtt_mult = protection_mode_ == kProtectionNackFEC ? 0.0 : 1.0;
|
||||||
float jitter_est_cap_ms = 300.0;
|
|
||||||
if (RttMultExperiment::RttMultEnabled()) {
|
if (RttMultExperiment::RttMultEnabled()) {
|
||||||
rtt_mult = RttMultExperiment::GetRttMultValue();
|
rtt_mult = RttMultExperiment::GetRttMultValue();
|
||||||
// TODO(mhoro): add RttMultExperiment::GetJitterEstCapValue();
|
|
||||||
jitter_est_cap_ms = 300.0;
|
|
||||||
}
|
}
|
||||||
timing_->SetJitterDelay(
|
timing_->SetJitterDelay(jitter_estimator_.GetJitterEstimate(rtt_mult));
|
||||||
jitter_estimator_.GetJitterEstimate(rtt_mult, jitter_est_cap_ms));
|
|
||||||
timing_->UpdateCurrentDelay(render_time_ms, now_ms);
|
timing_->UpdateCurrentDelay(render_time_ms, now_ms);
|
||||||
} else {
|
} else {
|
||||||
if (RttMultExperiment::RttMultEnabled() || add_rtt_to_playout_delay_)
|
if (RttMultExperiment::RttMultEnabled() || add_rtt_to_playout_delay_)
|
||||||
|
|||||||
@ -582,8 +582,7 @@ void VCMJitterBuffer::FindAndInsertContinuousFramesWithState(
|
|||||||
uint32_t VCMJitterBuffer::EstimatedJitterMs() {
|
uint32_t VCMJitterBuffer::EstimatedJitterMs() {
|
||||||
rtc::CritScope cs(&crit_sect_);
|
rtc::CritScope cs(&crit_sect_);
|
||||||
const double rtt_mult = 1.0f;
|
const double rtt_mult = 1.0f;
|
||||||
const double jitter_est_cap_ms = 300.0f;
|
return jitter_estimate_.GetJitterEstimate(rtt_mult);
|
||||||
return jitter_estimate_.GetJitterEstimate(rtt_mult, jitter_est_cap_ms);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void VCMJitterBuffer::SetNackSettings(size_t max_nack_list_size,
|
void VCMJitterBuffer::SetNackSettings(size_t max_nack_list_size,
|
||||||
|
|||||||
@ -374,8 +374,7 @@ void VCMJitterEstimator::UpdateRtt(int64_t rttMs) {
|
|||||||
|
|
||||||
// Returns the current filtered estimate if available,
|
// Returns the current filtered estimate if available,
|
||||||
// otherwise tries to calculate an estimate.
|
// otherwise tries to calculate an estimate.
|
||||||
int VCMJitterEstimator::GetJitterEstimate(double rttMultiplier,
|
int VCMJitterEstimator::GetJitterEstimate(double rttMultiplier) {
|
||||||
double jitterEstCapMs) {
|
|
||||||
double jitterMS = CalculateEstimate() + OPERATING_SYSTEM_JITTER;
|
double jitterMS = CalculateEstimate() + OPERATING_SYSTEM_JITTER;
|
||||||
uint64_t now = clock_->TimeInMicroseconds();
|
uint64_t now = clock_->TimeInMicroseconds();
|
||||||
|
|
||||||
@ -384,10 +383,8 @@ int VCMJitterEstimator::GetJitterEstimate(double rttMultiplier,
|
|||||||
|
|
||||||
if (_filterJitterEstimate > jitterMS)
|
if (_filterJitterEstimate > jitterMS)
|
||||||
jitterMS = _filterJitterEstimate;
|
jitterMS = _filterJitterEstimate;
|
||||||
if (_nackCount >= _nackLimit) {
|
if (_nackCount >= _nackLimit)
|
||||||
jitterMS += _rttFilter.RttMs() * rttMultiplier;
|
jitterMS += _rttFilter.RttMs() * rttMultiplier;
|
||||||
jitterMS = std::min(jitterMS, jitterEstCapMs);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const double kJitterScaleLowThreshold = 5.0;
|
static const double kJitterScaleLowThreshold = 5.0;
|
||||||
static const double kJitterScaleHighThreshold = 10.0;
|
static const double kJitterScaleHighThreshold = 10.0;
|
||||||
|
|||||||
@ -46,7 +46,7 @@ class VCMJitterEstimator {
|
|||||||
// - rttMultiplier : RTT param multiplier (when applicable).
|
// - rttMultiplier : RTT param multiplier (when applicable).
|
||||||
//
|
//
|
||||||
// Return value : Jitter estimate in milliseconds.
|
// Return value : Jitter estimate in milliseconds.
|
||||||
virtual int GetJitterEstimate(double rttMultiplier, double jitterEstCapMs);
|
virtual int GetJitterEstimate(double rttMultiplier);
|
||||||
|
|
||||||
// Updates the nack counter.
|
// Updates the nack counter.
|
||||||
void FrameNacked();
|
void FrameNacked();
|
||||||
|
|||||||
@ -67,7 +67,7 @@ TEST_F(TestVCMJitterEstimator, TestLowRate) {
|
|||||||
estimator_->UpdateEstimate(gen.Delay(), gen.FrameSize());
|
estimator_->UpdateEstimate(gen.Delay(), gen.FrameSize());
|
||||||
AdvanceClock(time_delta_us);
|
AdvanceClock(time_delta_us);
|
||||||
if (i > 2)
|
if (i > 2)
|
||||||
EXPECT_EQ(estimator_->GetJitterEstimate(0, 300), 0);
|
EXPECT_EQ(estimator_->GetJitterEstimate(0), 0);
|
||||||
gen.Advance();
|
gen.Advance();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,7 +98,7 @@ TEST_F(TestVCMJitterEstimator, TestUpperBound) {
|
|||||||
estimator_->UpdateEstimate(gen.Delay(), gen.FrameSize());
|
estimator_->UpdateEstimate(gen.Delay(), gen.FrameSize());
|
||||||
AdvanceClock(time_delta_us);
|
AdvanceClock(time_delta_us);
|
||||||
context.percentiles.Add(
|
context.percentiles.Add(
|
||||||
static_cast<uint32_t>(estimator_->GetJitterEstimate(0, 300)));
|
static_cast<uint32_t>(estimator_->GetJitterEstimate(0)));
|
||||||
gen.Advance();
|
gen.Advance();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user