mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 22:00:47 +01:00

Bug: webrtc:10021,chromium:907234 Change-Id: Ic0e6ba01c8dfdd5ca8230c8579bf149693e5f151 Reviewed-on: https://webrtc-review.googlesource.com/c/111580 Commit-Queue: Per Åhgren <peah@webrtc.org> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25806}
60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
/*
|
|
* Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef MODULES_AUDIO_PROCESSING_AEC3_API_CALL_JITTER_METRICS_H_
|
|
#define MODULES_AUDIO_PROCESSING_AEC3_API_CALL_JITTER_METRICS_H_
|
|
|
|
namespace webrtc {
|
|
|
|
// Stores data for reporting metrics on the API call jitter.
|
|
class ApiCallJitterMetrics {
|
|
public:
|
|
class Jitter {
|
|
public:
|
|
Jitter();
|
|
void Update(int num_api_calls_in_a_row);
|
|
void Reset();
|
|
|
|
int min() const { return min_; }
|
|
int max() const { return max_; }
|
|
|
|
private:
|
|
int max_;
|
|
int min_;
|
|
};
|
|
|
|
ApiCallJitterMetrics() { Reset(); }
|
|
|
|
// Update metrics for render API call.
|
|
void ReportRenderCall();
|
|
|
|
// Update and periodically report metrics for capture API call.
|
|
void ReportCaptureCall();
|
|
|
|
// Methods used only for testing.
|
|
const Jitter& render_jitter() const { return render_jitter_; }
|
|
const Jitter& capture_jitter() const { return capture_jitter_; }
|
|
bool WillReportMetricsAtNextCapture() const;
|
|
|
|
private:
|
|
void Reset();
|
|
|
|
Jitter render_jitter_;
|
|
Jitter capture_jitter_;
|
|
|
|
int num_api_calls_in_a_row_ = 0;
|
|
int frames_since_last_report_ = 0;
|
|
bool last_call_was_render_ = false;
|
|
bool proper_call_observed_ = false;
|
|
};
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // MODULES_AUDIO_PROCESSING_AEC3_API_CALL_JITTER_METRICS_H_
|