// 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(MediaPerceptionController& request,
                  MediaPerceptionControllerClient client);
};

interface MediaPerceptionController {
  // Used by the client to establish a MediaPerception pipe.
  ActivateMediaPerception@0(MediaPerception& request);
};

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(video_capture.mojom.VideoSourceProvider& request);
};

