force typescript 4.2 due to typedoc incompatibility with ts 4.3
parent
bf84748777
commit
98ea06fb0e
11
CHANGELOG.md
11
CHANGELOG.md
|
@ -1,6 +1,6 @@
|
||||||
# @vladmandic/face-api
|
# @vladmandic/face-api
|
||||||
|
|
||||||
Version: **1.2.4**
|
Version: **1.2.5**
|
||||||
Description: **FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS**
|
Description: **FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS**
|
||||||
|
|
||||||
Author: **Vladimir Mandic <mandic00@live.com>**
|
Author: **Vladimir Mandic <mandic00@live.com>**
|
||||||
|
@ -9,12 +9,15 @@ Repository: **<git+https://github.com/vladmandic/face-api.git>**
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
### **1.2.5** 2021/05/27 mandic00@live.com
|
||||||
|
|
||||||
|
|
||||||
|
### **origin/master** 2021/05/27 admin@bettysteger.com
|
||||||
|
|
||||||
|
|
||||||
### **1.2.4** 2021/05/18 mandic00@live.com
|
### **1.2.4** 2021/05/18 mandic00@live.com
|
||||||
|
|
||||||
|
|
||||||
### **origin/master** 2021/05/04 mandic00@live.com
|
|
||||||
|
|
||||||
|
|
||||||
### **1.2.3** 2021/05/04 mandic00@live.com
|
### **1.2.3** 2021/05/04 mandic00@live.com
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -788,6 +788,7 @@ function createBrowserEnv() {
|
||||||
Video: HTMLVideoElement,
|
Video: HTMLVideoElement,
|
||||||
createCanvasElement: () => document.createElement("canvas"),
|
createCanvasElement: () => document.createElement("canvas"),
|
||||||
createImageElement: () => document.createElement("img"),
|
createImageElement: () => document.createElement("img"),
|
||||||
|
createVideoElement: () => document.createElement("video"),
|
||||||
fetch,
|
fetch,
|
||||||
readFile
|
readFile
|
||||||
};
|
};
|
||||||
|
@ -817,6 +818,7 @@ function createFileSystem(fs) {
|
||||||
function createNodejsEnv() {
|
function createNodejsEnv() {
|
||||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||||
const Image = global.Image || global.HTMLImageElement;
|
const Image = global.Image || global.HTMLImageElement;
|
||||||
|
const Video = global["Video"] || global.HTMLVideoElement;
|
||||||
const createCanvasElement = () => {
|
const createCanvasElement = () => {
|
||||||
if (Canvas)
|
if (Canvas)
|
||||||
return new Canvas();
|
return new Canvas();
|
||||||
|
@ -827,6 +829,11 @@ function createNodejsEnv() {
|
||||||
return new Image();
|
return new Image();
|
||||||
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
||||||
};
|
};
|
||||||
|
const createVideoElement = () => {
|
||||||
|
if (Video)
|
||||||
|
return new Video();
|
||||||
|
throw new Error("createVideoElement - missing Video implementation for nodejs environment");
|
||||||
|
};
|
||||||
const fetch = global.fetch;
|
const fetch = global.fetch;
|
||||||
const fileSystem = createFileSystem();
|
const fileSystem = createFileSystem();
|
||||||
return {
|
return {
|
||||||
|
@ -842,6 +849,7 @@ function createNodejsEnv() {
|
||||||
},
|
},
|
||||||
createCanvasElement,
|
createCanvasElement,
|
||||||
createImageElement,
|
createImageElement,
|
||||||
|
createVideoElement,
|
||||||
fetch,
|
fetch,
|
||||||
...fileSystem
|
...fileSystem
|
||||||
};
|
};
|
||||||
|
@ -1381,6 +1389,31 @@ async function fetchNetWeights(uri) {
|
||||||
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// src/dom/bufferToVideo.ts
|
||||||
|
function bufferToVideo(buf) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (!(buf instanceof Blob))
|
||||||
|
reject(new Error("bufferToVideo - expected buf to be of type: Blob"));
|
||||||
|
const video = env.getEnv().createVideoElement();
|
||||||
|
video.oncanplay = () => resolve(video);
|
||||||
|
video.onerror = reject;
|
||||||
|
video.playsInline = true;
|
||||||
|
video.autoplay = true;
|
||||||
|
video.muted = true;
|
||||||
|
video.src = URL.createObjectURL(buf);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// src/dom/fetchVideo.ts
|
||||||
|
async function fetchVideo(uri) {
|
||||||
|
const res = await fetchOrThrow(uri);
|
||||||
|
const blob = await res.blob();
|
||||||
|
if (!blob.type.startsWith("video/")) {
|
||||||
|
throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);
|
||||||
|
}
|
||||||
|
return bufferToVideo(blob);
|
||||||
|
}
|
||||||
|
|
||||||
// src/common/getModelUris.ts
|
// src/common/getModelUris.ts
|
||||||
function getModelUris(uri, defaultModelName) {
|
function getModelUris(uri, defaultModelName) {
|
||||||
const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;
|
const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;
|
||||||
|
@ -2085,7 +2118,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
var version = "1.2.4";
|
var version = "1.2.5";
|
||||||
|
|
||||||
// src/xception/extractParams.ts
|
// src/xception/extractParams.ts
|
||||||
function extractorsFactory2(extractWeights, paramMappings) {
|
function extractorsFactory2(extractWeights, paramMappings) {
|
||||||
|
@ -4398,6 +4431,7 @@ export {
|
||||||
fetchJson,
|
fetchJson,
|
||||||
fetchNetWeights,
|
fetchNetWeights,
|
||||||
fetchOrThrow,
|
fetchOrThrow,
|
||||||
|
fetchVideo,
|
||||||
getContext2dOrThrow,
|
getContext2dOrThrow,
|
||||||
getMediaDimensions,
|
getMediaDimensions,
|
||||||
imageTensorToCanvas,
|
imageTensorToCanvas,
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -58067,6 +58067,7 @@ function createBrowserEnv() {
|
||||||
Video: HTMLVideoElement,
|
Video: HTMLVideoElement,
|
||||||
createCanvasElement: () => document.createElement("canvas"),
|
createCanvasElement: () => document.createElement("canvas"),
|
||||||
createImageElement: () => document.createElement("img"),
|
createImageElement: () => document.createElement("img"),
|
||||||
|
createVideoElement: () => document.createElement("video"),
|
||||||
fetch: fetch3,
|
fetch: fetch3,
|
||||||
readFile
|
readFile
|
||||||
};
|
};
|
||||||
|
@ -58096,6 +58097,7 @@ function createFileSystem(fs) {
|
||||||
function createNodejsEnv() {
|
function createNodejsEnv() {
|
||||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||||
const Image = global.Image || global.HTMLImageElement;
|
const Image = global.Image || global.HTMLImageElement;
|
||||||
|
const Video = global["Video"] || global.HTMLVideoElement;
|
||||||
const createCanvasElement = () => {
|
const createCanvasElement = () => {
|
||||||
if (Canvas)
|
if (Canvas)
|
||||||
return new Canvas();
|
return new Canvas();
|
||||||
|
@ -58106,6 +58108,11 @@ function createNodejsEnv() {
|
||||||
return new Image();
|
return new Image();
|
||||||
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
||||||
};
|
};
|
||||||
|
const createVideoElement = () => {
|
||||||
|
if (Video)
|
||||||
|
return new Video();
|
||||||
|
throw new Error("createVideoElement - missing Video implementation for nodejs environment");
|
||||||
|
};
|
||||||
const fetch3 = global.fetch;
|
const fetch3 = global.fetch;
|
||||||
const fileSystem = createFileSystem();
|
const fileSystem = createFileSystem();
|
||||||
return {
|
return {
|
||||||
|
@ -58121,6 +58128,7 @@ function createNodejsEnv() {
|
||||||
},
|
},
|
||||||
createCanvasElement,
|
createCanvasElement,
|
||||||
createImageElement,
|
createImageElement,
|
||||||
|
createVideoElement,
|
||||||
fetch: fetch3,
|
fetch: fetch3,
|
||||||
...fileSystem
|
...fileSystem
|
||||||
};
|
};
|
||||||
|
@ -58660,6 +58668,31 @@ async function fetchNetWeights(uri) {
|
||||||
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// src/dom/bufferToVideo.ts
|
||||||
|
function bufferToVideo(buf) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (!(buf instanceof Blob))
|
||||||
|
reject(new Error("bufferToVideo - expected buf to be of type: Blob"));
|
||||||
|
const video = env2.getEnv().createVideoElement();
|
||||||
|
video.oncanplay = () => resolve(video);
|
||||||
|
video.onerror = reject;
|
||||||
|
video.playsInline = true;
|
||||||
|
video.autoplay = true;
|
||||||
|
video.muted = true;
|
||||||
|
video.src = URL.createObjectURL(buf);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// src/dom/fetchVideo.ts
|
||||||
|
async function fetchVideo(uri) {
|
||||||
|
const res = await fetchOrThrow(uri);
|
||||||
|
const blob = await res.blob();
|
||||||
|
if (!blob.type.startsWith("video/")) {
|
||||||
|
throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);
|
||||||
|
}
|
||||||
|
return bufferToVideo(blob);
|
||||||
|
}
|
||||||
|
|
||||||
// src/common/getModelUris.ts
|
// src/common/getModelUris.ts
|
||||||
function getModelUris(uri, defaultModelName) {
|
function getModelUris(uri, defaultModelName) {
|
||||||
const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;
|
const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;
|
||||||
|
@ -59364,7 +59397,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
var version10 = "1.2.4";
|
var version10 = "1.2.5";
|
||||||
|
|
||||||
// src/xception/extractParams.ts
|
// src/xception/extractParams.ts
|
||||||
function extractorsFactory2(extractWeights, paramMappings) {
|
function extractorsFactory2(extractWeights, paramMappings) {
|
||||||
|
@ -61677,6 +61710,7 @@ export {
|
||||||
fetchJson,
|
fetchJson,
|
||||||
fetchNetWeights,
|
fetchNetWeights,
|
||||||
fetchOrThrow,
|
fetchOrThrow,
|
||||||
|
fetchVideo,
|
||||||
getContext2dOrThrow,
|
getContext2dOrThrow,
|
||||||
getMediaDimensions,
|
getMediaDimensions,
|
||||||
imageTensorToCanvas,
|
imageTensorToCanvas,
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -96,6 +96,7 @@ var faceapi = (() => {
|
||||||
fetchJson: () => fetchJson,
|
fetchJson: () => fetchJson,
|
||||||
fetchNetWeights: () => fetchNetWeights,
|
fetchNetWeights: () => fetchNetWeights,
|
||||||
fetchOrThrow: () => fetchOrThrow,
|
fetchOrThrow: () => fetchOrThrow,
|
||||||
|
fetchVideo: () => fetchVideo,
|
||||||
getContext2dOrThrow: () => getContext2dOrThrow,
|
getContext2dOrThrow: () => getContext2dOrThrow,
|
||||||
getMediaDimensions: () => getMediaDimensions,
|
getMediaDimensions: () => getMediaDimensions,
|
||||||
imageTensorToCanvas: () => imageTensorToCanvas,
|
imageTensorToCanvas: () => imageTensorToCanvas,
|
||||||
|
@ -58193,6 +58194,7 @@ return a / b;`;
|
||||||
Video: HTMLVideoElement,
|
Video: HTMLVideoElement,
|
||||||
createCanvasElement: () => document.createElement("canvas"),
|
createCanvasElement: () => document.createElement("canvas"),
|
||||||
createImageElement: () => document.createElement("img"),
|
createImageElement: () => document.createElement("img"),
|
||||||
|
createVideoElement: () => document.createElement("video"),
|
||||||
fetch: fetch3,
|
fetch: fetch3,
|
||||||
readFile
|
readFile
|
||||||
};
|
};
|
||||||
|
@ -58222,6 +58224,7 @@ return a / b;`;
|
||||||
function createNodejsEnv() {
|
function createNodejsEnv() {
|
||||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||||
const Image = global.Image || global.HTMLImageElement;
|
const Image = global.Image || global.HTMLImageElement;
|
||||||
|
const Video = global["Video"] || global.HTMLVideoElement;
|
||||||
const createCanvasElement = () => {
|
const createCanvasElement = () => {
|
||||||
if (Canvas)
|
if (Canvas)
|
||||||
return new Canvas();
|
return new Canvas();
|
||||||
|
@ -58232,6 +58235,11 @@ return a / b;`;
|
||||||
return new Image();
|
return new Image();
|
||||||
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
||||||
};
|
};
|
||||||
|
const createVideoElement = () => {
|
||||||
|
if (Video)
|
||||||
|
return new Video();
|
||||||
|
throw new Error("createVideoElement - missing Video implementation for nodejs environment");
|
||||||
|
};
|
||||||
const fetch3 = global.fetch;
|
const fetch3 = global.fetch;
|
||||||
const fileSystem = createFileSystem();
|
const fileSystem = createFileSystem();
|
||||||
return {
|
return {
|
||||||
|
@ -58247,6 +58255,7 @@ return a / b;`;
|
||||||
},
|
},
|
||||||
createCanvasElement,
|
createCanvasElement,
|
||||||
createImageElement,
|
createImageElement,
|
||||||
|
createVideoElement,
|
||||||
fetch: fetch3,
|
fetch: fetch3,
|
||||||
...fileSystem
|
...fileSystem
|
||||||
};
|
};
|
||||||
|
@ -58786,6 +58795,31 @@ return a / b;`;
|
||||||
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// src/dom/bufferToVideo.ts
|
||||||
|
function bufferToVideo(buf) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (!(buf instanceof Blob))
|
||||||
|
reject(new Error("bufferToVideo - expected buf to be of type: Blob"));
|
||||||
|
const video = env2.getEnv().createVideoElement();
|
||||||
|
video.oncanplay = () => resolve(video);
|
||||||
|
video.onerror = reject;
|
||||||
|
video.playsInline = true;
|
||||||
|
video.autoplay = true;
|
||||||
|
video.muted = true;
|
||||||
|
video.src = URL.createObjectURL(buf);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// src/dom/fetchVideo.ts
|
||||||
|
async function fetchVideo(uri) {
|
||||||
|
const res = await fetchOrThrow(uri);
|
||||||
|
const blob = await res.blob();
|
||||||
|
if (!blob.type.startsWith("video/")) {
|
||||||
|
throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);
|
||||||
|
}
|
||||||
|
return bufferToVideo(blob);
|
||||||
|
}
|
||||||
|
|
||||||
// src/common/getModelUris.ts
|
// src/common/getModelUris.ts
|
||||||
function getModelUris(uri, defaultModelName) {
|
function getModelUris(uri, defaultModelName) {
|
||||||
const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;
|
const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;
|
||||||
|
@ -59490,7 +59524,7 @@ return a / b;`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
var version10 = "1.2.4";
|
var version10 = "1.2.5";
|
||||||
|
|
||||||
// src/xception/extractParams.ts
|
// src/xception/extractParams.ts
|
||||||
function extractorsFactory2(extractWeights, paramMappings) {
|
function extractorsFactory2(extractWeights, paramMappings) {
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -136,6 +136,7 @@ __export(exports, {
|
||||||
fetchJson: () => fetchJson,
|
fetchJson: () => fetchJson,
|
||||||
fetchNetWeights: () => fetchNetWeights,
|
fetchNetWeights: () => fetchNetWeights,
|
||||||
fetchOrThrow: () => fetchOrThrow,
|
fetchOrThrow: () => fetchOrThrow,
|
||||||
|
fetchVideo: () => fetchVideo,
|
||||||
getContext2dOrThrow: () => getContext2dOrThrow,
|
getContext2dOrThrow: () => getContext2dOrThrow,
|
||||||
getMediaDimensions: () => getMediaDimensions,
|
getMediaDimensions: () => getMediaDimensions,
|
||||||
imageTensorToCanvas: () => imageTensorToCanvas,
|
imageTensorToCanvas: () => imageTensorToCanvas,
|
||||||
|
@ -940,6 +941,7 @@ function createBrowserEnv() {
|
||||||
Video: HTMLVideoElement,
|
Video: HTMLVideoElement,
|
||||||
createCanvasElement: () => document.createElement("canvas"),
|
createCanvasElement: () => document.createElement("canvas"),
|
||||||
createImageElement: () => document.createElement("img"),
|
createImageElement: () => document.createElement("img"),
|
||||||
|
createVideoElement: () => document.createElement("video"),
|
||||||
fetch,
|
fetch,
|
||||||
readFile
|
readFile
|
||||||
};
|
};
|
||||||
|
@ -969,6 +971,7 @@ function createFileSystem(fs) {
|
||||||
function createNodejsEnv() {
|
function createNodejsEnv() {
|
||||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||||
const Image = global.Image || global.HTMLImageElement;
|
const Image = global.Image || global.HTMLImageElement;
|
||||||
|
const Video = global["Video"] || global.HTMLVideoElement;
|
||||||
const createCanvasElement = () => {
|
const createCanvasElement = () => {
|
||||||
if (Canvas)
|
if (Canvas)
|
||||||
return new Canvas();
|
return new Canvas();
|
||||||
|
@ -979,6 +982,11 @@ function createNodejsEnv() {
|
||||||
return new Image();
|
return new Image();
|
||||||
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
||||||
};
|
};
|
||||||
|
const createVideoElement = () => {
|
||||||
|
if (Video)
|
||||||
|
return new Video();
|
||||||
|
throw new Error("createVideoElement - missing Video implementation for nodejs environment");
|
||||||
|
};
|
||||||
const fetch = global.fetch;
|
const fetch = global.fetch;
|
||||||
const fileSystem = createFileSystem();
|
const fileSystem = createFileSystem();
|
||||||
return {
|
return {
|
||||||
|
@ -994,6 +1002,7 @@ function createNodejsEnv() {
|
||||||
},
|
},
|
||||||
createCanvasElement,
|
createCanvasElement,
|
||||||
createImageElement,
|
createImageElement,
|
||||||
|
createVideoElement,
|
||||||
fetch,
|
fetch,
|
||||||
...fileSystem
|
...fileSystem
|
||||||
};
|
};
|
||||||
|
@ -1541,6 +1550,31 @@ async function fetchNetWeights(uri) {
|
||||||
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// src/dom/bufferToVideo.ts
|
||||||
|
function bufferToVideo(buf) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (!(buf instanceof Blob))
|
||||||
|
reject(new Error("bufferToVideo - expected buf to be of type: Blob"));
|
||||||
|
const video = env.getEnv().createVideoElement();
|
||||||
|
video.oncanplay = () => resolve(video);
|
||||||
|
video.onerror = reject;
|
||||||
|
video.playsInline = true;
|
||||||
|
video.autoplay = true;
|
||||||
|
video.muted = true;
|
||||||
|
video.src = URL.createObjectURL(buf);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// src/dom/fetchVideo.ts
|
||||||
|
async function fetchVideo(uri) {
|
||||||
|
const res = await fetchOrThrow(uri);
|
||||||
|
const blob = await res.blob();
|
||||||
|
if (!blob.type.startsWith("video/")) {
|
||||||
|
throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);
|
||||||
|
}
|
||||||
|
return bufferToVideo(blob);
|
||||||
|
}
|
||||||
|
|
||||||
// src/dom/loadWeightMap.ts
|
// src/dom/loadWeightMap.ts
|
||||||
var tf7 = __toModule(require_tfjs_esm());
|
var tf7 = __toModule(require_tfjs_esm());
|
||||||
|
|
||||||
|
@ -2266,7 +2300,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
var version = "1.2.4";
|
var version = "1.2.5";
|
||||||
|
|
||||||
// src/ageGenderNet/AgeGenderNet.ts
|
// src/ageGenderNet/AgeGenderNet.ts
|
||||||
var tf20 = __toModule(require_tfjs_esm());
|
var tf20 = __toModule(require_tfjs_esm());
|
||||||
|
@ -4625,6 +4659,7 @@ var version2 = {faceapi: version, node, browser: browser3};
|
||||||
fetchJson,
|
fetchJson,
|
||||||
fetchNetWeights,
|
fetchNetWeights,
|
||||||
fetchOrThrow,
|
fetchOrThrow,
|
||||||
|
fetchVideo,
|
||||||
getContext2dOrThrow,
|
getContext2dOrThrow,
|
||||||
getMediaDimensions,
|
getMediaDimensions,
|
||||||
imageTensorToCanvas,
|
imageTensorToCanvas,
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -136,6 +136,7 @@ __export(exports, {
|
||||||
fetchJson: () => fetchJson,
|
fetchJson: () => fetchJson,
|
||||||
fetchNetWeights: () => fetchNetWeights,
|
fetchNetWeights: () => fetchNetWeights,
|
||||||
fetchOrThrow: () => fetchOrThrow,
|
fetchOrThrow: () => fetchOrThrow,
|
||||||
|
fetchVideo: () => fetchVideo,
|
||||||
getContext2dOrThrow: () => getContext2dOrThrow,
|
getContext2dOrThrow: () => getContext2dOrThrow,
|
||||||
getMediaDimensions: () => getMediaDimensions,
|
getMediaDimensions: () => getMediaDimensions,
|
||||||
imageTensorToCanvas: () => imageTensorToCanvas,
|
imageTensorToCanvas: () => imageTensorToCanvas,
|
||||||
|
@ -940,6 +941,7 @@ function createBrowserEnv() {
|
||||||
Video: HTMLVideoElement,
|
Video: HTMLVideoElement,
|
||||||
createCanvasElement: () => document.createElement("canvas"),
|
createCanvasElement: () => document.createElement("canvas"),
|
||||||
createImageElement: () => document.createElement("img"),
|
createImageElement: () => document.createElement("img"),
|
||||||
|
createVideoElement: () => document.createElement("video"),
|
||||||
fetch,
|
fetch,
|
||||||
readFile
|
readFile
|
||||||
};
|
};
|
||||||
|
@ -969,6 +971,7 @@ function createFileSystem(fs) {
|
||||||
function createNodejsEnv() {
|
function createNodejsEnv() {
|
||||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||||
const Image = global.Image || global.HTMLImageElement;
|
const Image = global.Image || global.HTMLImageElement;
|
||||||
|
const Video = global["Video"] || global.HTMLVideoElement;
|
||||||
const createCanvasElement = () => {
|
const createCanvasElement = () => {
|
||||||
if (Canvas)
|
if (Canvas)
|
||||||
return new Canvas();
|
return new Canvas();
|
||||||
|
@ -979,6 +982,11 @@ function createNodejsEnv() {
|
||||||
return new Image();
|
return new Image();
|
||||||
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
||||||
};
|
};
|
||||||
|
const createVideoElement = () => {
|
||||||
|
if (Video)
|
||||||
|
return new Video();
|
||||||
|
throw new Error("createVideoElement - missing Video implementation for nodejs environment");
|
||||||
|
};
|
||||||
const fetch = global.fetch;
|
const fetch = global.fetch;
|
||||||
const fileSystem = createFileSystem();
|
const fileSystem = createFileSystem();
|
||||||
return {
|
return {
|
||||||
|
@ -994,6 +1002,7 @@ function createNodejsEnv() {
|
||||||
},
|
},
|
||||||
createCanvasElement,
|
createCanvasElement,
|
||||||
createImageElement,
|
createImageElement,
|
||||||
|
createVideoElement,
|
||||||
fetch,
|
fetch,
|
||||||
...fileSystem
|
...fileSystem
|
||||||
};
|
};
|
||||||
|
@ -1541,6 +1550,31 @@ async function fetchNetWeights(uri) {
|
||||||
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// src/dom/bufferToVideo.ts
|
||||||
|
function bufferToVideo(buf) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (!(buf instanceof Blob))
|
||||||
|
reject(new Error("bufferToVideo - expected buf to be of type: Blob"));
|
||||||
|
const video = env.getEnv().createVideoElement();
|
||||||
|
video.oncanplay = () => resolve(video);
|
||||||
|
video.onerror = reject;
|
||||||
|
video.playsInline = true;
|
||||||
|
video.autoplay = true;
|
||||||
|
video.muted = true;
|
||||||
|
video.src = URL.createObjectURL(buf);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// src/dom/fetchVideo.ts
|
||||||
|
async function fetchVideo(uri) {
|
||||||
|
const res = await fetchOrThrow(uri);
|
||||||
|
const blob = await res.blob();
|
||||||
|
if (!blob.type.startsWith("video/")) {
|
||||||
|
throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);
|
||||||
|
}
|
||||||
|
return bufferToVideo(blob);
|
||||||
|
}
|
||||||
|
|
||||||
// src/dom/loadWeightMap.ts
|
// src/dom/loadWeightMap.ts
|
||||||
var tf7 = __toModule(require_tfjs_esm());
|
var tf7 = __toModule(require_tfjs_esm());
|
||||||
|
|
||||||
|
@ -2266,7 +2300,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
var version = "1.2.4";
|
var version = "1.2.5";
|
||||||
|
|
||||||
// src/ageGenderNet/AgeGenderNet.ts
|
// src/ageGenderNet/AgeGenderNet.ts
|
||||||
var tf20 = __toModule(require_tfjs_esm());
|
var tf20 = __toModule(require_tfjs_esm());
|
||||||
|
@ -4625,6 +4659,7 @@ var version2 = {faceapi: version, node, browser: browser3};
|
||||||
fetchJson,
|
fetchJson,
|
||||||
fetchNetWeights,
|
fetchNetWeights,
|
||||||
fetchOrThrow,
|
fetchOrThrow,
|
||||||
|
fetchVideo,
|
||||||
getContext2dOrThrow,
|
getContext2dOrThrow,
|
||||||
getMediaDimensions,
|
getMediaDimensions,
|
||||||
imageTensorToCanvas,
|
imageTensorToCanvas,
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -136,6 +136,7 @@ __export(exports, {
|
||||||
fetchJson: () => fetchJson,
|
fetchJson: () => fetchJson,
|
||||||
fetchNetWeights: () => fetchNetWeights,
|
fetchNetWeights: () => fetchNetWeights,
|
||||||
fetchOrThrow: () => fetchOrThrow,
|
fetchOrThrow: () => fetchOrThrow,
|
||||||
|
fetchVideo: () => fetchVideo,
|
||||||
getContext2dOrThrow: () => getContext2dOrThrow,
|
getContext2dOrThrow: () => getContext2dOrThrow,
|
||||||
getMediaDimensions: () => getMediaDimensions,
|
getMediaDimensions: () => getMediaDimensions,
|
||||||
imageTensorToCanvas: () => imageTensorToCanvas,
|
imageTensorToCanvas: () => imageTensorToCanvas,
|
||||||
|
@ -940,6 +941,7 @@ function createBrowserEnv() {
|
||||||
Video: HTMLVideoElement,
|
Video: HTMLVideoElement,
|
||||||
createCanvasElement: () => document.createElement("canvas"),
|
createCanvasElement: () => document.createElement("canvas"),
|
||||||
createImageElement: () => document.createElement("img"),
|
createImageElement: () => document.createElement("img"),
|
||||||
|
createVideoElement: () => document.createElement("video"),
|
||||||
fetch,
|
fetch,
|
||||||
readFile
|
readFile
|
||||||
};
|
};
|
||||||
|
@ -969,6 +971,7 @@ function createFileSystem(fs) {
|
||||||
function createNodejsEnv() {
|
function createNodejsEnv() {
|
||||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||||
const Image = global.Image || global.HTMLImageElement;
|
const Image = global.Image || global.HTMLImageElement;
|
||||||
|
const Video = global["Video"] || global.HTMLVideoElement;
|
||||||
const createCanvasElement = () => {
|
const createCanvasElement = () => {
|
||||||
if (Canvas)
|
if (Canvas)
|
||||||
return new Canvas();
|
return new Canvas();
|
||||||
|
@ -979,6 +982,11 @@ function createNodejsEnv() {
|
||||||
return new Image();
|
return new Image();
|
||||||
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
throw new Error("createImageElement - missing Image implementation for nodejs environment");
|
||||||
};
|
};
|
||||||
|
const createVideoElement = () => {
|
||||||
|
if (Video)
|
||||||
|
return new Video();
|
||||||
|
throw new Error("createVideoElement - missing Video implementation for nodejs environment");
|
||||||
|
};
|
||||||
const fetch = global.fetch;
|
const fetch = global.fetch;
|
||||||
const fileSystem = createFileSystem();
|
const fileSystem = createFileSystem();
|
||||||
return {
|
return {
|
||||||
|
@ -994,6 +1002,7 @@ function createNodejsEnv() {
|
||||||
},
|
},
|
||||||
createCanvasElement,
|
createCanvasElement,
|
||||||
createImageElement,
|
createImageElement,
|
||||||
|
createVideoElement,
|
||||||
fetch,
|
fetch,
|
||||||
...fileSystem
|
...fileSystem
|
||||||
};
|
};
|
||||||
|
@ -1541,6 +1550,31 @@ async function fetchNetWeights(uri) {
|
||||||
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// src/dom/bufferToVideo.ts
|
||||||
|
function bufferToVideo(buf) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (!(buf instanceof Blob))
|
||||||
|
reject(new Error("bufferToVideo - expected buf to be of type: Blob"));
|
||||||
|
const video = env.getEnv().createVideoElement();
|
||||||
|
video.oncanplay = () => resolve(video);
|
||||||
|
video.onerror = reject;
|
||||||
|
video.playsInline = true;
|
||||||
|
video.autoplay = true;
|
||||||
|
video.muted = true;
|
||||||
|
video.src = URL.createObjectURL(buf);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// src/dom/fetchVideo.ts
|
||||||
|
async function fetchVideo(uri) {
|
||||||
|
const res = await fetchOrThrow(uri);
|
||||||
|
const blob = await res.blob();
|
||||||
|
if (!blob.type.startsWith("video/")) {
|
||||||
|
throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);
|
||||||
|
}
|
||||||
|
return bufferToVideo(blob);
|
||||||
|
}
|
||||||
|
|
||||||
// src/dom/loadWeightMap.ts
|
// src/dom/loadWeightMap.ts
|
||||||
var tf7 = __toModule(require_tfjs_esm());
|
var tf7 = __toModule(require_tfjs_esm());
|
||||||
|
|
||||||
|
@ -2266,7 +2300,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
var version = "1.2.4";
|
var version = "1.2.5";
|
||||||
|
|
||||||
// src/ageGenderNet/AgeGenderNet.ts
|
// src/ageGenderNet/AgeGenderNet.ts
|
||||||
var tf20 = __toModule(require_tfjs_esm());
|
var tf20 = __toModule(require_tfjs_esm());
|
||||||
|
@ -4625,6 +4659,7 @@ var version2 = {faceapi: version, node, browser: browser3};
|
||||||
fetchJson,
|
fetchJson,
|
||||||
fetchNetWeights,
|
fetchNetWeights,
|
||||||
fetchOrThrow,
|
fetchOrThrow,
|
||||||
|
fetchVideo,
|
||||||
getContext2dOrThrow,
|
getContext2dOrThrow,
|
||||||
getMediaDimensions,
|
getMediaDimensions,
|
||||||
imageTensorToCanvas,
|
imageTensorToCanvas,
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -66,6 +66,6 @@
|
||||||
"simple-git": "^2.39.0",
|
"simple-git": "^2.39.0",
|
||||||
"tslib": "^2.2.0",
|
"tslib": "^2.2.0",
|
||||||
"typedoc": "^0.20.36",
|
"typedoc": "^0.20.36",
|
||||||
"typescript": "^4.3.2"
|
"typescript": "4.2.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ export function bufferToVideo(buf: Blob): Promise<HTMLVideoElement> {
|
||||||
const video = env.getEnv().createVideoElement();
|
const video = env.getEnv().createVideoElement();
|
||||||
video.oncanplay = () => resolve(video);
|
video.oncanplay = () => resolve(video);
|
||||||
video.onerror = reject;
|
video.onerror = reject;
|
||||||
video.type = buf.type;
|
// video.type = buf.type;
|
||||||
video.playsInline = true;
|
video.playsInline = true;
|
||||||
video.autoplay = true;
|
video.autoplay = true;
|
||||||
video.muted = true;
|
video.muted = true;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -204,6 +204,7 @@
|
||||||
<li class="tsd-kind-function tsd-has-type-parameter"><a href="index.html#fetchjson" class="tsd-kind-icon">fetch<wbr>Json</a></li>
|
<li class="tsd-kind-function tsd-has-type-parameter"><a href="index.html#fetchjson" class="tsd-kind-icon">fetch<wbr>Json</a></li>
|
||||||
<li class="tsd-kind-function"><a href="index.html#fetchnetweights" class="tsd-kind-icon">fetch<wbr>Net<wbr>Weights</a></li>
|
<li class="tsd-kind-function"><a href="index.html#fetchnetweights" class="tsd-kind-icon">fetch<wbr>Net<wbr>Weights</a></li>
|
||||||
<li class="tsd-kind-function"><a href="index.html#fetchorthrow" class="tsd-kind-icon">fetch<wbr>OrThrow</a></li>
|
<li class="tsd-kind-function"><a href="index.html#fetchorthrow" class="tsd-kind-icon">fetch<wbr>OrThrow</a></li>
|
||||||
|
<li class="tsd-kind-function"><a href="index.html#fetchvideo" class="tsd-kind-icon">fetch<wbr>Video</a></li>
|
||||||
<li class="tsd-kind-function"><a href="index.html#getcontext2dorthrow" class="tsd-kind-icon">get<wbr>Context2d<wbr>OrThrow</a></li>
|
<li class="tsd-kind-function"><a href="index.html#getcontext2dorthrow" class="tsd-kind-icon">get<wbr>Context2d<wbr>OrThrow</a></li>
|
||||||
<li class="tsd-kind-function"><a href="index.html#getmediadimensions" class="tsd-kind-icon">get<wbr>Media<wbr>Dimensions</a></li>
|
<li class="tsd-kind-function"><a href="index.html#getmediadimensions" class="tsd-kind-icon">get<wbr>Media<wbr>Dimensions</a></li>
|
||||||
<li class="tsd-kind-function"><a href="index.html#imagetensortocanvas" class="tsd-kind-icon">image<wbr>Tensor<wbr>ToCanvas</a></li>
|
<li class="tsd-kind-function"><a href="index.html#imagetensortocanvas" class="tsd-kind-icon">image<wbr>Tensor<wbr>ToCanvas</a></li>
|
||||||
|
@ -363,7 +364,7 @@
|
||||||
<section class="tsd-panel tsd-member tsd-kind-type-alias">
|
<section class="tsd-panel tsd-member tsd-kind-type-alias">
|
||||||
<a name="environment" class="tsd-anchor"></a>
|
<a name="environment" class="tsd-anchor"></a>
|
||||||
<h3>Environment</h3>
|
<h3>Environment</h3>
|
||||||
<div class="tsd-signature tsd-kind-icon">Environment<span class="tsd-signature-symbol">:</span> <a href="index.html#filesystem" class="tsd-signature-type" data-tsd-kind="Type alias">FileSystem</a><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-symbol">{ </span>Canvas<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">HTMLCanvasElement</span><span class="tsd-signature-symbol">; </span>CanvasRenderingContext2D<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">CanvasRenderingContext2D</span><span class="tsd-signature-symbol">; </span>Image<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">HTMLImageElement</span><span class="tsd-signature-symbol">; </span>ImageData<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">ImageData</span><span class="tsd-signature-symbol">; </span>Video<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">HTMLVideoElement</span><span class="tsd-signature-symbol">; </span>createCanvasElement<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">HTMLCanvasElement</span><span class="tsd-signature-symbol">; </span>createImageElement<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">HTMLImageElement</span><span class="tsd-signature-symbol">; </span>fetch<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>url<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, init<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">RequestInit</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Response</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> }</span></div>
|
<div class="tsd-signature tsd-kind-icon">Environment<span class="tsd-signature-symbol">:</span> <a href="index.html#filesystem" class="tsd-signature-type" data-tsd-kind="Type alias">FileSystem</a><span class="tsd-signature-symbol"> & </span><span class="tsd-signature-symbol">{ </span>Canvas<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">HTMLCanvasElement</span><span class="tsd-signature-symbol">; </span>CanvasRenderingContext2D<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">CanvasRenderingContext2D</span><span class="tsd-signature-symbol">; </span>Image<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">HTMLImageElement</span><span class="tsd-signature-symbol">; </span>ImageData<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">ImageData</span><span class="tsd-signature-symbol">; </span>Video<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">HTMLVideoElement</span><span class="tsd-signature-symbol">; </span>createCanvasElement<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">HTMLCanvasElement</span><span class="tsd-signature-symbol">; </span>createImageElement<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">HTMLImageElement</span><span class="tsd-signature-symbol">; </span>createVideoElement<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">HTMLVideoElement</span><span class="tsd-signature-symbol">; </span>fetch<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>url<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, init<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">RequestInit</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Response</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> }</span></div>
|
||||||
<aside class="tsd-sources">
|
<aside class="tsd-sources">
|
||||||
<ul>
|
<ul>
|
||||||
<li>Defined in <a href="https://github.com/vladmandic/face-api/blob/main/src/env/types.ts#L6">env/types.ts:6</a></li>
|
<li>Defined in <a href="https://github.com/vladmandic/face-api/blob/main/src/env/types.ts#L6">env/types.ts:6</a></li>
|
||||||
|
@ -1833,6 +1834,29 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
<section class="tsd-panel tsd-member tsd-kind-function">
|
||||||
|
<a name="fetchvideo" class="tsd-anchor"></a>
|
||||||
|
<h3>fetch<wbr>Video</h3>
|
||||||
|
<ul class="tsd-signatures tsd-kind-function">
|
||||||
|
<li class="tsd-signature tsd-kind-icon">fetch<wbr>Video<span class="tsd-signature-symbol">(</span>uri<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">HTMLVideoElement</span><span class="tsd-signature-symbol">></span></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="tsd-descriptions">
|
||||||
|
<li class="tsd-description">
|
||||||
|
<aside class="tsd-sources">
|
||||||
|
<ul>
|
||||||
|
<li>Defined in <a href="https://github.com/vladmandic/face-api/blob/main/src/dom/fetchVideo.ts#L4">dom/fetchVideo.ts:4</a></li>
|
||||||
|
</ul>
|
||||||
|
</aside>
|
||||||
|
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||||
|
<ul class="tsd-parameters">
|
||||||
|
<li>
|
||||||
|
<h5>uri: <span class="tsd-signature-type">string</span></h5>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">HTMLVideoElement</span><span class="tsd-signature-symbol">></span></h4>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
<section class="tsd-panel tsd-member tsd-kind-function">
|
<section class="tsd-panel tsd-member tsd-kind-function">
|
||||||
<a name="getcontext2dorthrow" class="tsd-anchor"></a>
|
<a name="getcontext2dorthrow" class="tsd-anchor"></a>
|
||||||
<h3>get<wbr>Context2d<wbr>OrThrow</h3>
|
<h3>get<wbr>Context2d<wbr>OrThrow</h3>
|
||||||
|
@ -3244,6 +3268,9 @@
|
||||||
<li class=" tsd-kind-function">
|
<li class=" tsd-kind-function">
|
||||||
<a href="index.html#fetchorthrow" class="tsd-kind-icon">fetch<wbr>OrThrow</a>
|
<a href="index.html#fetchorthrow" class="tsd-kind-icon">fetch<wbr>OrThrow</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class=" tsd-kind-function">
|
||||||
|
<a href="index.html#fetchvideo" class="tsd-kind-icon">fetch<wbr>Video</a>
|
||||||
|
</li>
|
||||||
<li class=" tsd-kind-function">
|
<li class=" tsd-kind-function">
|
||||||
<a href="index.html#getcontext2dorthrow" class="tsd-kind-icon">get<wbr>Context2d<wbr>OrThrow</a>
|
<a href="index.html#getcontext2dorthrow" class="tsd-kind-icon">get<wbr>Context2d<wbr>OrThrow</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export declare function bufferToVideo(buf: Blob): Promise<HTMLVideoElement>;
|
|
@ -0,0 +1 @@
|
||||||
|
export declare function fetchVideo(uri: string): Promise<HTMLVideoElement>;
|
|
@ -7,6 +7,7 @@ export * from './fetchImage';
|
||||||
export * from './fetchJson';
|
export * from './fetchJson';
|
||||||
export * from './fetchNetWeights';
|
export * from './fetchNetWeights';
|
||||||
export * from './fetchOrThrow';
|
export * from './fetchOrThrow';
|
||||||
|
export * from './fetchVideo';
|
||||||
export * from './getContext2dOrThrow';
|
export * from './getContext2dOrThrow';
|
||||||
export * from './getMediaDimensions';
|
export * from './getMediaDimensions';
|
||||||
export * from './imageTensorToCanvas';
|
export * from './imageTensorToCanvas';
|
||||||
|
|
|
@ -10,5 +10,6 @@ export declare type Environment = FileSystem & {
|
||||||
Video: typeof HTMLVideoElement;
|
Video: typeof HTMLVideoElement;
|
||||||
createCanvasElement: () => HTMLCanvasElement;
|
createCanvasElement: () => HTMLCanvasElement;
|
||||||
createImageElement: () => HTMLImageElement;
|
createImageElement: () => HTMLImageElement;
|
||||||
|
createVideoElement: () => HTMLVideoElement;
|
||||||
fetch: (url: string, init?: RequestInit) => Promise<Response>;
|
fetch: (url: string, init?: RequestInit) => Promise<Response>;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue