speedy-vision
Version:
GPU-accelerated Computer Vision for JavaScript
91 lines (90 loc) • 3.04 kB
TypeScript
/**
* 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";