/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ /* The capabilities of the video recorder. These are guaranteed not to change over the lifetime of that partcicular instance. */ [Func="CameraCapabilities::HasSupport"] interface CameraRecorderAudioProfile { [Constant, Cached] readonly attribute DOMString codec; [Constant, Cached] readonly attribute unsigned long bitsPerSecond; [Constant, Cached] readonly attribute unsigned long samplesPerSecond; [Constant, Cached] readonly attribute unsigned long channels; jsonifier; }; [Func="CameraCapabilities::HasSupport"] interface CameraRecorderVideoProfile { [Constant, Cached] readonly attribute DOMString codec; [Constant, Cached] readonly attribute unsigned long bitsPerSecond; [Constant, Cached] readonly attribute unsigned long framesPerSecond; [Constant, Cached] readonly attribute CameraSize size; [Constant, Cached] readonly attribute unsigned long width; [Constant, Cached] readonly attribute unsigned long height; jsonifier; }; [Func="CameraCapabilities::HasSupport"] interface CameraRecorderProfile { [Constant, Cached] readonly attribute DOMString name; [Constant, Cached] readonly attribute DOMString containerFormat; [Constant, Cached] readonly attribute DOMString mimeType; [Constant, Cached] readonly attribute CameraRecorderAudioProfile audio; [Constant, Cached] readonly attribute CameraRecorderVideoProfile video; jsonifier; }; [Func="CameraCapabilities::HasSupport"] interface CameraRecorderProfiles { getter CameraRecorderProfile(DOMString profile); jsonifier; }; /* The capabilities of a CameraControl instance. These are guaranteed not to change over the lifetime of that particular instance. */ [Func="CameraCapabilities::HasSupport"] interface CameraCapabilities { [Constant, Cached] readonly attribute sequence previewSizes; [Constant, Cached] readonly attribute sequence pictureSizes; [Constant, Cached] readonly attribute sequence thumbnailSizes; [Constant, Cached] readonly attribute sequence videoSizes; [Constant, Cached] readonly attribute sequence fileFormats; [Constant, Cached] readonly attribute sequence whiteBalanceModes; [Constant, Cached] readonly attribute sequence sceneModes; [Constant, Cached] readonly attribute sequence effects; [Constant, Cached] readonly attribute sequence flashModes; [Constant, Cached] readonly attribute sequence focusModes; [Constant, Cached] readonly attribute sequence zoomRatios; [Constant, Cached] readonly attribute unsigned long maxFocusAreas; [Constant, Cached] readonly attribute unsigned long maxMeteringAreas; [Constant, Cached] readonly attribute unsigned long maxDetectedFaces; [Constant, Cached] readonly attribute double minExposureCompensation; [Constant, Cached] readonly attribute double maxExposureCompensation; [Constant, Cached] readonly attribute double exposureCompensationStep; [Constant, Cached] readonly attribute CameraRecorderProfiles recorderProfiles; [Constant, Cached] readonly attribute sequence isoModes; [Constant, Cached] readonly attribute sequence meteringModes; jsonifier; };