open-standards/wai/encode-conformance/cases.json
Transaction Science 19b8efbd99 An encode record states null when nothing was measured, and run keeps its record then
The brief's form: quality is the figures, or null when not measured, and record::body writes null
until with_quality sets them. A record with no such member reads as before and states no figures
either, so every earlier record stands; a quality of any other form is record_malformed. The
corpus case that refused null is now accepted with pictures held and no verdict, and an empty
object takes its place among the malformed spellings. QualityBasis::Absent is NotMeasured.

wai_encode_measure run no longer fails after encoding when a decode gives nothing to measure. It
writes the record with null and says why in quality_not_measured, and --no-decode asks for that.
An Apple-gated test now drives run itself for each codec: a verifier's own decode recomputes
what it signed, with the verdict decoded, and the not-measured path keeps its record.

record::sign writes quality at its section 6.1 place, as its comment says, and the change note no
longer states a count of cases.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 03:01:50 -05:00

577 lines
17 KiB
JSON

{
"cases": [
{
"name": "accept-platform-avc",
"record": "records/accept-platform-avc.json",
"stream": "streams/platform-avc.h264",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-platform-hevc",
"record": "records/accept-platform-hevc.json",
"stream": "streams/platform-hevc.h265",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-va-1-avc",
"record": "records/accept-va-1-avc.json",
"stream": "streams/va-1-avc.h264",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-va-1-hevc",
"record": "records/accept-va-1-hevc.json",
"stream": "streams/va-1-hevc.h265",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-va-2-avc",
"record": "records/accept-va-2-avc.json",
"stream": "streams/va-2-avc.h264",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-va-2-hevc",
"record": "records/accept-va-2-hevc.json",
"stream": "streams/va-2-hevc.h265",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-gpu-driver-avc",
"record": "records/accept-gpu-driver-avc.json",
"stream": "streams/gpu-driver-avc.h264",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-gpu-driver-hevc",
"record": "records/accept-gpu-driver-hevc.json",
"stream": "streams/gpu-driver-hevc.h265",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-software-avc",
"record": "records/accept-software-avc.json",
"stream": "streams/software-avc.h264",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-software-avc-128x72",
"record": "records/accept-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "accept"
},
{
"name": "accept-record-only",
"record": "records/accept-record-only.json",
"stream": null,
"source": null,
"expect": "accept"
},
{
"name": "accept-energy-partial",
"record": "records/accept-energy-partial.json",
"stream": "streams/platform-avc.h264",
"source": null,
"expect": "accept"
},
{
"name": "accept-energy-whole-engine",
"record": "records/accept-energy-whole-engine.json",
"stream": "streams/platform-avc.h264",
"source": null,
"expect": "accept"
},
{
"name": "malformed-extra-member",
"record": "records/malformed-extra-member.json",
"stream": null,
"source": null,
"expect": "record_malformed"
},
{
"name": "malformed-duplicate-member",
"record": "records/malformed-duplicate-member.json",
"stream": null,
"source": null,
"expect": "record_malformed"
},
{
"name": "malformed-negative",
"record": "records/malformed-negative.json",
"stream": null,
"source": null,
"expect": "record_malformed"
},
{
"name": "malformed-boolean",
"record": "records/malformed-boolean.json",
"stream": null,
"source": null,
"expect": "record_malformed"
},
{
"name": "malformed-fraction",
"record": "records/malformed-fraction.json",
"stream": null,
"source": null,
"expect": "record_malformed"
},
{
"name": "malformed-date-time",
"record": "records/malformed-date-time.json",
"stream": null,
"source": null,
"expect": "record_malformed"
},
{
"name": "bad-key-identity",
"record": "records/bad-key-identity.json",
"stream": null,
"source": null,
"expect": "bad_key"
},
{
"name": "bad-signature",
"record": "records/bad-signature.json",
"stream": null,
"source": null,
"expect": "bad_signature"
},
{
"name": "capability-av1",
"record": "records/capability-av1.json",
"stream": null,
"source": null,
"expect": "encode-capability"
},
{
"name": "identity-blank-device",
"record": "records/identity-blank-device.json",
"stream": null,
"source": null,
"expect": "encode-identity-incomplete"
},
{
"name": "identity-va-software",
"record": "records/identity-va-software.json",
"stream": null,
"source": null,
"expect": "encode-identity-inconsistent"
},
{
"name": "identity-platform-library",
"record": "records/identity-platform-library.json",
"stream": null,
"source": null,
"expect": "encode-identity-inconsistent"
},
{
"name": "identity-unknown-api",
"record": "records/identity-unknown-api.json",
"stream": null,
"source": null,
"expect": "encode-identity-inconsistent"
},
{
"name": "identity-software-hardware",
"record": "records/identity-software-hardware.json",
"stream": null,
"source": null,
"expect": "encode-identity-inconsistent"
},
{
"name": "identity-software-hevc",
"record": "records/identity-software-hevc.json",
"stream": null,
"source": null,
"expect": "encode-identity-inconsistent"
},
{
"name": "settings-odd-width",
"record": "records/settings-odd-width.json",
"stream": null,
"source": null,
"expect": "encode-settings-invalid"
},
{
"name": "settings-fps-zero",
"record": "records/settings-fps-zero.json",
"stream": null,
"source": null,
"expect": "encode-settings-invalid"
},
{
"name": "settings-no-frames",
"record": "records/settings-no-frames.json",
"stream": null,
"source": null,
"expect": "encode-settings-invalid"
},
{
"name": "settings-resample-none-resized",
"record": "records/settings-resample-none-resized.json",
"stream": null,
"source": null,
"expect": "encode-settings-invalid"
},
{
"name": "settings-kbps-zero",
"record": "records/settings-kbps-zero.json",
"stream": null,
"source": null,
"expect": "encode-settings-invalid"
},
{
"name": "plan-not-from-zero",
"record": "records/plan-not-from-zero.json",
"stream": null,
"source": null,
"expect": "encode-plan-invalid"
},
{
"name": "plan-past-the-end",
"record": "records/plan-past-the-end.json",
"stream": null,
"source": null,
"expect": "encode-plan-invalid"
},
{
"name": "plan-pieces-other",
"record": "records/plan-pieces-other.json",
"stream": null,
"source": null,
"expect": "encode-plan-invalid"
},
{
"name": "energy-zero",
"record": "records/energy-zero.json",
"stream": null,
"source": null,
"expect": "encode-energy-invalid"
},
{
"name": "energy-below-floor",
"record": "records/energy-below-floor.json",
"stream": null,
"source": null,
"expect": "encode-energy-invalid"
},
{
"name": "energy-legacy-class",
"record": "records/energy-legacy-class.json",
"stream": null,
"source": null,
"expect": "encode-energy-invalid"
},
{
"name": "energy-coverage-value",
"record": "records/energy-coverage-value.json",
"stream": null,
"source": null,
"expect": "encode-energy-invalid"
},
{
"name": "energy-attribution-value",
"record": "records/energy-attribution-value.json",
"stream": null,
"source": null,
"expect": "encode-energy-invalid"
},
{
"name": "energy-fabrics-out-of-order",
"record": "records/energy-fabrics-out-of-order.json",
"stream": null,
"source": null,
"expect": "encode-energy-invalid"
},
{
"name": "energy-whole-without-engine",
"record": "records/energy-whole-without-engine.json",
"stream": null,
"source": null,
"expect": "encode-energy-coverage"
},
{
"name": "stream-other-bytes",
"record": "records/stream-other-bytes.json",
"stream": "streams/platform-hevc.h265",
"source": null,
"expect": "encode-stream-mismatch"
},
{
"name": "sps-other-width",
"record": "records/sps-other-width.json",
"stream": "streams/platform-avc.h264",
"source": null,
"expect": "encode-sps-mismatch"
},
{
"name": "sps-other-level",
"record": "records/sps-other-level.json",
"stream": "streams/platform-avc.h264",
"source": null,
"expect": "encode-sps-mismatch"
},
{
"name": "source-other-digest",
"record": "records/source-other-digest.json",
"stream": null,
"source": "source.y4m",
"expect": "encode-source-mismatch"
},
{
"name": "source-other-frames",
"record": "records/source-other-frames.json",
"stream": null,
"source": "source.y4m",
"expect": "encode-source-mismatch"
},
{
"name": "source-other-rate",
"record": "records/source-other-rate.json",
"stream": null,
"source": "source.y4m",
"expect": "encode-source-mismatch"
},
{
"name": "source-other-range",
"record": "records/source-other-range.json",
"stream": null,
"source": "source.y4m",
"expect": "encode-source-mismatch"
},
{
"name": "stream-avc-zero-zero-two",
"record": "records/stream-avc-zero-zero-two.json",
"stream": "mutated/avc-zero-zero-two.h264",
"source": null,
"expect": "encode-stream-malformed"
},
{
"name": "stream-avc-one-short",
"record": "records/stream-avc-one-short.json",
"stream": "mutated/avc-one-short.h264",
"source": null,
"expect": "encode-frame-count"
},
{
"name": "stream-avc-idr-missing",
"record": "records/stream-avc-idr-missing.json",
"stream": "mutated/avc-idr-missing.h264",
"source": null,
"expect": "encode-keyframe-mismatch"
},
{
"name": "stream-avc-sps-missing",
"record": "records/stream-avc-sps-missing.json",
"stream": "mutated/avc-sps-missing.h264",
"source": null,
"expect": "encode-parameter-sets"
},
{
"name": "stream-avc-no-pps",
"record": "records/stream-avc-no-pps.json",
"stream": "mutated/avc-no-pps.h264",
"source": null,
"expect": "encode-parameter-sets"
},
{
"name": "stream-hevc-layer",
"record": "records/stream-hevc-layer.json",
"stream": "mutated/hevc-layer.h265",
"source": null,
"expect": "encode-stream-unsupported"
},
{
"name": "stream-avc-swapped",
"record": "records/stream-avc-swapped.json",
"stream": "mutated/avc-swapped.h264",
"source": null,
"expect": "encode-stream-reordered"
},
{
"name": "stream-hevc-cra",
"record": "records/stream-hevc-cra.json",
"stream": "mutated/hevc-cra.h265",
"source": null,
"expect": "encode-keyframe-mismatch"
},
{
"name": "stream-hevc-mixed-idr",
"record": "records/stream-hevc-mixed-idr.json",
"stream": "mutated/hevc-mixed-idr.h265",
"source": null,
"expect": "encode-stream-malformed"
},
{
"name": "stream-avc-trailing-sei",
"record": "records/stream-avc-trailing-sei.json",
"stream": "mutated/avc-trailing-sei.h264",
"source": null,
"expect": "encode-stream-malformed"
},
{
"name": "stream-avc-two-sps",
"record": "records/stream-avc-two-sps.json",
"stream": "mutated/avc-two-sps.h264",
"source": null,
"expect": "encode-parameter-sets"
},
{
"name": "stream-avc-middle-dropped",
"record": "records/stream-avc-middle-dropped.json",
"stream": "mutated/avc-middle-dropped.h264",
"source": null,
"expect": "encode-frame-count"
},
{
"name": "accept-quality-software-avc-128x72",
"record": "records/accept-quality-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "accept",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "decoded",
"quality": "decoded"
},
{
"name": "accept-quality-not-decoded-software-avc-128x72",
"record": "records/accept-quality-not-decoded-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "accept",
"quality": "stated"
},
{
"name": "accept-quality-handed-software-avc-128x72",
"record": "records/accept-quality-handed-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "accept",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "handed",
"quality": "handed"
},
{
"name": "accept-quality-no-stream-software-avc-128x72",
"record": "records/accept-quality-no-stream-software-avc-128x72.json",
"stream": null,
"source": "source.y4m",
"expect": "accept",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "decoded",
"quality": "handed"
},
{
"name": "accept-quality-null-software-avc-128x72",
"record": "records/accept-quality-null-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "accept",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "decoded"
},
{
"name": "accept-quality-own-pictures-software-avc-128x72",
"record": "records/accept-quality-own-pictures-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "accept",
"decoded": "handed/software-avc-128x72.yuv",
"pictures": "handed",
"quality": "handed"
},
{
"name": "quality-own-pictures-decoded-software-avc-128x72",
"record": "records/quality-own-pictures-decoded-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "encode-quality-mismatch",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "decoded"
},
{
"name": "quality-sse-y-plus-one-software-avc-128x72",
"record": "records/quality-sse-y-plus-one-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "encode-quality-mismatch",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "decoded"
},
{
"name": "quality-sse-cb-plus-one-software-avc-128x72",
"record": "records/quality-sse-cb-plus-one-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "encode-quality-mismatch",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "decoded"
},
{
"name": "quality-sse-cr-plus-one-software-avc-128x72",
"record": "records/quality-sse-cr-plus-one-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "encode-quality-mismatch",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "decoded"
},
{
"name": "quality-ssim-plus-one-software-avc-128x72",
"record": "records/quality-ssim-plus-one-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "encode-quality-mismatch",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "decoded"
},
{
"name": "quality-other-pictures-software-avc-128x72",
"record": "records/quality-other-pictures-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "encode-quality-mismatch",
"decoded": "decoded/software-avc-128x72.yuv",
"pictures": "decoded"
},
{
"name": "malformed-quality-empty-software-avc-128x72",
"record": "records/malformed-quality-empty-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "record_malformed"
},
{
"name": "malformed-quality-number-software-avc-128x72",
"record": "records/malformed-quality-number-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "record_malformed"
},
{
"name": "malformed-quality-minus-zero-software-avc-128x72",
"record": "records/malformed-quality-minus-zero-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "record_malformed"
},
{
"name": "malformed-quality-added-member-software-avc-128x72",
"record": "records/malformed-quality-added-member-software-avc-128x72.json",
"stream": "streams/software-avc-128x72.h264",
"source": "source.y4m",
"expect": "record_malformed"
}
]
}