// 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/media_perception.mojom";
import "mojom/video_source_provider.mojom";

// Used to establish two-way communication between a client and the media
// perception service.
interface MediaPerceptionService {
  GetController@0(pending_receiver<MediaPerceptionController> receiver,
                  pending_remote<MediaPerceptionControllerClient> client);
};

interface MediaPerceptionController {
  // Used by the client to establish a MediaPerception pipe.
  ActivateMediaPerception@0(pending_receiver<MediaPerception> receiver);
};

interface MediaPerceptionControllerClient {
  // Interface for the service to connect to the Video Capture Service
  // directly via a Mojo pipe set up through a DeviceFactory request.
  ConnectToVideoCaptureService@0(
  pending_receiver<video_capture.mojom.VideoSourceProvider> receiver);
};

