| // Copyright 2016 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. |
| |
| module video_capture.mojom; |
| |
| import "media/capture/mojom/video_capture_types.mojom"; |
| import "media/capture/mojom/image_capture.mojom"; |
| import "services/video_capture/public/mojom/receiver.mojom"; |
| |
| // Represents access to a video capture device available on the machine. |
| // The device is stopped automatically when the message pipe corresponding to |
| // either the Device or the given |receiver| is closed. Note, however, that |
| // as a response to closing the device, the service may still need to send out |
| // events such as Receiver.OnBufferRetired(). Clients who need to wait for this |
| // to complete must explicitly call Stop() and wait for its callback to indicate |
| // that all events related to stopping device have been sent out. |
| interface Device { |
| Start(media.mojom.VideoCaptureParams requested_settings, Receiver receiver); |
| OnReceiverReportingUtilization(int32 frame_feedback_id, |
| double utilization); |
| RequestRefreshFrame(); |
| MaybeSuspend(); |
| Resume(); |
| GetPhotoState() |
| => (media.mojom.PhotoState? capabilities); |
| SetPhotoOptions(media.mojom.PhotoSettings settings) |
| => (bool success); |
| TakePhoto() |
| => (media.mojom.Blob? blob); |
| |
| Stop() => (); |
| }; |