Fix round, item 6. The example named wai.audio.int_layered, which SPEC §5 does not register yet, so a packager refused it (capability-unknown). The audio component's base is now wai.audio.flac, and the rungs that named or refined int_layered are gone. int_layered's parameters leave the schema and §3.3's table, with a note that the string is reserved until it is registered. Both implementations now require every policy of the policy corpus to be accepted, rungs included, not only parsed. Co-Authored-By: Claude Opus 5.5 <[email protected]>
131 lines
2.3 KiB
TOML
131 lines
2.3 KiB
TOML
# The example policy of extensions/packaging.md §3.3: two components (video lead,
|
|
# audio), a staged video ladder with a still-image rung and a supplied floor, an audio
|
|
# base, three classes, one moment and three rules. Every rung is one a packager may
|
|
# emit (§3.6).
|
|
schema = "wai.pack.policy/1"
|
|
asset_id = "pack-fixture-01"
|
|
royalty_free_only = true
|
|
lead = "v"
|
|
|
|
[[component]]
|
|
id = "v"
|
|
media = "video"
|
|
source = "src/video.y4m"
|
|
|
|
[component.timebase]
|
|
num = 25
|
|
den = 1
|
|
|
|
[[component]]
|
|
id = "a"
|
|
media = "audio"
|
|
source = "src/audio.wav"
|
|
|
|
[component.timebase]
|
|
num = 48000
|
|
den = 1
|
|
|
|
[segmentation]
|
|
target_ms = 2000
|
|
min_ms = 1000
|
|
max_ms = 4000
|
|
scene_cut = "wai.pack.scenecut/1"
|
|
cut_abs_permille = 300
|
|
cut_rel_permille = 3000
|
|
cut_window = 8
|
|
lookahead_frames = 6
|
|
closed = true
|
|
|
|
[[ladder]]
|
|
id = "b0"
|
|
component = "v"
|
|
capability = "wai.video.int_motion"
|
|
role = "base"
|
|
params = { block = 16, search = 7, mv_precision = 2, q_candidates = [16, 12, 8], max_sse_px_milli = 40000 }
|
|
|
|
[[ladder]]
|
|
id = "r1"
|
|
component = "v"
|
|
capability = "wai.video.int_refine"
|
|
role = "refinement"
|
|
refines = "b0"
|
|
params = { q = 6 }
|
|
|
|
[[ladder]]
|
|
id = "r2"
|
|
component = "v"
|
|
capability = "wai.video.int_refine"
|
|
role = "refinement"
|
|
refines = "r1"
|
|
params = { q = 3 }
|
|
|
|
[[ladder]]
|
|
id = "still"
|
|
component = "v"
|
|
capability = "wai.image.png"
|
|
role = "base"
|
|
params = {}
|
|
|
|
[[ladder]]
|
|
id = "f0"
|
|
component = "v"
|
|
capability = "wai.video.av1"
|
|
role = "floor"
|
|
params = { source = "supplied" }
|
|
|
|
[[ladder]]
|
|
id = "ab"
|
|
component = "a"
|
|
capability = "wai.audio.flac"
|
|
role = "base"
|
|
params = { source = "encode" }
|
|
|
|
[floor]
|
|
supplied_listing = "0000000000000000000000000000000000000000000000000000000000000000"
|
|
extra_keyframes = false
|
|
|
|
[live]
|
|
layer_lag_ms = [0, 200, 400]
|
|
|
|
[[class]]
|
|
id = "mobile"
|
|
max_layer = 1
|
|
max_kbps = 900
|
|
|
|
[[class]]
|
|
id = "tv"
|
|
max_layer = 2
|
|
|
|
[[class]]
|
|
id = "legacy"
|
|
floor_only = true
|
|
|
|
[[moment]]
|
|
id = "m-goal"
|
|
from_ms = 30000
|
|
to_ms = 34000
|
|
tags = ["event"]
|
|
|
|
[[rule]]
|
|
id = "static"
|
|
when = { piece_kind = ["static"] }
|
|
then = { ladder = ["still", "f0"] }
|
|
|
|
[[rule]]
|
|
id = "motion"
|
|
when = { piece_kind = ["motion_high"] }
|
|
then = { max_layer = 1 }
|
|
|
|
[[rule]]
|
|
id = "event"
|
|
when = { moment_tag = ["event"] }
|
|
then = { max_layer = 2, deadline_ms = 800 }
|
|
|
|
[defaults]
|
|
deadline_ms = 1500
|
|
|
|
[classify]
|
|
static_permille = 5
|
|
static_mad_milli = 300
|
|
synthetic_bins = 12
|
|
motion_high_milli = 9000
|