Move FrameTiming list from OveruseDetector to SendProcessingUsage.
Bug: webrtc:8504
Change-Id: Ifd8feb1634f1061f841493eae83c9eae410d4c20
Reviewed-on: https://webrtc-review.googlesource.com/30780
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21153}
diff --git a/video/overuse_frame_detector.h b/video/overuse_frame_detector.h
index dd84d6f..76508bc 100644
--- a/video/overuse_frame_detector.h
+++ b/video/overuse_frame_detector.h
@@ -95,9 +95,13 @@
public:
virtual void Reset() = 0;
virtual void SetMaxSampleDiffMs(float diff_ms) = 0;
- virtual void AddCaptureSample(float sample_ms) = 0;
- virtual void AddSample(float processing_ms,
- int64_t diff_last_sample_ms) = 0;
+ virtual void FrameCaptured(const VideoFrame& frame,
+ int64_t time_when_first_seen_us,
+ int64_t last_capture_time_us) = 0;
+ // Returns encode_time in us, if there's a new measurement.
+ virtual rtc::Optional<int> FrameSent(uint32_t timestamp,
+ int64_t time_sent_in_us) = 0;
+
virtual int Value() = 0;
virtual ~ProcessingUsage() = default;
};
@@ -107,17 +111,6 @@
private:
class CheckOveruseTask;
- struct FrameTiming {
- FrameTiming(int64_t capture_time_us, uint32_t timestamp, int64_t now)
- : capture_time_us(capture_time_us),
- timestamp(timestamp),
- capture_us(now),
- last_send_us(-1) {}
- int64_t capture_time_us;
- uint32_t timestamp;
- int64_t capture_us;
- int64_t last_send_us;
- };
void EncodedFrameTimeMeasured(int encode_duration_ms);
bool IsOverusing(const CpuOveruseMetrics& metrics);
@@ -129,7 +122,8 @@
void ResetAll(int num_pixels);
static std::unique_ptr<ProcessingUsage> CreateProcessingUsage(
- const CpuOveruseOptions& options);
+ const CpuOveruseOptions& options,
+ EncodedFrameObserver* encoder_timing);
rtc::SequencedTaskChecker task_checker_;
// Owned by the task queue from where StartCheckForOveruse is called.
@@ -139,7 +133,6 @@
// Observer getting overuse reports.
AdaptationObserverInterface* const observer_;
- EncodedFrameObserver* const encoder_timing_;
// Stats metrics.
CpuOveruseMetricsObserver* const metrics_observer_;
@@ -148,7 +141,6 @@
int64_t num_process_times_ RTC_GUARDED_BY(task_checker_);
int64_t last_capture_time_us_ RTC_GUARDED_BY(task_checker_);
- int64_t last_processed_capture_time_us_ RTC_GUARDED_BY(task_checker_);
// Number of pixels of last captured frame.
int num_pixels_ RTC_GUARDED_BY(task_checker_);
@@ -162,7 +154,6 @@
const std::unique_ptr<ProcessingUsage> usage_
RTC_PT_GUARDED_BY(task_checker_);
- std::list<FrameTiming> frame_timing_ RTC_GUARDED_BY(task_checker_);
RTC_DISALLOW_COPY_AND_ASSIGN(OveruseFrameDetector);
};