PrismCore / API reference / Probing and input

Structure

DolbyVisionConfiguration

struct DolbyVisionConfiguration

Declared in Sources/PrismCore/Probe/SourceProbe.swift · PrismCore 3.5.4

The container's AVDOVIDecoderConfigurationRecord (the dvcC / dvvC box), which is what decides the whole DV signaling route.

Initializers

init(versionMajor: UInt8, versionMinor: UInt8, profile: UInt8, level: UInt8, rpuPresent: Bool, enhancementLayerPresent: Bool, baseLayerPresent: Bool, baseLayerSignalCompatibilityID: UInt8)

No documentation comment in the source.

Instance properties

let versionMajor: UInt8

No documentation comment in the source.

let versionMinor: UInt8

No documentation comment in the source.

let profile: UInt8

dv_profile: 5, 7, 8, … (the major profile only).

let level: UInt8

dv_level: the DV level, printed zero-padded in the codec tag.

let rpuPresent: Bool

No documentation comment in the source.

let enhancementLayerPresent: Bool

No documentation comment in the source.

let baseLayerPresent: Bool

No documentation comment in the source.

let baseLayerSignalCompatibilityID: UInt8

dv_bl_signal_compatibility_id — the sub-profile: 1 = HDR10 base (8.1), 2 = SDR/Rec.709 base (8.2), 4 = HLG base (8.4), 6 = Blu-ray HDR10 base. Zero for the profiles that have no base layer (5).

var profileName: String { get }

"5", "8.1", "8.4", "7" — the human profile name used in logs and in routing decisions.

var hasSDRCompatibleBase: Bool { get }

True for profiles whose base layer no Apple platform can present as DV and whose base is not even HDR: 8.2 carries a Rec.709 base, so the only honest signaling is plain hvc1 SDR — no supplemental codec, no DV, on any display.

var isSingleLayerDVOnly: Bool { get }

Profile 5 has no base layer at all (IPT-PQ), so it is either presented as DV or not at all.

var isDualLayer: Bool { get }

Profile 7 is dual-layer; Apple has no decoder for it. Phase 4's groundwork only reports it — the live RPU conversion to 8.1 is the next step.

var isPresentableAsDolbyVision: Bool { get }

Whether a stream declared as this configuration can be presented as Dolby Vision by AVFoundation at all.

The same three cases MasterPlaylistBuilder already decides between, named once so the manifest and the sample entry cannot disagree about them — the manifest reads it through dolbyVisionBrand, the muxer through HLSRemuxer.shouldStripDolbyVisionRecord:

  • 5 — presentable, and the record is not an upgrade but the description of an IPT-PQc2 picture.
  • 8.1 / 8.4, and their AV1 siblings 10.1 / 10.4 — presentable: an HDR10 or HLG base the dvvC upgrades. Profile 10 is listed by Apple's HLS authoring appendices alongside 8; it cannot reach the HEVC remux path today, and it is named here so that when it can, a record the platform supports is not thrown away by this rule.
  • everything else — 8.2's Rec.709 base, dual-layer 7, and any profile we don't recognise. No manifest claim is printed for these, so no record may be written for them either.

Generated from the public symbols of PrismCore 3.5.4. All types