| Index: webrtc/modules/video_coding/timing.cc
|
| diff --git a/webrtc/modules/video_coding/timing.cc b/webrtc/modules/video_coding/timing.cc
|
| index f30976fd443dd56cc381636d19309690ce0fa155..21f4a3dc71159f99e0e93a129998cff2186e62fe 100644
|
| --- a/webrtc/modules/video_coding/timing.cc
|
| +++ b/webrtc/modules/video_coding/timing.cc
|
| @@ -21,22 +21,21 @@
|
| namespace webrtc {
|
|
|
| VCMTiming::VCMTiming(Clock* clock, VCMTiming* master_timing)
|
| - : crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
|
| - clock_(clock),
|
| - master_(false),
|
| - ts_extrapolator_(),
|
| - codec_timer_(new VCMCodecTimer()),
|
| - render_delay_ms_(kDefaultRenderDelayMs),
|
| - min_playout_delay_ms_(0),
|
| - max_playout_delay_ms_(10000),
|
| - jitter_delay_ms_(0),
|
| - current_delay_ms_(0),
|
| - last_decode_ms_(0),
|
| - prev_frame_timestamp_(0),
|
| - num_decoded_frames_(0),
|
| - num_delayed_decoded_frames_(0),
|
| - first_decoded_frame_ms_(-1),
|
| - sum_missed_render_deadline_ms_(0) {
|
| + : clock_(clock),
|
| + master_(false),
|
| + ts_extrapolator_(),
|
| + codec_timer_(new VCMCodecTimer()),
|
| + render_delay_ms_(kDefaultRenderDelayMs),
|
| + min_playout_delay_ms_(0),
|
| + max_playout_delay_ms_(10000),
|
| + jitter_delay_ms_(0),
|
| + current_delay_ms_(0),
|
| + last_decode_ms_(0),
|
| + prev_frame_timestamp_(0),
|
| + num_decoded_frames_(0),
|
| + num_delayed_decoded_frames_(0),
|
| + first_decoded_frame_ms_(-1),
|
| + sum_missed_render_deadline_ms_(0) {
|
| if (master_timing == NULL) {
|
| master_ = true;
|
| ts_extrapolator_ = new TimestampExtrapolator(clock_->TimeInMilliseconds());
|
| @@ -50,11 +49,10 @@ VCMTiming::~VCMTiming() {
|
| if (master_) {
|
| delete ts_extrapolator_;
|
| }
|
| - delete crit_sect_;
|
| }
|
|
|
| void VCMTiming::UpdateHistograms() const {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| if (num_decoded_frames_ == 0) {
|
| return;
|
| }
|
| @@ -77,7 +75,7 @@ void VCMTiming::UpdateHistograms() const {
|
| }
|
|
|
| void VCMTiming::Reset() {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| ts_extrapolator_->Reset(clock_->TimeInMilliseconds());
|
| codec_timer_.reset(new VCMCodecTimer());
|
| render_delay_ms_ = kDefaultRenderDelayMs;
|
| @@ -88,37 +86,37 @@ void VCMTiming::Reset() {
|
| }
|
|
|
| void VCMTiming::ResetDecodeTime() {
|
| - CriticalSectionScoped lock(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| codec_timer_.reset(new VCMCodecTimer());
|
| }
|
|
|
| void VCMTiming::set_render_delay(int render_delay_ms) {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| render_delay_ms_ = render_delay_ms;
|
| }
|
|
|
| void VCMTiming::set_min_playout_delay(int min_playout_delay_ms) {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| min_playout_delay_ms_ = min_playout_delay_ms;
|
| }
|
|
|
| int VCMTiming::min_playout_delay() {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| return min_playout_delay_ms_;
|
| }
|
|
|
| void VCMTiming::set_max_playout_delay(int max_playout_delay_ms) {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| max_playout_delay_ms_ = max_playout_delay_ms;
|
| }
|
|
|
| int VCMTiming::max_playout_delay() {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| return max_playout_delay_ms_;
|
| }
|
|
|
| void VCMTiming::SetJitterDelay(int jitter_delay_ms) {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| if (jitter_delay_ms != jitter_delay_ms_) {
|
| jitter_delay_ms_ = jitter_delay_ms;
|
| // When in initial state, set current delay to minimum delay.
|
| @@ -129,7 +127,7 @@ void VCMTiming::SetJitterDelay(int jitter_delay_ms) {
|
| }
|
|
|
| void VCMTiming::UpdateCurrentDelay(uint32_t frame_timestamp) {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| int target_delay_ms = TargetDelayInternal();
|
|
|
| if (current_delay_ms_ == 0) {
|
| @@ -171,7 +169,7 @@ void VCMTiming::UpdateCurrentDelay(uint32_t frame_timestamp) {
|
|
|
| void VCMTiming::UpdateCurrentDelay(int64_t render_time_ms,
|
| int64_t actual_decode_time_ms) {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| uint32_t target_delay_ms = TargetDelayInternal();
|
| int64_t delayed_ms =
|
| actual_decode_time_ms -
|
| @@ -190,7 +188,7 @@ int32_t VCMTiming::StopDecodeTimer(uint32_t time_stamp,
|
| int32_t decode_time_ms,
|
| int64_t now_ms,
|
| int64_t render_time_ms) {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| codec_timer_->AddTiming(decode_time_ms, now_ms);
|
| assert(decode_time_ms >= 0);
|
| last_decode_ms_ = decode_time_ms;
|
| @@ -209,13 +207,13 @@ int32_t VCMTiming::StopDecodeTimer(uint32_t time_stamp,
|
| }
|
|
|
| void VCMTiming::IncomingTimestamp(uint32_t time_stamp, int64_t now_ms) {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| ts_extrapolator_->Update(now_ms, time_stamp);
|
| }
|
|
|
| int64_t VCMTiming::RenderTimeMs(uint32_t frame_timestamp,
|
| int64_t now_ms) const {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| const int64_t render_time_ms = RenderTimeMsInternal(frame_timestamp, now_ms);
|
| return render_time_ms;
|
| }
|
| @@ -249,7 +247,7 @@ int VCMTiming::RequiredDecodeTimeMs() const {
|
|
|
| uint32_t VCMTiming::MaxWaitingTime(int64_t render_time_ms,
|
| int64_t now_ms) const {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
|
|
| const int64_t max_wait_time_ms =
|
| render_time_ms - now_ms - RequiredDecodeTimeMs() - render_delay_ms_;
|
| @@ -262,7 +260,7 @@ uint32_t VCMTiming::MaxWaitingTime(int64_t render_time_ms,
|
|
|
| bool VCMTiming::EnoughTimeToDecode(
|
| uint32_t available_processing_time_ms) const {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| int64_t required_decode_time_ms = RequiredDecodeTimeMs();
|
| if (required_decode_time_ms < 0) {
|
| // Haven't decoded any frames yet, try decoding one to get an estimate
|
| @@ -279,7 +277,7 @@ bool VCMTiming::EnoughTimeToDecode(
|
| }
|
|
|
| int VCMTiming::TargetVideoDelay() const {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| return TargetDelayInternal();
|
| }
|
|
|
| @@ -295,7 +293,7 @@ bool VCMTiming::GetTimings(int* decode_ms,
|
| int* jitter_buffer_ms,
|
| int* min_playout_delay_ms,
|
| int* render_delay_ms) const {
|
| - CriticalSectionScoped cs(crit_sect_);
|
| + rtc::CritScope cs(&crit_sect_);
|
| *decode_ms = last_decode_ms_;
|
| *max_decode_ms = RequiredDecodeTimeMs();
|
| *current_delay_ms = current_delay_ms_;
|
|
|