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
|
||||
|
||||
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**
|
||||
|
||||
Author: **Vladimir Mandic <mandic00@live.com>**
|
||||
|
@ -9,12 +9,15 @@ Repository: **<git+https://github.com/vladmandic/face-api.git>**
|
|||
|
||||
## 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
|
||||
|
||||
|
||||
### **origin/master** 2021/05/04 mandic00@live.com
|
||||
|
||||
|
||||
### **1.2.3** 2021/05/04 mandic00@live.com
|
||||
|
||||
|
||||
|
|
|
@ -788,6 +788,7 @@ function createBrowserEnv() {
|
|||
Video: HTMLVideoElement,
|
||||
createCanvasElement: () => document.createElement("canvas"),
|
||||
createImageElement: () => document.createElement("img"),
|
||||
createVideoElement: () => document.createElement("video"),
|
||||
fetch,
|
||||
readFile
|
||||
};
|
||||
|
@ -817,6 +818,7 @@ function createFileSystem(fs) {
|
|||
function createNodejsEnv() {
|
||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||
const Image = global.Image || global.HTMLImageElement;
|
||||
const Video = global["Video"] || global.HTMLVideoElement;
|
||||
const createCanvasElement = () => {
|
||||
if (Canvas)
|
||||
return new Canvas();
|
||||
|
@ -827,6 +829,11 @@ function createNodejsEnv() {
|
|||
return new Image();
|
||||
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 fileSystem = createFileSystem();
|
||||
return {
|
||||
|
@ -842,6 +849,7 @@ function createNodejsEnv() {
|
|||
},
|
||||
createCanvasElement,
|
||||
createImageElement,
|
||||
createVideoElement,
|
||||
fetch,
|
||||
...fileSystem
|
||||
};
|
||||
|
@ -1381,6 +1389,31 @@ async function fetchNetWeights(uri) {
|
|||
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
|
||||
function getModelUris(uri, defaultModelName) {
|
||||
const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;
|
||||
|
@ -2085,7 +2118,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
|||
}
|
||||
|
||||
// package.json
|
||||
var version = "1.2.4";
|
||||
var version = "1.2.5";
|
||||
|
||||
// src/xception/extractParams.ts
|
||||
function extractorsFactory2(extractWeights, paramMappings) {
|
||||
|
@ -4398,6 +4431,7 @@ export {
|
|||
fetchJson,
|
||||
fetchNetWeights,
|
||||
fetchOrThrow,
|
||||
fetchVideo,
|
||||
getContext2dOrThrow,
|
||||
getMediaDimensions,
|
||||
imageTensorToCanvas,
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -58067,6 +58067,7 @@ function createBrowserEnv() {
|
|||
Video: HTMLVideoElement,
|
||||
createCanvasElement: () => document.createElement("canvas"),
|
||||
createImageElement: () => document.createElement("img"),
|
||||
createVideoElement: () => document.createElement("video"),
|
||||
fetch: fetch3,
|
||||
readFile
|
||||
};
|
||||
|
@ -58096,6 +58097,7 @@ function createFileSystem(fs) {
|
|||
function createNodejsEnv() {
|
||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||
const Image = global.Image || global.HTMLImageElement;
|
||||
const Video = global["Video"] || global.HTMLVideoElement;
|
||||
const createCanvasElement = () => {
|
||||
if (Canvas)
|
||||
return new Canvas();
|
||||
|
@ -58106,6 +58108,11 @@ function createNodejsEnv() {
|
|||
return new Image();
|
||||
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 fileSystem = createFileSystem();
|
||||
return {
|
||||
|
@ -58121,6 +58128,7 @@ function createNodejsEnv() {
|
|||
},
|
||||
createCanvasElement,
|
||||
createImageElement,
|
||||
createVideoElement,
|
||||
fetch: fetch3,
|
||||
...fileSystem
|
||||
};
|
||||
|
@ -58660,6 +58668,31 @@ async function fetchNetWeights(uri) {
|
|||
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
|
||||
function getModelUris(uri, defaultModelName) {
|
||||
const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;
|
||||
|
@ -59364,7 +59397,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
|||
}
|
||||
|
||||
// package.json
|
||||
var version10 = "1.2.4";
|
||||
var version10 = "1.2.5";
|
||||
|
||||
// src/xception/extractParams.ts
|
||||
function extractorsFactory2(extractWeights, paramMappings) {
|
||||
|
@ -61677,6 +61710,7 @@ export {
|
|||
fetchJson,
|
||||
fetchNetWeights,
|
||||
fetchOrThrow,
|
||||
fetchVideo,
|
||||
getContext2dOrThrow,
|
||||
getMediaDimensions,
|
||||
imageTensorToCanvas,
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -96,6 +96,7 @@ var faceapi = (() => {
|
|||
fetchJson: () => fetchJson,
|
||||
fetchNetWeights: () => fetchNetWeights,
|
||||
fetchOrThrow: () => fetchOrThrow,
|
||||
fetchVideo: () => fetchVideo,
|
||||
getContext2dOrThrow: () => getContext2dOrThrow,
|
||||
getMediaDimensions: () => getMediaDimensions,
|
||||
imageTensorToCanvas: () => imageTensorToCanvas,
|
||||
|
@ -58193,6 +58194,7 @@ return a / b;`;
|
|||
Video: HTMLVideoElement,
|
||||
createCanvasElement: () => document.createElement("canvas"),
|
||||
createImageElement: () => document.createElement("img"),
|
||||
createVideoElement: () => document.createElement("video"),
|
||||
fetch: fetch3,
|
||||
readFile
|
||||
};
|
||||
|
@ -58222,6 +58224,7 @@ return a / b;`;
|
|||
function createNodejsEnv() {
|
||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||
const Image = global.Image || global.HTMLImageElement;
|
||||
const Video = global["Video"] || global.HTMLVideoElement;
|
||||
const createCanvasElement = () => {
|
||||
if (Canvas)
|
||||
return new Canvas();
|
||||
|
@ -58232,6 +58235,11 @@ return a / b;`;
|
|||
return new Image();
|
||||
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 fileSystem = createFileSystem();
|
||||
return {
|
||||
|
@ -58247,6 +58255,7 @@ return a / b;`;
|
|||
},
|
||||
createCanvasElement,
|
||||
createImageElement,
|
||||
createVideoElement,
|
||||
fetch: fetch3,
|
||||
...fileSystem
|
||||
};
|
||||
|
@ -58786,6 +58795,31 @@ return a / b;`;
|
|||
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
|
||||
function getModelUris(uri, defaultModelName) {
|
||||
const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;
|
||||
|
@ -59490,7 +59524,7 @@ return a / b;`;
|
|||
}
|
||||
|
||||
// package.json
|
||||
var version10 = "1.2.4";
|
||||
var version10 = "1.2.5";
|
||||
|
||||
// src/xception/extractParams.ts
|
||||
function extractorsFactory2(extractWeights, paramMappings) {
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -136,6 +136,7 @@ __export(exports, {
|
|||
fetchJson: () => fetchJson,
|
||||
fetchNetWeights: () => fetchNetWeights,
|
||||
fetchOrThrow: () => fetchOrThrow,
|
||||
fetchVideo: () => fetchVideo,
|
||||
getContext2dOrThrow: () => getContext2dOrThrow,
|
||||
getMediaDimensions: () => getMediaDimensions,
|
||||
imageTensorToCanvas: () => imageTensorToCanvas,
|
||||
|
@ -940,6 +941,7 @@ function createBrowserEnv() {
|
|||
Video: HTMLVideoElement,
|
||||
createCanvasElement: () => document.createElement("canvas"),
|
||||
createImageElement: () => document.createElement("img"),
|
||||
createVideoElement: () => document.createElement("video"),
|
||||
fetch,
|
||||
readFile
|
||||
};
|
||||
|
@ -969,6 +971,7 @@ function createFileSystem(fs) {
|
|||
function createNodejsEnv() {
|
||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||
const Image = global.Image || global.HTMLImageElement;
|
||||
const Video = global["Video"] || global.HTMLVideoElement;
|
||||
const createCanvasElement = () => {
|
||||
if (Canvas)
|
||||
return new Canvas();
|
||||
|
@ -979,6 +982,11 @@ function createNodejsEnv() {
|
|||
return new Image();
|
||||
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 fileSystem = createFileSystem();
|
||||
return {
|
||||
|
@ -994,6 +1002,7 @@ function createNodejsEnv() {
|
|||
},
|
||||
createCanvasElement,
|
||||
createImageElement,
|
||||
createVideoElement,
|
||||
fetch,
|
||||
...fileSystem
|
||||
};
|
||||
|
@ -1541,6 +1550,31 @@ async function fetchNetWeights(uri) {
|
|||
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
|
||||
var tf7 = __toModule(require_tfjs_esm());
|
||||
|
||||
|
@ -2266,7 +2300,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
|||
}
|
||||
|
||||
// package.json
|
||||
var version = "1.2.4";
|
||||
var version = "1.2.5";
|
||||
|
||||
// src/ageGenderNet/AgeGenderNet.ts
|
||||
var tf20 = __toModule(require_tfjs_esm());
|
||||
|
@ -4625,6 +4659,7 @@ var version2 = {faceapi: version, node, browser: browser3};
|
|||
fetchJson,
|
||||
fetchNetWeights,
|
||||
fetchOrThrow,
|
||||
fetchVideo,
|
||||
getContext2dOrThrow,
|
||||
getMediaDimensions,
|
||||
imageTensorToCanvas,
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -136,6 +136,7 @@ __export(exports, {
|
|||
fetchJson: () => fetchJson,
|
||||
fetchNetWeights: () => fetchNetWeights,
|
||||
fetchOrThrow: () => fetchOrThrow,
|
||||
fetchVideo: () => fetchVideo,
|
||||
getContext2dOrThrow: () => getContext2dOrThrow,
|
||||
getMediaDimensions: () => getMediaDimensions,
|
||||
imageTensorToCanvas: () => imageTensorToCanvas,
|
||||
|
@ -940,6 +941,7 @@ function createBrowserEnv() {
|
|||
Video: HTMLVideoElement,
|
||||
createCanvasElement: () => document.createElement("canvas"),
|
||||
createImageElement: () => document.createElement("img"),
|
||||
createVideoElement: () => document.createElement("video"),
|
||||
fetch,
|
||||
readFile
|
||||
};
|
||||
|
@ -969,6 +971,7 @@ function createFileSystem(fs) {
|
|||
function createNodejsEnv() {
|
||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||
const Image = global.Image || global.HTMLImageElement;
|
||||
const Video = global["Video"] || global.HTMLVideoElement;
|
||||
const createCanvasElement = () => {
|
||||
if (Canvas)
|
||||
return new Canvas();
|
||||
|
@ -979,6 +982,11 @@ function createNodejsEnv() {
|
|||
return new Image();
|
||||
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 fileSystem = createFileSystem();
|
||||
return {
|
||||
|
@ -994,6 +1002,7 @@ function createNodejsEnv() {
|
|||
},
|
||||
createCanvasElement,
|
||||
createImageElement,
|
||||
createVideoElement,
|
||||
fetch,
|
||||
...fileSystem
|
||||
};
|
||||
|
@ -1541,6 +1550,31 @@ async function fetchNetWeights(uri) {
|
|||
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
|
||||
var tf7 = __toModule(require_tfjs_esm());
|
||||
|
||||
|
@ -2266,7 +2300,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
|||
}
|
||||
|
||||
// package.json
|
||||
var version = "1.2.4";
|
||||
var version = "1.2.5";
|
||||
|
||||
// src/ageGenderNet/AgeGenderNet.ts
|
||||
var tf20 = __toModule(require_tfjs_esm());
|
||||
|
@ -4625,6 +4659,7 @@ var version2 = {faceapi: version, node, browser: browser3};
|
|||
fetchJson,
|
||||
fetchNetWeights,
|
||||
fetchOrThrow,
|
||||
fetchVideo,
|
||||
getContext2dOrThrow,
|
||||
getMediaDimensions,
|
||||
imageTensorToCanvas,
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -136,6 +136,7 @@ __export(exports, {
|
|||
fetchJson: () => fetchJson,
|
||||
fetchNetWeights: () => fetchNetWeights,
|
||||
fetchOrThrow: () => fetchOrThrow,
|
||||
fetchVideo: () => fetchVideo,
|
||||
getContext2dOrThrow: () => getContext2dOrThrow,
|
||||
getMediaDimensions: () => getMediaDimensions,
|
||||
imageTensorToCanvas: () => imageTensorToCanvas,
|
||||
|
@ -940,6 +941,7 @@ function createBrowserEnv() {
|
|||
Video: HTMLVideoElement,
|
||||
createCanvasElement: () => document.createElement("canvas"),
|
||||
createImageElement: () => document.createElement("img"),
|
||||
createVideoElement: () => document.createElement("video"),
|
||||
fetch,
|
||||
readFile
|
||||
};
|
||||
|
@ -969,6 +971,7 @@ function createFileSystem(fs) {
|
|||
function createNodejsEnv() {
|
||||
const Canvas = global["Canvas"] || global.HTMLCanvasElement;
|
||||
const Image = global.Image || global.HTMLImageElement;
|
||||
const Video = global["Video"] || global.HTMLVideoElement;
|
||||
const createCanvasElement = () => {
|
||||
if (Canvas)
|
||||
return new Canvas();
|
||||
|
@ -979,6 +982,11 @@ function createNodejsEnv() {
|
|||
return new Image();
|
||||
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 fileSystem = createFileSystem();
|
||||
return {
|
||||
|
@ -994,6 +1002,7 @@ function createNodejsEnv() {
|
|||
},
|
||||
createCanvasElement,
|
||||
createImageElement,
|
||||
createVideoElement,
|
||||
fetch,
|
||||
...fileSystem
|
||||
};
|
||||
|
@ -1541,6 +1550,31 @@ async function fetchNetWeights(uri) {
|
|||
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
|
||||
var tf7 = __toModule(require_tfjs_esm());
|
||||
|
||||
|
@ -2266,7 +2300,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
|
|||
}
|
||||
|
||||
// package.json
|
||||
var version = "1.2.4";
|
||||
var version = "1.2.5";
|
||||
|
||||
// src/ageGenderNet/AgeGenderNet.ts
|
||||
var tf20 = __toModule(require_tfjs_esm());
|
||||
|
@ -4625,6 +4659,7 @@ var version2 = {faceapi: version, node, browser: browser3};
|
|||
fetchJson,
|
||||
fetchNetWeights,
|
||||
fetchOrThrow,
|
||||
fetchVideo,
|
||||
getContext2dOrThrow,
|
||||
getMediaDimensions,
|
||||
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",
|
||||
"tslib": "^2.2.0",
|
||||
"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();
|
||||
video.oncanplay = () => resolve(video);
|
||||
video.onerror = reject;
|
||||
video.type = buf.type;
|
||||
// video.type = buf.type;
|
||||
video.playsInline = true;
|
||||
video.autoplay = 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"><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#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#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>
|
||||
|
@ -363,7 +364,7 @@
|
|||
<section class="tsd-panel tsd-member tsd-kind-type-alias">
|
||||
<a name="environment" class="tsd-anchor"></a>
|
||||
<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">
|
||||
<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>
|
||||
|
@ -1833,6 +1834,29 @@
|
|||
</li>
|
||||
</ul>
|
||||
</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">
|
||||
<a name="getcontext2dorthrow" class="tsd-anchor"></a>
|
||||
<h3>get<wbr>Context2d<wbr>OrThrow</h3>
|
||||
|
@ -3244,6 +3268,9 @@
|
|||
<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>
|
||||
|
|
|
@ -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 './fetchNetWeights';
|
||||
export * from './fetchOrThrow';
|
||||
export * from './fetchVideo';
|
||||
export * from './getContext2dOrThrow';
|
||||
export * from './getMediaDimensions';
|
||||
export * from './imageTensorToCanvas';
|
||||
|
|
|
@ -10,5 +10,6 @@ export declare type Environment = FileSystem & {
|
|||
Video: typeof HTMLVideoElement;
|
||||
createCanvasElement: () => HTMLCanvasElement;
|
||||
createImageElement: () => HTMLImageElement;
|
||||
createVideoElement: () => HTMLVideoElement;
|
||||
fetch: (url: string, init?: RequestInit) => Promise<Response>;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue