UNPKG

speedy-vision

Version:

GPU-accelerated Computer Vision for JavaScript

91 lines (90 loc) 3.04 kB
/** * SpeedyMedia encapsulates a media element * (e.g., image, video, canvas) */ export class SpeedyMedia { /** * Load a media source * Will wait until the HTML media source is loaded * @param {SpeedyMediaSourceNativeElement} mediaSource An image, video or canvas * @param {SpeedyMediaOptions} [options] options object * @param {boolean} [log] show log message? * @returns {SpeedyPromise<SpeedyMedia>} */ static load(mediaSource: SpeedyMediaSourceNativeElement, options?: SpeedyMediaOptions | undefined, log?: boolean | undefined): SpeedyPromise<SpeedyMedia>; /** * @private Constructor. It receives a VALID media source that is ALREADY LOADED. * @param {symbol} token * @param {SpeedyMediaSource} source * @param {SpeedyMediaOptions} [options] options object */ private constructor(); /** @type {SpeedyMediaSource} media source */ _source: SpeedyMediaSource; /** @type {ImageFormat} format */ _format: ImageFormat; /** @type {SpeedyMediaOptions} options */ _options: SpeedyMediaOptions; /** * The media element (image, video, canvas) encapsulated by this SpeedyMedia object * @returns {SpeedyMediaSourceNativeElement} the media element */ get source(): import("./speedy-media-source").SpeedyMediaSourceNativeElement; /** * The type of the media attached to this SpeedyMedia object * @returns {"image" | "video" | "canvas" | "bitmap" | "unknown"} */ get type(): "canvas" | "video" | "image" | "unknown" | "bitmap"; /** * Gets the width of the media * @returns {number} media width */ get width(): number; /** * Gets the height of the media * @returns {number} media height */ get height(): number; /** * The size of this media, in pixels * @returns {SpeedySize} */ get size(): SpeedySize; /** * Returns a read-only object featuring advanced options * related to this SpeedyMedia object * @returns {SpeedyMediaOptions} */ get options(): SpeedyMediaOptions; /** * Releases resources associated with this media * @returns {null} */ release(): null; /** * Has this media been released? * @returns {boolean} */ isReleased(): boolean; /** * Clones the SpeedyMedia object * @returns {SpeedyPromise<SpeedyMedia>} a clone object */ clone(): SpeedyPromise<SpeedyMedia>; /** * Converts the media to an ImageBitmap * @returns {SpeedyPromise<ImageBitmap>} */ toBitmap(): SpeedyPromise<ImageBitmap>; } export type SpeedyMediaSourceNativeElement = import('./speedy-media-source').SpeedyMediaSourceNativeElement; export type SpeedyMediaOptions = { /** * default is RGBA */ format?: Symbol | undefined; }; import { SpeedyMediaSource } from "./speedy-media-source"; import { ImageFormat } from "../utils/types"; import { SpeedySize } from "./speedy-size"; import { SpeedyPromise } from "./speedy-promise";