2018-09-13 23:04:55 +03:00
|
|
|
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2013-03-19 16:28:34 +04:00
|
|
|
/* 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 origin of this IDL file is
|
|
|
|
* http://www.whatwg.org/specs/web-apps/current-work/#the-video-element
|
|
|
|
*
|
|
|
|
* © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and
|
|
|
|
* Opera Software ASA. You are granted a license to use, reproduce
|
|
|
|
* and create derivative works of this document.
|
|
|
|
*/
|
|
|
|
|
2019-10-17 18:38:39 +03:00
|
|
|
[Exposed=Window]
|
2013-03-19 16:28:34 +04:00
|
|
|
interface HTMLVideoElement : HTMLMediaElement {
|
2019-10-17 18:38:39 +03:00
|
|
|
[HTMLConstructor] constructor();
|
|
|
|
|
2017-06-29 17:26:00 +03:00
|
|
|
[CEReactions, SetterThrows]
|
2013-03-19 16:28:34 +04:00
|
|
|
attribute unsigned long width;
|
2017-06-29 17:26:00 +03:00
|
|
|
[CEReactions, SetterThrows]
|
2013-03-19 16:28:34 +04:00
|
|
|
attribute unsigned long height;
|
|
|
|
readonly attribute unsigned long videoWidth;
|
|
|
|
readonly attribute unsigned long videoHeight;
|
2017-06-29 17:26:00 +03:00
|
|
|
[CEReactions, SetterThrows]
|
2013-03-19 16:28:34 +04:00
|
|
|
attribute DOMString poster;
|
|
|
|
};
|
|
|
|
|
|
|
|
partial interface HTMLVideoElement {
|
|
|
|
// A count of the number of video frames that have demuxed from the media
|
|
|
|
// resource. If we were playing perfectly, we'd be able to paint this many
|
|
|
|
// frames.
|
|
|
|
readonly attribute unsigned long mozParsedFrames;
|
|
|
|
|
|
|
|
// A count of the number of frames that have been decoded. We may drop
|
|
|
|
// frames if the decode is taking too much time.
|
|
|
|
readonly attribute unsigned long mozDecodedFrames;
|
|
|
|
|
|
|
|
// A count of the number of frames that have been presented to the rendering
|
|
|
|
// pipeline. We may drop frames if they arrive late at the renderer.
|
|
|
|
readonly attribute unsigned long mozPresentedFrames;
|
|
|
|
|
|
|
|
// Number of presented frames which were painted on screen.
|
|
|
|
readonly attribute unsigned long mozPaintedFrames;
|
|
|
|
|
|
|
|
// Time which the last painted video frame was late by, in seconds.
|
|
|
|
readonly attribute double mozFrameDelay;
|
|
|
|
|
|
|
|
// True if the video has an audio track available.
|
|
|
|
readonly attribute boolean mozHasAudio;
|
2015-09-02 16:18:16 +03:00
|
|
|
|
2017-08-25 09:23:03 +03:00
|
|
|
// Attributes for builtin video controls to lock screen orientation.
|
|
|
|
// True if video controls should lock orientation when fullscreen.
|
2020-02-05 00:28:57 +03:00
|
|
|
[Pref="media.videocontrols.lock-video-orientation", Func="IsChromeOrUAWidget"]
|
2017-08-25 09:23:03 +03:00
|
|
|
readonly attribute boolean mozOrientationLockEnabled;
|
|
|
|
// True if screen orientation is locked by video controls.
|
2020-02-05 00:28:57 +03:00
|
|
|
[Pref="media.videocontrols.lock-video-orientation", Func="IsChromeOrUAWidget"]
|
2017-08-25 09:23:03 +03:00
|
|
|
attribute boolean mozIsOrientationLocked;
|
2019-03-02 01:36:40 +03:00
|
|
|
|
2019-11-22 15:52:48 +03:00
|
|
|
// Clones the frames playing in this <video> to the target. Cloning ends
|
2019-03-02 01:36:40 +03:00
|
|
|
// when either node is removed from their DOM trees. Throws if one or
|
|
|
|
// both <video> elements are not attached to a DOM tree.
|
2019-11-22 15:52:48 +03:00
|
|
|
// Returns a promise that resolves when the target's ImageContainer has been
|
|
|
|
// installed in this <video>'s MediaDecoder, or selected video
|
|
|
|
// MediaStreamTrack, whichever is available first. Note that it might never
|
|
|
|
// resolve.
|
2022-05-02 10:44:24 +03:00
|
|
|
[NewObject, Func="IsChromeOrUAWidget"]
|
2022-09-21 10:44:58 +03:00
|
|
|
Promise<undefined> cloneElementVisually(HTMLVideoElement target);
|
2019-03-13 04:43:07 +03:00
|
|
|
|
|
|
|
// Stops a <video> from cloning visually. Does nothing if the <video>
|
|
|
|
// wasn't cloning in the first place.
|
2020-02-05 00:28:57 +03:00
|
|
|
[Func="IsChromeOrUAWidget"]
|
2022-09-21 10:44:58 +03:00
|
|
|
undefined stopCloningElementVisually();
|
2019-03-13 04:43:07 +03:00
|
|
|
|
|
|
|
// Returns true if the <video> is being cloned visually to another
|
|
|
|
// <video> element (see cloneElementVisually).
|
2020-02-05 00:28:57 +03:00
|
|
|
[Func="IsChromeOrUAWidget"]
|
2019-03-13 04:43:07 +03:00
|
|
|
readonly attribute boolean isCloningElementVisually;
|
2013-03-19 16:28:34 +04:00
|
|
|
};
|
2013-06-21 07:14:18 +04:00
|
|
|
|
|
|
|
// https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-source.html#idl-def-HTMLVideoElement
|
|
|
|
partial interface HTMLVideoElement {
|
2019-07-18 16:06:25 +03:00
|
|
|
[Pref="media.mediasource.enabled", NewObject]
|
2013-07-05 04:24:35 +04:00
|
|
|
VideoPlaybackQuality getVideoPlaybackQuality();
|
2013-06-21 07:14:18 +04:00
|
|
|
};
|