chromium/media/capabilities/video_decode_stats.proto

// 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];
}