Video frames
video.frames
Ready · No signal has been run.
Results
Research focus
Selected evidence from this run. Cross-run stability and comparison verdicts require a session comparison.
Full evidence
| Property | Value |
|---|---|
| No results yet. No signal has been run. | |
JSON
Selected signal results for external comparison. Field statuses, controls and exact values are retained.
No run export is available.
Source
Source is not connected yet.
// Test source pending.Reference
Reference is not connected yet.
Definition
Per-codec sampled decoded planes and format/configuration, with independent orientation, crop and layout controls.
Find it in the repository
- Collector source
core/signals/video/frames.ts- Export
measurementModule· Signal factory- Field definitions
core/definitions/video/frames.ts- Capture membership
- Product capture ·
common/capture/product.ts - Page registration
app/signals/registry.ts- Field projection
core/results/measurement.ts
Execution contract
- Signal
video.frames- Collector
video.frames- API / surface
- core/signals/video/frames.ts
- Timeout
- 3000 ms
- Companion signals
- None
- Fixture inputs
core/fixtures/video/frames/quadrants-vp8.ivfcore/fixtures/video/frames/quadrants-vp9.ivf
input-a1d65b7e4bdddb86·sha256:a1d65b7e4bdddb86427a117254056d60acea0115646a5488f7866722878a657finput-5de96153ec5e9772·sha256:5de96153ec5e97727e09e2484543cc76a2ba8033c5129b023fb36505023ab23a
Exact request inputs
[
{
"key": "video.frames.vp8",
"inputs": {
"vp8": {
"config": {
"codec": "vp8",
"codedWidth": 96,
"codedHeight": 64,
"hardwareAcceleration": "no-preference",
"optimizeForLatency": true,
"colorSpace": {
"primaries": "bt709",
"transfer": "bt709",
"matrix": "bt709",
"fullRange": false
}
},
"chunks": [
{
"offset": 44,
"size": 51,
"timestamp": 0,
"duration": 200000,
"type": "key"
},
{
"offset": 107,
"size": 51,
"timestamp": 200000,
"duration": 200000,
"type": "key"
}
],
"sha256": "a1d65b7e4bdddb86427a117254056d60acea0115646a5488f7866722878a657f",
"fixtureSha256": "a1d65b7e4bdddb86427a117254056d60acea0115646a5488f7866722878a657f"
}
},
"controls": {
"vp8": [
{
"relationshipId": "decode-shape-timestamps",
"class": "required",
"preconditions": [
"all chunks decoded and flushed"
]
},
{
"relationshipId": "independent-plane-reference",
"class": "required",
"preconditions": [
"actual I420 format",
"owned interior plane coordinates"
]
}
]
}
},
{
"key": "video.frames.vp9",
"inputs": {
"vp9": {
"config": {
"codec": "vp09.00.10.08",
"codedWidth": 96,
"codedHeight": 64,
"hardwareAcceleration": "no-preference",
"optimizeForLatency": true,
"colorSpace": {
"primaries": "bt709",
"transfer": "bt709",
"matrix": "bt709",
"fullRange": false
}
},
"chunks": [
{
"offset": 44,
"size": 50,
"timestamp": 0,
"duration": 200000,
"type": "key"
},
{
"offset": 106,
"size": 49,
"timestamp": 200000,
"duration": 200000,
"type": "key"
}
],
"sha256": "5de96153ec5e97727e09e2484543cc76a2ba8033c5129b023fb36505023ab23a",
"fixtureSha256": "5de96153ec5e97727e09e2484543cc76a2ba8033c5129b023fb36505023ab23a"
}
},
"controls": {
"vp9": [
{
"relationshipId": "decode-shape-timestamps",
"class": "required",
"preconditions": [
"all chunks decoded and flushed"
]
},
{
"relationshipId": "independent-plane-reference",
"class": "required",
"preconditions": [
"actual I420 format",
"owned interior plane coordinates"
]
}
]
}
},
{
"key": "video.frames.frame-base",
"inputs": {
"frame-base": {
"id": "frame-base",
"rotation": 0,
"flip": false,
"composed": false,
"crop": false,
"order": [
0,
1,
2,
3
]
}
},
"controls": {
"frame-base": [
{
"relationshipId": "storage-corners",
"class": "required",
"preconditions": [
"RGBA copyTo",
"crop-relative returned stride"
]
},
{
"relationshipId": "display-corners",
"class": "required",
"preconditions": [
"opaque sRGB",
"nearest unscaled rendering",
"rotate clockwise then flip horizontally"
]
},
{
"relationshipId": "orientation-composition",
"class": "required",
"preconditions": [
"orientation readback available"
]
},
{
"relationshipId": "padded-layout",
"class": "required",
"preconditions": [
"padded copy requested"
]
}
]
}
},
{
"key": "video.frames.frame-quarter-turn",
"inputs": {
"frame-quarter-turn": {
"id": "frame-quarter-turn",
"rotation": 90,
"flip": false,
"composed": false,
"crop": false,
"order": [
2,
0,
3,
1
]
}
},
"controls": {
"frame-quarter-turn": [
{
"relationshipId": "storage-corners",
"class": "required",
"preconditions": [
"RGBA copyTo",
"crop-relative returned stride"
]
},
{
"relationshipId": "display-corners",
"class": "required",
"preconditions": [
"opaque sRGB",
"nearest unscaled rendering",
"rotate clockwise then flip horizontally"
]
},
{
"relationshipId": "orientation-composition",
"class": "required",
"preconditions": [
"orientation readback available"
]
},
{
"relationshipId": "padded-layout",
"class": "required",
"preconditions": [
"padded copy requested"
]
}
]
}
},
{
"key": "video.frames.frame-turn-flip",
"inputs": {
"frame-turn-flip": {
"id": "frame-turn-flip",
"rotation": 90,
"flip": true,
"composed": false,
"crop": false,
"order": [
0,
2,
1,
3
]
}
},
"controls": {
"frame-turn-flip": [
{
"relationshipId": "storage-corners",
"class": "required",
"preconditions": [
"RGBA copyTo",
"crop-relative returned stride"
]
},
{
"relationshipId": "display-corners",
"class": "required",
"preconditions": [
"opaque sRGB",
"nearest unscaled rendering",
"rotate clockwise then flip horizontally"
]
},
{
"relationshipId": "orientation-composition",
"class": "required",
"preconditions": [
"orientation readback available"
]
},
{
"relationshipId": "padded-layout",
"class": "required",
"preconditions": [
"padded copy requested"
]
}
]
}
},
{
"key": "video.frames.frame-composed",
"inputs": {
"frame-composed": {
"id": "frame-composed",
"rotation": 90,
"flip": true,
"composed": true,
"crop": false,
"order": [
0,
1,
2,
3
]
}
},
"controls": {
"frame-composed": [
{
"relationshipId": "storage-corners",
"class": "required",
"preconditions": [
"RGBA copyTo",
"crop-relative returned stride"
]
},
{
"relationshipId": "display-corners",
"class": "required",
"preconditions": [
"opaque sRGB",
"nearest unscaled rendering",
"rotate clockwise then flip horizontally"
]
},
{
"relationshipId": "orientation-composition",
"class": "required",
"preconditions": [
"orientation readback available"
]
},
{
"relationshipId": "padded-layout",
"class": "required",
"preconditions": [
"padded copy requested"
]
}
]
}
},
{
"key": "video.frames.frame-crop-stride",
"inputs": {
"frame-crop-stride": {
"id": "frame-crop-stride",
"rotation": 0,
"flip": false,
"composed": false,
"crop": true,
"order": [
0,
1,
2,
3
]
}
},
"controls": {
"frame-crop-stride": [
{
"relationshipId": "storage-corners",
"class": "required",
"preconditions": [
"RGBA copyTo",
"crop-relative returned stride"
]
},
{
"relationshipId": "display-corners",
"class": "required",
"preconditions": [
"opaque sRGB",
"nearest unscaled rendering",
"rotate clockwise then flip horizontally"
]
},
{
"relationshipId": "orientation-composition",
"class": "required",
"preconditions": [
"orientation readback available"
]
},
{
"relationshipId": "padded-layout",
"class": "required",
"preconditions": [
"padded copy requested"
]
}
]
}
}
]One collector runs per invocation. Results and JSON select this signal’s fields; any companions execute in the same collector.
Generated source manifest lists runtime files, fixture URLs and content digests for this build. The Source tab provides a copyable console sample.
Run and edit locally
From the repository root, start the Astro app, then open /signals/video.frames. Edit the collector source and reload the page to load its new build.
pnpm run dev:webIn a browser module served by this repository’s Vite graph:
import { createCollector } from "/core/collect"
import { measurementModule } from "/core/signals/video/frames"
import asset0 from "/core/fixtures/video/frames/quadrants-vp8.ivf?url"
import asset1 from "/core/fixtures/video/frames/quadrants-vp9.ivf?url"
const signal = measurementModule({ "vp8": asset0, "vp9": asset1 })
const collector = createCollector()
const suite = { signals: [signal] }
const result = await collector.collect(suite)Reuse the collector owner for repeated calls so collection can enforce cleanup. This returns the collector’s raw result; app/signals/projection.ts selects the retained fields shown on this page.
rg -n 'measurementModule' core app tests
pnpm run check
pnpm run test tests/unit/app/focused-projection.test.ts| Property | Value |
|---|