PrismCore / API reference / Dolby Vision
Structure
DolbyVisionConversionStats
struct DolbyVisionConversionStatsDeclared in Sources/PrismCore/DolbyVision/DolbyVisionRPUConverter.swift · PrismCore 3.5.4
What a Profile 7 → 8.1 conversion did over the course of a session.
Exposed because "did it work" has no other observable answer: a P7 source whose RPUs all failed to convert still plays — as plain HDR10 — so the only other symptom is a viewer reporting that Dolby Vision never engaged.
Initializers
init(convertedRPUs: Int, failedRPUs: Int, droppedEnhancementLayerNALs: Int, staleUnconvertedPackets: Int = 0)staleUnconvertedPackets defaults so that 2.0.x stays source compatible for anyone constructing this.
Instance properties
let failedRPUs: IntRPU NALs libdovi refused. DROPPED, not left in place (which is what this said, and did, before 2.0.1): a stale Profile 7 RPU inside a container declaring profile 8 is the same mismatch that made a P7 title play black. A non-zero count here means the 8.1 declaration stopped describing every frame, which is worth a host's log line.
let droppedEnhancementLayerNALs: IntEnhancement-layer NALs dropped — the other half of making a dual-layer stream single-layer.
let staleUnconvertedPackets: IntPackets the converter decided to rewrite and could not — the packet did not frame, or the output buffer could not be allocated — so the demuxer's original bytes went out with their enhancement layer and their unconverted RPU intact, inside a stream declared single-layer 8.1.
Counted separately because the tallies above deliberately no longer include that work: they are committed only once a rewrite has landed. Anything here is the black-screen mismatch on a rarer path.
var isClean: Bool { get }Every RPU converted, none refused, and the enhancement layer actually gone.
The EL clause is not belt-and-braces: a dual-layer source reporting zero dropped EL NALs is precisely the state that hid the unspec63 bug for as long as it did — the conversion looked clean while the stream still carried the layer its own dvvC said was absent. If this can read clean in that state again, nothing will report it but a viewer with a black screen.
Generated from the public symbols of PrismCore 3.5.4. All types