blob: 11b5d86ba7ece5b00173ab654c06344f8a6717f2 [file] [log] [blame]
// 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();
};