| // Copyright 2019 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 cros.mojom; |
| |
| enum PixelFormat { |
| YUV_420, |
| JPEG, |
| }; |
| |
| struct IpCameraStream { |
| PixelFormat format; |
| int32 width; |
| int32 height; |
| double fps; |
| }; |
| |
| interface IpCameraFrameListener { |
| OnFrameCaptured(handle<shared_buffer> shm_handle, int32 id, uint32 size); |
| }; |
| |
| interface IpCameraDevice { |
| // Only a single listener is supported. Registering a new one will replace any |
| // existing listener. |
| RegisterFrameListener(IpCameraFrameListener listener); |
| |
| StartStreaming(); |
| StopStreaming(); |
| |
| ReturnBuffer(int32 id); |
| }; |
| |
| interface IpCameraConnectionListener { |
| OnDeviceConnected(string ip, string name, IpCameraDevice device, |
| IpCameraStream default_stream); |
| OnDeviceDisconnected(string ip); |
| }; |
| |
| interface IpCameraDetector { |
| // Only a single listener is supported. Registering a new one will replace any |
| // existing listener. |
| RegisterConnectionListener(IpCameraConnectionListener listener); |
| }; |
| |
| interface IpCameraProxy { |
| Init(IpCameraDevice& device_request) => (bool success, IpCameraStream stream); |
| Destroy(); |
| }; |