A new crate beside wai-rs, with its own workspace and lock: the reference
packager of the packaging extension, built so far as far as a plan.
- policy.rs: wai.pack.policy/1 read in three stages (value kinds a canonical
JSON cannot carry; the schema with every default written in; the
constraints across members), each refusal named. The effective policy's
canonical JSON goes through wai::jcs, and its digest is
BLAKE3("wai:pack-policy\x01" || JCS).
- source/: Y4M to RGB8 (BT.709 limited range, integer), WAV PCM s16le.
- scenecut.rs: wai.pack.scenecut/1, one streaming segmenter with a bounded
lookahead and the return and revisit clauses, so live and on-demand
packing cut alike at equal lookahead; plan digest.
- classify.rs: static, synthetic, high motion, natural.
- fixture.rs: integer-generated Y4M fixtures (cuts-01, kinds-01).
- conformance.rs and wai-pack conformance regen|check.
pack-conformance/ holds the policy digests and equal-spelling pairs, a
refusal case per reason, the unit and colour conversions, and the scene-cut
vectors; pack_verify.py recomputes every one of them from the rules, with
its own TOML schema, JCS, readers, fixture generator and segmenter. It
found one defect while it was written: a millisecond bound converted to an
extreme timebase wrapped past 2^64; both conversions now saturate.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
149 lines
2.3 KiB
JSON
149 lines
2.3 KiB
JSON
{
|
|
"ms_to_units": [
|
|
{
|
|
"ms": 1000,
|
|
"num": 25,
|
|
"den": 1,
|
|
"units": 25
|
|
},
|
|
{
|
|
"ms": 40,
|
|
"num": 25,
|
|
"den": 1,
|
|
"units": 1
|
|
},
|
|
{
|
|
"ms": 39,
|
|
"num": 25,
|
|
"den": 1,
|
|
"units": 1
|
|
},
|
|
{
|
|
"ms": 0,
|
|
"num": 25,
|
|
"den": 1,
|
|
"units": 1
|
|
},
|
|
{
|
|
"ms": 1000,
|
|
"num": 30000,
|
|
"den": 1001,
|
|
"units": 29
|
|
},
|
|
{
|
|
"ms": 2000,
|
|
"num": 30000,
|
|
"den": 1001,
|
|
"units": 59
|
|
},
|
|
{
|
|
"ms": 1,
|
|
"num": 48000,
|
|
"den": 1,
|
|
"units": 48
|
|
},
|
|
{
|
|
"ms": 4000,
|
|
"num": 90000,
|
|
"den": 1,
|
|
"units": 360000
|
|
},
|
|
{
|
|
"ms": 9007199254740991,
|
|
"num": 4294967295,
|
|
"den": 1,
|
|
"units": 18446744073709551615
|
|
}
|
|
],
|
|
"align": [
|
|
{
|
|
"start": 50,
|
|
"lead": [
|
|
25,
|
|
1
|
|
],
|
|
"component": [
|
|
48000,
|
|
1
|
|
],
|
|
"units": 96000
|
|
},
|
|
{
|
|
"start": 3,
|
|
"lead": [
|
|
25,
|
|
1
|
|
],
|
|
"component": [
|
|
30000,
|
|
1001
|
|
],
|
|
"units": 3
|
|
},
|
|
{
|
|
"start": 29,
|
|
"lead": [
|
|
30000,
|
|
1001
|
|
],
|
|
"component": [
|
|
25,
|
|
1
|
|
],
|
|
"units": 24
|
|
},
|
|
{
|
|
"start": 48000,
|
|
"lead": [
|
|
48000,
|
|
1
|
|
],
|
|
"component": [
|
|
25,
|
|
1
|
|
],
|
|
"units": 25
|
|
},
|
|
{
|
|
"start": 47999,
|
|
"lead": [
|
|
48000,
|
|
1
|
|
],
|
|
"component": [
|
|
25,
|
|
1
|
|
],
|
|
"units": 24
|
|
},
|
|
{
|
|
"start": 18446744073709551615,
|
|
"lead": [
|
|
1,
|
|
4294967295
|
|
],
|
|
"component": [
|
|
4294967295,
|
|
1
|
|
],
|
|
"units": 18446744073709551615
|
|
}
|
|
],
|
|
"y4m_rgb": [
|
|
{
|
|
"file": "conversions/bt709-420.y4m",
|
|
"rgb_sha256": [
|
|
"c1d16f98e2ae61ba8cca146cb1856b462e5c7641590ad651fe727658377253a8",
|
|
"badec76a4621b64df3cf803df18c58e08d70ced9cf716dc6b7b7fb7fd278e74d",
|
|
"6d5c08c958a6cbe09257dddfa9976f9c0bdd9943995ed886b1334d4389586629"
|
|
]
|
|
},
|
|
{
|
|
"file": "conversions/bt709-444.y4m",
|
|
"rgb_sha256": [
|
|
"d2d8ef122db155d44015cf30ff760bc2744cecedba19c6f0388f09dbb207acfd",
|
|
"ede0a218313910474b8bfd8e7d1fd5743328b800822516c760214e6fb55a711b"
|
|
]
|
|
}
|
|
]
|
|
}
|