The review's package cases become a corpus, package-mutations/: each the golden altered and, where the receipt or LISTING alone would catch it, re-sealed with the golden's key, held as an overlay (the files that differ or are new, and the files it removes) with its reason. 26 cases: a receipt over no component (on demand and live), the index against its policy (class records, a capability, the string order, the class plan), a class named classic, a patent-pool floor under royalty_free_only, a component of another medium, a floor object missing and corrupted, a live window starting past 2^53 - 1, floor objects that do not open on a key frame / hold an extra one / have another sequence header / framing header / renderer and settings / target, an extra key frame the policy allows (ok), dot-names and a *.sha256 file read strictly, and receipt files that are not canonical or name a member twice. - golden.rs builds them (package_mutations), writes the overlays (regen) and requires each, applied to the golden, to get its reason from verify_files (check, so cargo test and CI). - pack_verify.py writes each case out and verifies it in §11.3's order without the golden's inputs, taking the reason of the first check that fails. Two fixes the corpus found in it: an index no catalog can be written for (a start past 2^53 - 1) is catalog-mismatch, not an uncaught ValueError; and "on-demand, one window" is an assertion about the golden, not a rule a package is held to (a live window is a package too, §6.1, §9.2). An object-rules failure now names its reason in brackets. - review.rs asserts the same cases by name, keeping what the corpus cannot hold (an on-demand index starting past 0 cannot be sealed, a fragment time past 2^64 - 1, the random alterations, the verifier's own directory walk). Co-Authored-By: Claude Opus 5.5 <[email protected]>
24 lines
1.4 KiB
XML
24 lines
1.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:full:2011" type="static" mediaPresentationDuration="PT8.000S" minBufferTime="PT3S">
|
|
<Period id="p0" start="PT0S">
|
|
<AdaptationSet id="1" contentType="video" mimeType="video/mp4" codecs="av01.0.00M.08" width="64" height="36" segmentAlignment="true" startWithSAP="1">
|
|
<Representation id="v-floor" bandwidth="10295">
|
|
<SegmentList timescale="25">
|
|
<Initialization sourceURL="../floor/v/init.mp4"/>
|
|
<SegmentTimeline>
|
|
<S t="0" d="60"/>
|
|
<S t="60" d="25"/>
|
|
<S t="85" d="50"/>
|
|
<S t="135" d="25"/>
|
|
<S t="160" d="40"/>
|
|
</SegmentTimeline>
|
|
<SegmentURL media="../floor/v/420ae4c941bba6e12a6c7fdb7d01dc69170ecb4240dffd2e86808ddf87baa12a.m4s"/>
|
|
<SegmentURL media="../floor/v/04c948608aaa7b5d78ad5355042a2ff65b0f75d9d4b1ad78f3ebffb886a74be6.m4s"/>
|
|
<SegmentURL media="../floor/v/b4afa19b0f5c520614c95ce53c555a0b25e0fc20ce598006cf95e03338628f61.m4s"/>
|
|
<SegmentURL media="../floor/v/06d5cd79ba3860cccdc252fe915de0902f941a3c6a000295714f7cab193aa6cf.m4s"/>
|
|
<SegmentURL media="../floor/v/99a24de04f7be9fc21097e69d2d61b222e458b1f93b8082026a9874aeb9f4c15.m4s"/>
|
|
</SegmentList>
|
|
</Representation>
|
|
</AdaptationSet>
|
|
</Period>
|
|
</MPD>
|