#include "third_party/blink/renderer/platform/media/smoothness_helper.h"
#include <optional>
#include "base/functional/bind.h"
#include "base/memory/raw_ptr.h"
#include "base/time/time.h"
#include "base/timer/timer.h"
#include "base/unguessable_token.h"
#include "media/learning/common/learning_task_controller.h"
namespace blink {
namespace {
FeatureVector;
LearningTaskController;
TargetValue;
static constexpr base::TimeDelta kSegmentSize = …;
static constexpr base::TimeDelta kMaxNNRDistance = …;
static constexpr float kMaxDroppedFramesPerWindow = …;
}
class SmoothnessWindowMonitor { … };
SmoothnessHelper::SmoothnessHelper(const FeatureVector& features)
: … { … }
SmoothnessHelper::~SmoothnessHelper() = default;
class SmoothnessHelperImpl : public SmoothnessHelper { … };
std::unique_ptr<SmoothnessHelper> SmoothnessHelper::Create(
std::unique_ptr<LearningTaskController> bad_controller,
std::unique_ptr<LearningTaskController> nnr_controller,
const FeatureVector& features,
Client* player) { … }
base::TimeDelta SmoothnessHelper::SegmentSizeForTesting() { … }
}