// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Next MinVersion: 1

module chromeos.media_perception.mojom;

import "mojom/common.mojom";

[Extensible]
enum EntityType {
  ENTITY_TYPE_UNKNOWN = 0,
  FACE = 1,
  PERSON = 2,
  MOTION_REGION = 3,
  LABELED_REGION = 4,
};

struct Entity {
  EntityType type@0;

  string? label@1;

  // A normalized bounding box which captures the entire detected entity.
  NormalizedBoundingBox? bounding_box@2;

  // A value for the quality of this detection in the interval [0, 1].
  float confidence@3;

  // The estimated depth of the entity from the camera.
  Distance? depth@4;
};

[Extensible]
enum FramePerceptionType {
  FRAME_PERCEPTION_TYPE_UNKNOWN = 0,
  FACE_DETECTION = 1,
  PERSON_DETECTION = 2,
  MOTION_DETECTION = 3,
};

struct FramePerception {
  int64 frame_id@0;

  // The timestamp associated with the frame (when it is received by the
  // analytics process).
  int64 timestamp_us@1;

  // A list of entities detected in this frame.
  array<Entity> entities@2;

  // Indicates what types of frame perception were run.
  array<FramePerceptionType> perception_types@3;
};

interface FramePerceptionHandler {
  // Callback for data that comes out of the analytics process.
  OnFramePerception@0(FramePerception frame_perception);
};

