The new max_ms check bounded nothing, because a policy could set max_ms up to
2^53 − 1. A still's piece could then state 2^32 − 1 frames. Rust hashed once
per stated frame (about 29 minutes), and Python built a list of n references
(about 34 GB).
- **§3.4 item 5 and §4.4.** max_ms is at most 600000, and at most 2^24 units on
every component's timebase. Both are policy-piece-bounds, in both readers.
§4.4 gives the reason: a verifier takes a piece whole, so the longest piece
bounds its work. Ten minutes is far past any piece a delivery cuts, and 2^24
units bounds the work on any timebase, which may have up to 2^32 − 1 units a
second.
- **§11.3, before any frame is decoded.** Each piece's floor object, where its
framing reads, must hold one unit per frame of its piece
(floor-object-mismatch). Both verifiers make this check first.
- **Held stills.** Python holds a still's frame and its count (Held) and hashes
the digest a block at a time. Rust's held_digest also feeds a block at a time.
- **Corpus.**
- refusals: max_ms 600001; and the default max_ms on a timebase of 2^32 − 1
units a second.
- policy/max-piece.toml: accepted at both bounds.
- staged-mutations max-ms-past-cap (policy-piece-bounds).
- staged-mutations still-at-cap: the still given the longest piece the policy
allows, its manifest naming the frames, refused by the floor count in both
verifiers.
- **policy_diff.** Its random policies now reach both bounds.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
236 lines
5.3 KiB
JSON
236 lines
5.3 KiB
JSON
{
|
|
"cases": [
|
|
{
|
|
"file": "policy/capability-candidate.toml",
|
|
"reason": "capability-candidate:wai.splat.sog"
|
|
},
|
|
{
|
|
"file": "policy/capability-not-payload.toml",
|
|
"reason": "capability-not-payload:wai.video.package"
|
|
},
|
|
{
|
|
"file": "policy/capability-role.toml",
|
|
"reason": "capability-role:wai.meta.hdr10plus"
|
|
},
|
|
{
|
|
"file": "policy/capability-unknown.toml",
|
|
"reason": "capability-unknown:wai.video.nope"
|
|
},
|
|
{
|
|
"file": "policy/class-layer.toml",
|
|
"reason": "policy-class-layer"
|
|
},
|
|
{
|
|
"file": "policy/dangling-refines.toml",
|
|
"reason": "policy-dangling-refines"
|
|
},
|
|
{
|
|
"file": "policy/datetime.toml",
|
|
"reason": "policy-datetime"
|
|
},
|
|
{
|
|
"file": "policy/deadline-unreachable.toml",
|
|
"reason": "policy-deadline-unreachable"
|
|
},
|
|
{
|
|
"file": "policy/duplicate-id-across-kinds.toml",
|
|
"reason": "policy-duplicate-id"
|
|
},
|
|
{
|
|
"file": "policy/duplicate-id.toml",
|
|
"reason": "policy-duplicate-id"
|
|
},
|
|
{
|
|
"file": "policy/float.toml",
|
|
"reason": "policy-float"
|
|
},
|
|
{
|
|
"file": "policy/integer-range.toml",
|
|
"reason": "policy-integer-range"
|
|
},
|
|
{
|
|
"file": "policy/ladder-component.toml",
|
|
"reason": "policy-ladder-component"
|
|
},
|
|
{
|
|
"file": "policy/layer-lag.toml",
|
|
"reason": "policy-layer-lag"
|
|
},
|
|
{
|
|
"file": "policy/lead.toml",
|
|
"reason": "policy-lead"
|
|
},
|
|
{
|
|
"file": "policy/license-refused.toml",
|
|
"reason": "license-refused:wai.video.avc:patent-pool"
|
|
},
|
|
{
|
|
"file": "policy/missing-key.toml",
|
|
"reason": "policy-missing-key"
|
|
},
|
|
{
|
|
"file": "policy/negative.toml",
|
|
"reason": "policy-negative"
|
|
},
|
|
{
|
|
"file": "policy/no-base.toml",
|
|
"reason": "policy-no-base"
|
|
},
|
|
{
|
|
"file": "policy/open-gop.toml",
|
|
"reason": "policy-open-gop"
|
|
},
|
|
{
|
|
"file": "policy/piece-bounds-max-ms.toml",
|
|
"reason": "policy-piece-bounds"
|
|
},
|
|
{
|
|
"file": "policy/piece-bounds-units.toml",
|
|
"reason": "policy-piece-bounds"
|
|
},
|
|
{
|
|
"file": "policy/piece-bounds.toml",
|
|
"reason": "policy-piece-bounds"
|
|
},
|
|
{
|
|
"file": "policy/refines-base.toml",
|
|
"reason": "policy-refines-base"
|
|
},
|
|
{
|
|
"file": "policy/refines-branch.toml",
|
|
"reason": "policy-refines-branch"
|
|
},
|
|
{
|
|
"file": "policy/refines-cycle.toml",
|
|
"reason": "policy-refines-cycle"
|
|
},
|
|
{
|
|
"file": "policy/refines-role.toml",
|
|
"reason": "policy-refines-role"
|
|
},
|
|
{
|
|
"file": "policy/rule-ladder.toml",
|
|
"reason": "policy-rule-ladder"
|
|
},
|
|
{
|
|
"file": "policy/schema.toml",
|
|
"reason": "policy-schema"
|
|
},
|
|
{
|
|
"file": "policy/toml-bom.toml",
|
|
"reason": "policy-toml"
|
|
},
|
|
{
|
|
"file": "policy/toml-depth-33.toml",
|
|
"reason": "policy-toml"
|
|
},
|
|
{
|
|
"file": "policy/toml-depth-80.toml",
|
|
"reason": "policy-toml"
|
|
},
|
|
{
|
|
"file": "policy/toml-duplicate-key.toml",
|
|
"reason": "policy-toml"
|
|
},
|
|
{
|
|
"file": "policy/toml-integer-64.toml",
|
|
"reason": "policy-toml"
|
|
},
|
|
{
|
|
"file": "policy/toml-non-utf8.toml",
|
|
"reason": "policy-toml"
|
|
},
|
|
{
|
|
"file": "policy/toml.toml",
|
|
"reason": "policy-toml"
|
|
},
|
|
{
|
|
"file": "policy/too-many-components.toml",
|
|
"reason": "policy-too-many-components"
|
|
},
|
|
{
|
|
"file": "policy/too-many-deadlines.toml",
|
|
"reason": "policy-too-many-deadlines"
|
|
},
|
|
{
|
|
"file": "policy/too-many-moments.toml",
|
|
"reason": "policy-too-many-moments"
|
|
},
|
|
{
|
|
"file": "policy/too-many-rules.toml",
|
|
"reason": "policy-too-many-rules"
|
|
},
|
|
{
|
|
"file": "policy/type.toml",
|
|
"reason": "policy-type"
|
|
},
|
|
{
|
|
"file": "policy/unknown-key-params.toml",
|
|
"reason": "policy-unknown-key"
|
|
},
|
|
{
|
|
"file": "policy/unknown-key.toml",
|
|
"reason": "policy-unknown-key"
|
|
},
|
|
{
|
|
"file": "policy/value-block.toml",
|
|
"reason": "policy-value"
|
|
},
|
|
{
|
|
"file": "policy/value-cut-window.toml",
|
|
"reason": "policy-value"
|
|
},
|
|
{
|
|
"file": "policy/value-media.toml",
|
|
"reason": "policy-value"
|
|
},
|
|
{
|
|
"file": "source/y4m-header.y4m",
|
|
"reason": "y4m-header"
|
|
},
|
|
{
|
|
"file": "source/y4m-interlaced.y4m",
|
|
"reason": "y4m-interlaced"
|
|
},
|
|
{
|
|
"file": "source/y4m-interlaced-frame.y4m",
|
|
"reason": "y4m-interlaced"
|
|
},
|
|
{
|
|
"file": "source/y4m-colorspace.y4m",
|
|
"reason": "y4m-colorspace"
|
|
},
|
|
{
|
|
"file": "source/y4m-size-change.y4m",
|
|
"reason": "y4m-size-change"
|
|
},
|
|
{
|
|
"file": "source/y4m-truncated.y4m",
|
|
"reason": "y4m-truncated"
|
|
},
|
|
{
|
|
"file": "source/wav-format-float.wav",
|
|
"reason": "wav-format"
|
|
},
|
|
{
|
|
"file": "source/wav-format-8bit.wav",
|
|
"reason": "wav-format"
|
|
},
|
|
{
|
|
"file": "source/wav-truncated.wav",
|
|
"reason": "wav-truncated"
|
|
},
|
|
{
|
|
"file": "source/wav-format-channels-32768.wav",
|
|
"reason": "wav-format"
|
|
},
|
|
{
|
|
"file": "source/wav-format-channels-32769.wav",
|
|
"reason": "wav-format"
|
|
},
|
|
{
|
|
"file": "source/wav-truncated-huge-data.wav",
|
|
"reason": "wav-truncated"
|
|
}
|
|
]
|
|
}
|