add camera startup diag messages

pull/134/head
Vladimir Mandic 2021-05-26 07:57:51 -04:00
parent f357901e36
commit c1304c2688
4 changed files with 42 additions and 21 deletions

View File

@ -9,8 +9,9 @@ Repository: **<git+https://github.com/vladmandic/human.git>**
## Changelog ## Changelog
### **HEAD -> main** 2021/05/24 mandic00@live.com ### **HEAD -> main** 2021/05/25 mandic00@live.com
- implemented unified result.persons that combines face, body and hands for each person
- added experimental results interpolation for smooth draw operations - added experimental results interpolation for smooth draw operations
### **1.9.3** 2021/05/23 mandic00@live.com ### **1.9.3** 2021/05/23 mandic00@live.com

View File

@ -304,10 +304,19 @@ async function setupCamera() {
ui.busy = false; ui.busy = false;
return msg; return msg;
} }
// enumerate devices for diag purposes
const devices = await navigator.mediaDevices.enumerateDevices();
log('enumerated devices:');
for (const device of devices) log(` kind:${device.kind} label:${device.label} id:${device.deviceId}`);
let stream; let stream;
const constraints = { const constraints = {
audio: false, audio: false,
video: { facingMode: ui.facing ? 'user' : 'environment', resizeMode: ui.crop ? 'crop-and-scale' : 'none' }, video: {
facingMode: ui.facing ? 'user' : 'environment',
resizeMode: ui.crop ? 'crop-and-scale' : 'none',
// deviceId: 'xxxx' // if you have multiple webcams, specify one to use explicitly
},
}; };
if (window.innerWidth > window.innerHeight) constraints.video.width = { ideal: window.innerWidth }; if (window.innerWidth > window.innerHeight) constraints.video.width = { ideal: window.innerWidth };
else constraints.video.height = { ideal: (window.innerHeight - document.getElementById('menubar').offsetHeight) }; else constraints.video.height = { ideal: (window.innerHeight - document.getElementById('menubar').offsetHeight) };
@ -328,8 +337,19 @@ async function setupCamera() {
ui.busy = false; ui.busy = false;
return 'camera stream empty'; return 'camera stream empty';
} }
const tracks = stream.getVideoTracks();
if (tracks && tracks.length >= 1) {
if (tracks.length >= 1) {
log('enumerated viable tracks:', tracks.length);
for (const t of tracks) log(` ${t.kind}: ${t.label}`);
}
} else {
ui.busy = false;
return 'no camera track';
}
const track = stream.getVideoTracks()[0]; const track = stream.getVideoTracks()[0];
const settings = track.getSettings(); const settings = track.getSettings();
log('selected camera:', track.label, 'id:', settings.deviceId);
// log('camera constraints:', constraints, 'window:', { width: window.innerWidth, height: window.innerHeight }, 'settings:', settings, 'track:', track); // log('camera constraints:', constraints, 'window:', { width: window.innerWidth, height: window.innerHeight }, 'settings:', settings, 'track:', track);
ui.camera = { name: track.label.toLowerCase(), width: settings.width, height: settings.height, facing: settings.facingMode === 'user' ? 'front' : 'back' }; ui.camera = { name: track.label.toLowerCase(), width: settings.width, height: settings.height, facing: settings.facingMode === 'user' ? 'front' : 'back' };
return new Promise((resolve) => { return new Promise((resolve) => {

View File

@ -67,8 +67,8 @@
"@vladmandic/pilogger": "^0.2.17", "@vladmandic/pilogger": "^0.2.17",
"canvas": "^2.8.0", "canvas": "^2.8.0",
"chokidar": "^3.5.1", "chokidar": "^3.5.1",
"dayjs": "^1.10.4", "dayjs": "^1.10.5",
"esbuild": "^0.12.2", "esbuild": "^0.12.3",
"eslint": "^7.27.0", "eslint": "^7.27.0",
"eslint-config-airbnb-base": "^14.2.1", "eslint-config-airbnb-base": "^14.2.1",
"eslint-plugin-import": "^2.23.3", "eslint-plugin-import": "^2.23.3",

View File

@ -1,17 +1,17 @@
2021-05-25 08:45:35 INFO:  @vladmandic/human version 1.9.3 2021-05-26 07:57:03 INFO:  @vladmandic/human version 1.9.3
2021-05-25 08:45:35 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.0.0 2021-05-26 07:57:03 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.0.0
2021-05-25 08:45:35 INFO:  Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true} 2021-05-26 07:57:03 INFO:  Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
2021-05-25 08:45:35 STATE: Build for: node type: tfjs: {"imports":1,"importBytes":102,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"} 2021-05-26 07:57:03 STATE: Build for: node type: tfjs: {"imports":1,"importBytes":102,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"}
2021-05-25 08:45:35 STATE: Build for: node type: node: {"imports":37,"importBytes":431051,"outputBytes":385549,"outputFiles":"dist/human.node.js"} 2021-05-26 07:57:03 STATE: Build for: node type: node: {"imports":37,"importBytes":431051,"outputBytes":385549,"outputFiles":"dist/human.node.js"}
2021-05-25 08:45:35 STATE: Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":110,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"} 2021-05-26 07:57:03 STATE: Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":110,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"}
2021-05-25 08:45:35 STATE: Build for: nodeGPU type: node: {"imports":37,"importBytes":431059,"outputBytes":385553,"outputFiles":"dist/human.node-gpu.js"} 2021-05-26 07:57:03 STATE: Build for: nodeGPU type: node: {"imports":37,"importBytes":431059,"outputBytes":385553,"outputFiles":"dist/human.node-gpu.js"}
2021-05-25 08:45:35 STATE: Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":149,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"} 2021-05-26 07:57:03 STATE: Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":149,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"}
2021-05-25 08:45:35 STATE: Build for: nodeWASM type: node: {"imports":37,"importBytes":431126,"outputBytes":385625,"outputFiles":"dist/human.node-wasm.js"} 2021-05-26 07:57:03 STATE: Build for: nodeWASM type: node: {"imports":37,"importBytes":431126,"outputBytes":385625,"outputFiles":"dist/human.node-wasm.js"}
2021-05-25 08:45:35 STATE: Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2478,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"} 2021-05-26 07:57:03 STATE: Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2478,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
2021-05-25 08:45:35 STATE: Build for: browserNoBundle type: esm: {"imports":37,"importBytes":431153,"outputBytes":236268,"outputFiles":"dist/human.esm-nobundle.js"} 2021-05-26 07:57:03 STATE: Build for: browserNoBundle type: esm: {"imports":37,"importBytes":431153,"outputBytes":236268,"outputFiles":"dist/human.esm-nobundle.js"}
2021-05-25 08:45:36 STATE: Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2478,"outputBytes":1111414,"outputFiles":"dist/tfjs.esm.js"} 2021-05-26 07:57:04 STATE: Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2478,"outputBytes":1111414,"outputFiles":"dist/tfjs.esm.js"}
2021-05-25 08:45:36 STATE: Build for: browserBundle type: iife: {"imports":37,"importBytes":1541173,"outputBytes":1344154,"outputFiles":"dist/human.js"} 2021-05-26 07:57:04 STATE: Build for: browserBundle type: iife: {"imports":37,"importBytes":1541173,"outputBytes":1344154,"outputFiles":"dist/human.js"}
2021-05-25 08:45:36 STATE: Build for: browserBundle type: esm: {"imports":37,"importBytes":1541173,"outputBytes":1344146,"outputFiles":"dist/human.esm.js"} 2021-05-26 07:57:05 STATE: Build for: browserBundle type: esm: {"imports":37,"importBytes":1541173,"outputBytes":1344146,"outputFiles":"dist/human.esm.js"}
2021-05-25 08:45:36 INFO:  Generate types: ["src/human.ts"] 2021-05-26 07:57:05 INFO:  Generate types: ["src/human.ts"]
2021-05-25 08:45:41 INFO:  Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"] 2021-05-26 07:57:10 INFO:  Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
2021-05-25 08:45:41 INFO:  Generate TypeDocs: ["src/human.ts"] 2021-05-26 07:57:10 INFO:  Generate TypeDocs: ["src/human.ts"]