// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package media;
// Proto representation of VideoDecodeStatsDB::DecodeStatsEntry. The values are
// associated with a distinct VideoDecodeStatsDB::VideoDescKey.
message DecodeStatsProto {
// Required. Count of decoded video frames.
optional uint64 frames_decoded = 1;
// Required. Count of dropped video frames. Should not exceed
// |frames_decoded|.
optional uint64 frames_dropped = 2;
// Required. Count of power efficiently decoded frames.
optional uint64 frames_power_efficient = 3;
// Required. Time of last data write from
// base::Time::InMillisecondsFSinceUnixEpoch(). Data will be discarded when
// the date indicates it's very old. This avoids a circumstance where a few
// bad outlier playbacks permanently define a machine's capabilities.
optional double last_write_date = 7;
// Required (for those in the "unweighted" experiment). An unweighted average
// of dropped frames percentage from the last |num_unweighted_playbacks|.
optional double unweighted_average_frames_dropped = 8 [default = 0];
// Required (for those in the "unweighted" experiment). An unweighted average
// of efficient frames percentage from the last |num_unweighted_playbacks|.
optional double unweighted_average_frames_efficient = 9 [default = 0];
// Required (for those in the "unweighted" experiment). Count of playbacks
// contributing to |unweighted_average_frames_*| fields.
optional uint64 num_unweighted_playbacks = 10 [default = 0];
}