Delete master_timing argument to VCMTiming.

Makes construction simpler, and allows the ts_extrapolator_ pointer
to be marked const.

Followup to https://webrtc-review.googlesource.com/c/src/+/190721

Bug: webrtc:12102
Change-Id: I2abeb960935b5470509f654a4a9d5121c8001900
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190981
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32535}
This commit is contained in:
Niels Möller
2020-10-30 10:44:52 +01:00
committed by Commit Bot
parent 36274f9158
commit 043725fefd
2 changed files with 11 additions and 23 deletions

View File

@ -21,11 +21,11 @@
namespace webrtc {
VCMTiming::VCMTiming(Clock* clock, VCMTiming* master_timing)
VCMTiming::VCMTiming(Clock* clock)
: clock_(clock),
master_(false),
ts_extrapolator_(),
codec_timer_(new VCMCodecTimer()),
ts_extrapolator_(std::make_unique<TimestampExtrapolator>(
clock_->TimeInMilliseconds())),
codec_timer_(std::make_unique<VCMCodecTimer>()),
render_delay_ms_(kDefaultRenderDelayMs),
min_playout_delay_ms_(0),
max_playout_delay_ms_(10000),
@ -37,24 +37,12 @@ VCMTiming::VCMTiming(Clock* clock, VCMTiming* master_timing)
low_latency_renderer_enabled_("enabled", true) {
ParseFieldTrial({&low_latency_renderer_enabled_},
field_trial::FindFullName("WebRTC-LowLatencyRenderer"));
if (master_timing == NULL) {
master_ = true;
ts_extrapolator_ = new TimestampExtrapolator(clock_->TimeInMilliseconds());
} else {
ts_extrapolator_ = master_timing->ts_extrapolator_;
}
}
VCMTiming::~VCMTiming() {
if (master_) {
delete ts_extrapolator_;
}
}
void VCMTiming::Reset() {
MutexLock lock(&mutex_);
ts_extrapolator_->Reset(clock_->TimeInMilliseconds());
codec_timer_.reset(new VCMCodecTimer());
codec_timer_ = std::make_unique<VCMCodecTimer>();
render_delay_ms_ = kDefaultRenderDelayMs;
min_playout_delay_ms_ = 0;
jitter_delay_ms_ = 0;
@ -190,6 +178,8 @@ int64_t VCMTiming::RenderTimeMsInternal(uint32_t frame_timestamp,
// Render as soon as possible or with low-latency renderer algorithm.
return 0;
}
// Note that TimestampExtrapolator::ExtrapolateLocalTime is not a const
// method; it mutates the object's wraparound state.
int64_t estimated_complete_time_ms =
ts_extrapolator_->ExtrapolateLocalTime(frame_timestamp);
if (estimated_complete_time_ms == -1) {