/* * Copyright 2019 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 VIDEO_QUALITY_LIMITATION_REASON_TRACKER_H_ #define VIDEO_QUALITY_LIMITATION_REASON_TRACKER_H_ #include <map> #include "common_video/include/quality_limitation_reason.h" #include "system_wrappers/include/clock.h" namespace webrtc { // A tracker of quality limitation reasons. The quality limitation reason is the // primary reason for limiting resolution and/or framerate (such as CPU or // bandwidth limitations). The tracker keeps track of the current reason and the // duration of time spent in each reason. See qualityLimitationReason[1], // qualityLimitationDurations[2], and qualityLimitationResolutionChanges[3] in // the webrtc-stats spec. // Note that the specification defines the durations in seconds while the // internal data structures defines it in milliseconds. // [1] // https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-qualitylimitationreason // [2] // https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-qualitylimitationdurations // [3] // https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-qualitylimitationresolutionchanges class QualityLimitationReasonTracker { … }; } // namespace webrtc #endif // VIDEO_QUALITY_LIMITATION_REASON_TRACKER_H_