| // 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; |
| }; |