blob: 00170cd81a519711bd4181291fb6610fde171f36 [file] [log] [blame]
// 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 media.mojom;
import "media/mojo/interfaces/media_types.mojom";
import "mojo/common/time.mojom";
import "mojo/common/values.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";
enum ResolutionChangePolicy {
FIXED_RESOLUTION,
FIXED_ASPECT_RATIO,
ANY_WITHIN_LIMIT,
};
enum PowerLineFrequency {
DEFAULT,
HZ_50,
HZ_60
};
enum VideoPixelStorage {
CPU,
GPUMEMORYBUFFER
};
enum VideoCaptureApi {
LINUX_V4L2_SINGLE_PLANE,
WIN_MEDIA_FOUNDATION,
WIN_DIRECT_SHOW,
MACOSX_AVFOUNDATION,
MACOSX_DECKLINK,
ANDROID_API1,
ANDROID_API2_LEGACY,
ANDROID_API2_FULL,
ANDROID_API2_LIMITED,
ANDROID_TANGO,
UNKNOWN
};
enum VideoCaptureTransportType {
// For MACOSX_AVFOUNDATION Api, identifies devices that are built-in or USB.
MACOSX_USB_OR_BUILT_IN,
OTHER_TRANSPORT
};
struct VideoCaptureFormat {
gfx.mojom.Size frame_size;
float frame_rate;
VideoPixelFormat pixel_format;
VideoPixelStorage pixel_storage;
};
struct VideoCaptureParams {
VideoCaptureFormat requested_format;
ResolutionChangePolicy resolution_change_policy;
PowerLineFrequency power_line_frequency;
};
struct VideoFrameInfo{
mojo.common.mojom.TimeDelta timestamp;
mojo.common.mojom.DictionaryValue metadata;
VideoPixelFormat pixel_format;
VideoPixelStorage storage_type;
gfx.mojom.Size coded_size;
gfx.mojom.Rect visible_rect;
};
struct VideoCaptureDeviceDescriptor {
string display_name;
string device_id;
string model_id;
VideoCaptureApi capture_api;
VideoCaptureTransportType transport_type;
};
struct VideoCaptureDeviceInfo {
VideoCaptureDeviceDescriptor descriptor;
array<VideoCaptureFormat> supported_formats;
};