speedy-vision
Version:
GPU-accelerated Computer Vision for JavaScript
78 lines (77 loc) • 2.3 kB
TypeScript
/**
* An abstract media source: a wrapper around native
* elements such as: HTMLImageElement, HTMLVideoElement,
* and so on
* @abstract
*/
export class SpeedyMediaSource {
/**
* Load a media source
* @param {SpeedyMediaSourceNativeElement} wrappedObject
* @returns {SpeedyPromise<SpeedyMediaSource>}
*/
static load(wrappedObject: SpeedyMediaSourceNativeElement): SpeedyPromise<SpeedyMediaSource>;
/**
* Wait for an event to be triggered in an element
* @param {Element} element
* @param {string} eventName
* @param {number} [timeout] in ms
* @returns {SpeedyPromise<Element>}
*/
static _waitUntil(element: Element, eventName: string, timeout?: number | undefined): SpeedyPromise<Element>;
/**
* @protected Constructor
* @param {symbol} token
*/
protected constructor();
/** @type {SpeedyMediaSourceNativeElement} underlying media object */
_data: SpeedyMediaSourceNativeElement;
/**
* The underlying wrapped object
* @returns {SpeedyMediaSourceNativeElement}
*/
get data(): SpeedyMediaSourceNativeElement;
/**
* Is the underlying media loaded?
* @returns {boolean}
*/
isLoaded(): boolean;
/**
* The type of the underlying media source
* @abstract
* @returns {MediaType}
*/
get type(): Symbol;
/**
* Media width, in pixels
* @abstract
* @returns {number}
*/
get width(): number;
/**
* Media height, in pixels
* @abstract
* @returns {number}
*/
get height(): number;
/**
* Clone this media source
* @abstract
* @returns {SpeedyPromise<SpeedyMediaSource>}
*/
clone(): SpeedyPromise<SpeedyMediaSource>;
/**
* Release resources associated with this object
* @returns {null}
*/
release(): null;
/**
* Load the underlying media
* @abstract
* @param {SpeedyMediaSourceNativeElement} element
* @returns {SpeedyPromise<SpeedyMediaSource>}
*/
_load(element: SpeedyMediaSourceNativeElement): SpeedyPromise<SpeedyMediaSource>;
}
export type SpeedyMediaSourceNativeElement = HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap;
import { SpeedyPromise } from "./speedy-promise";