openvibers/openvibe.cam Commits
Motion: Calm reduces, only Off stops (#135)
Changes
@@@ -260,5 +260,5 @@ AGPL-3.0-only. See [LICENSE](LICENSE).<!-- versions:start -->- openvibe-contracts: v0.384.0- openvibe-sdk: v0.133.0--- openvibe-shared: v4.179.0++- openvibe-shared: v4.183.0<!-- versions:end -->@@@ -10,11 +10,11 @@"domain": "openvibe.cam","contracts": "openvibe-contracts v0.384.0","sdk": "openvibe-sdk v0.133.0",-- "shared": "openvibe-shared v4.179.0",++ "shared": "openvibe-shared v4.183.0","packages": ["openvibe-contracts v0.384.0","openvibe-sdk v0.133.0",-- "openvibe-shared v4.179.0"++ "openvibe-shared v4.183.0"],"summary": "OpenVibe.Cam is the camera app, the private wall for cameras a person owns, the API Live's cam button calls, and F1's event timeline. The camera preview, timer, burst, grid and filter run in the browser; a photo is posted to Cam and forwarded to OpenVibe.Pics with the person's own Network token. A camera is private: its owner sees it, and a viewer sees it only while a grant naming them is unrevoked and unexpired, checked on every read, so a revocation is refused at once. Familiar faces proxy the owner's own token to OpenVibe.Vision's library; Cam keeps only the Vision library id and no template or crop. A detection becomes one event with a 10 s/20 s clip reference, a still, away-mode priority, a Network notification, a private link and a police export.","works": [@@@ -17,7 +17,7 @@"iovalkey": "^0.4.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.179.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0","pg": "^8.23.0"},"devDependencies": {@@@ -1194,9 +1194,9 @@}},"node_modules/openvibe-shared": {-- "version": "4.179.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.179.0",-- "integrity": "sha512-Fjffjq3gLINhiXTqQJwsKQT/QbV4TYvsmz6GTp5hBJ8xA6KUQgu0wDgCQ3BRxCZ0ehmn0HGVAHUI+5m0LtPQCQ==",++ "version": "4.183.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",++ "integrity": "sha512-vp9gg++Dhyj3h0cwvBjujM6dSFYoeXdh1UXdZ6OXP/NjG672Fs7uRANV4MjT467JtFDN7r7qLI3OJAwGQxOuQw==","license": "MIT","dependencies": {"jsonwebtoken": "^9.0.0",@@@ -25,7 +25,7 @@"iovalkey": "^0.4.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.179.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0","pg": "^8.23.0"},"engines": {@@@ -146,9 +146,6 @@ html, body { margin: 0; background: var(--bg-primary, #0a0f1c); color: var(--tex.cm-f-strip li.is-on { color: var(--ovk-text); font-weight: 700; }.cm-f-strip li.is-on img { outline-color: var(--room-accent, var(--ovk-accent)); }--@media (prefers-reduced-motion: reduce) {-- .cm-live-btn, .cm-live-flash, .cm-live-chat, .cm-g-bar i, .cm-f-saved { animation: none; }--}/* The room's motif: the camera's viewfinder on the sample picture. The focus square locks once and the shutter waits;nothing loops. */@@@ -176,7 +173,6 @@ html, body { margin: 0; background: var(--bg-primary, #0a0f1c); color: var(--tex.cm-vf { width: min(100%, 280px); border-radius: 18px; }.cm-vf-shutter { width: 44px; height: 44px; margin-left: -22px; bottom: 14px; }}--@media (prefers-reduced-motion: reduce) { .cm-vf-focus { animation: none; } }/* A code sample scrolls inside its own box; a long line never widens the page on a phone (11-01 phone sweep). */.cm-code { max-width: 100%; overflow-x: auto; padding: 12px 14px; border: 1px solid var(--border, #26344d); border-radius: 12px; background: var(--bg-card, #0f1729); font-size: .84rem; line-height: 1.5; }@@@ -328,7 +324,6 @@ html, body { margin: 0; background: var(--bg-primary, #0a0f1c); color: var(--tex.cm-shutter span { width: 66px; height: 66px; }.cm-under { grid-column: 1; grid-row: 2; grid-template-columns: minmax(0, 520px) auto; justify-content: center; align-items: center; gap: 16px; }}--@media (prefers-reduced-motion: reduce) { .cm-flash.is-on, .cm-count.is-tick, .cm-thumb.is-new { animation: none; } .cm-stage video, .cm-mode-say, .cm-mode { transition: none; } }/* The /developers embed: the attributes, events and methods tables read as text, not as nowrap cells, and the live@@@ -208,8 +208,7 @@'.camera[data-mode="burst"] .shutter span{background:var(--_accent)}','.shutter[disabled]{opacity:.45;cursor:not-allowed}','.status{margin:0;min-height:1.4em;text-align:center;font-size:13px;font-variant-numeric:tabular-nums;color:var(--_muted)}',-- '.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}',-- '@media (prefers-reduced-motion:reduce){.count.is-tick{animation:none}.stage video{transition:none}}'++ '.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}'].join('');var TEMPLATE = '<div class="wrap camera" part="wrap"><div class="stage" part="stage">'
@@ -260,5 +260,5 @@ AGPL-3.0-only. See [LICENSE](LICENSE).
@@ -260,5 +260,5 @@ AGPL-3.0-only. See [LICENSE](LICENSE).
<!-- versions:start -->
<!-- versions:start -->
- openvibe-contracts: v0.384.0
- openvibe-contracts: v0.384.0
- openvibe-sdk: v0.133.0
- openvibe-sdk: v0.133.0
-- openvibe-shared: v4.179.0
+- openvibe-shared: v4.183.0
<!-- versions:end -->
<!-- versions:end -->
@@ -10,11 +10,11 @@
@@ -10,11 +10,11 @@
"domain": "openvibe.cam",
"domain": "openvibe.cam",
"contracts": "openvibe-contracts v0.384.0",
"contracts": "openvibe-contracts v0.384.0",
"sdk": "openvibe-sdk v0.133.0",
"sdk": "openvibe-sdk v0.133.0",
- "shared": "openvibe-shared v4.179.0",
+ "shared": "openvibe-shared v4.183.0",
"packages": [
"packages": [
"openvibe-contracts v0.384.0",
"openvibe-contracts v0.384.0",
"openvibe-sdk v0.133.0",
"openvibe-sdk v0.133.0",
- "openvibe-shared v4.179.0"
+ "openvibe-shared v4.183.0"
],
],
"summary": "OpenVibe.Cam is the camera app, the private wall for cameras a person owns, the API Live's cam button calls, and F1's event timeline. The camera preview, timer, burst, grid and filter run in the browser; a photo is posted to Cam and forwarded to OpenVibe.Pics with the person's own Network token. A camera is private: its owner sees it, and a viewer sees it only while a grant naming them is unrevoked and unexpired, checked on every read, so a revocation is refused at once. Familiar faces proxy the owner's own token to OpenVibe.Vision's library; Cam keeps only the Vision library id and no template or crop. A detection becomes one event with a 10 s/20 s clip reference, a still, away-mode priority, a Network notification, a private link and a police export.",
"summary": "OpenVibe.Cam is the camera app, the private wall for cameras a person owns, the API Live's cam button calls, and F1's event timeline. The camera preview, timer, burst, grid and filter run in the browser; a photo is posted to Cam and forwarded to OpenVibe.Pics with the person's own Network token. A camera is private: its owner sees it, and a viewer sees it only while a grant naming them is unrevoked and unexpired, checked on every read, so a revocation is refused at once. Familiar faces proxy the owner's own token to OpenVibe.Vision's library; Cam keeps only the Vision library id and no template or crop. A detection becomes one event with a 10 s/20 s clip reference, a still, away-mode priority, a Network notification, a private link and a police export.",
"works": [
"works": [
@@ -17,7 +17,7 @@
@@ -17,7 +17,7 @@
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.179.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
},
},
"devDependencies": {
"devDependencies": {
@@ -1194,9 +1194,9 @@
@@ -1194,9 +1194,9 @@
}
}
},
},
"node_modules/openvibe-shared": {
"node_modules/openvibe-shared": {
- "version": "4.179.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.179.0",
- "integrity": "sha512-Fjffjq3gLINhiXTqQJwsKQT/QbV4TYvsmz6GTp5hBJ8xA6KUQgu0wDgCQ3BRxCZ0ehmn0HGVAHUI+5m0LtPQCQ==",
+ "version": "4.183.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",
+ "integrity": "sha512-vp9gg++Dhyj3h0cwvBjujM6dSFYoeXdh1UXdZ6OXP/NjG672Fs7uRANV4MjT467JtFDN7r7qLI3OJAwGQxOuQw==",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"jsonwebtoken": "^9.0.0",
"jsonwebtoken": "^9.0.0",
@@ -25,7 +25,7 @@
@@ -25,7 +25,7 @@
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.179.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
},
},
"engines": {
"engines": {
@@ -146,9 +146,6 @@ html, body { margin: 0; background: var(--bg-primary, #0a0f1c); color: var(--tex
@@ -146,9 +146,6 @@ html, body { margin: 0; background: var(--bg-primary, #0a0f1c); color: var(--tex
.cm-f-strip li.is-on { color: var(--ovk-text); font-weight: 700; }
.cm-f-strip li.is-on { color: var(--ovk-text); font-weight: 700; }
.cm-f-strip li.is-on img { outline-color: var(--room-accent, var(--ovk-accent)); }
.cm-f-strip li.is-on img { outline-color: var(--room-accent, var(--ovk-accent)); }
-@media (prefers-reduced-motion: reduce) {
- .cm-live-btn, .cm-live-flash, .cm-live-chat, .cm-g-bar i, .cm-f-saved { animation: none; }
-}
/* The room's motif: the camera's viewfinder on the sample picture. The focus square locks once and the shutter waits;
/* The room's motif: the camera's viewfinder on the sample picture. The focus square locks once and the shutter waits;
nothing loops. */
nothing loops. */
@@ -176,7 +173,6 @@ html, body { margin: 0; background: var(--bg-primary, #0a0f1c); color: var(--tex
@@ -176,7 +173,6 @@ html, body { margin: 0; background: var(--bg-primary, #0a0f1c); color: var(--tex
.cm-vf { width: min(100%, 280px); border-radius: 18px; }
.cm-vf { width: min(100%, 280px); border-radius: 18px; }
.cm-vf-shutter { width: 44px; height: 44px; margin-left: -22px; bottom: 14px; }
.cm-vf-shutter { width: 44px; height: 44px; margin-left: -22px; bottom: 14px; }
}
}
-@media (prefers-reduced-motion: reduce) { .cm-vf-focus { animation: none; } }
/* A code sample scrolls inside its own box; a long line never widens the page on a phone (11-01 phone sweep). */
/* A code sample scrolls inside its own box; a long line never widens the page on a phone (11-01 phone sweep). */
.cm-code { max-width: 100%; overflow-x: auto; padding: 12px 14px; border: 1px solid var(--border, #26344d); border-radius: 12px; background: var(--bg-card, #0f1729); font-size: .84rem; line-height: 1.5; }
.cm-code { max-width: 100%; overflow-x: auto; padding: 12px 14px; border: 1px solid var(--border, #26344d); border-radius: 12px; background: var(--bg-card, #0f1729); font-size: .84rem; line-height: 1.5; }
@@ -328,7 +324,6 @@ html, body { margin: 0; background: var(--bg-primary, #0a0f1c); color: var(--tex
@@ -328,7 +324,6 @@ html, body { margin: 0; background: var(--bg-primary, #0a0f1c); color: var(--tex
.cm-shutter span { width: 66px; height: 66px; }
.cm-shutter span { width: 66px; height: 66px; }
.cm-under { grid-column: 1; grid-row: 2; grid-template-columns: minmax(0, 520px) auto; justify-content: center; align-items: center; gap: 16px; }
.cm-under { grid-column: 1; grid-row: 2; grid-template-columns: minmax(0, 520px) auto; justify-content: center; align-items: center; gap: 16px; }
}
}
-@media (prefers-reduced-motion: reduce) { .cm-flash.is-on, .cm-count.is-tick, .cm-thumb.is-new { animation: none; } .cm-stage video, .cm-mode-say, .cm-mode { transition: none; } }
/* The /developers embed: the attributes, events and methods tables read as text, not as nowrap cells, and the live
/* The /developers embed: the attributes, events and methods tables read as text, not as nowrap cells, and the live
@@ -208,8 +208,7 @@
@@ -208,8 +208,7 @@
'.camera[data-mode="burst"] .shutter span{background:var(--_accent)}',
'.camera[data-mode="burst"] .shutter span{background:var(--_accent)}',
'.shutter[disabled]{opacity:.45;cursor:not-allowed}',
'.shutter[disabled]{opacity:.45;cursor:not-allowed}',
'.status{margin:0;min-height:1.4em;text-align:center;font-size:13px;font-variant-numeric:tabular-nums;color:var(--_muted)}',
'.status{margin:0;min-height:1.4em;text-align:center;font-size:13px;font-variant-numeric:tabular-nums;color:var(--_muted)}',
- '.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}',
- '@media (prefers-reduced-motion:reduce){.count.is-tick{animation:none}.stage video{transition:none}}'
+ '.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}'
].join('');
].join('');
var TEMPLATE = '<div class="wrap camera" part="wrap"><div class="stage" part="stage">'
var TEMPLATE = '<div class="wrap camera" part="wrap"><div class="stage" part="stage">'