PrismCore / API reference / Probing and input
Structure
SourceInfo
struct SourceInfoDeclared in Sources/PrismCore/Probe/SourceProbe.swift · PrismCore 3.5.4
Everything Aether's engine routing needs to decide PrismCore vs Prism, and everything MasterPlaylistBuilder needs to sign the manifest — read in one libavformat open.
Initializers
init(formatName: String, duration: Double?, video: VideoTrackInfo?, audioTracks: [AudioTrackInfo], subtitleTracks: [SubtitleTrackInfo] = [], chapters: [ChapterInfo] = [], hdr10Plus: HDR10PlusFinding? = nil)Explicit so subtitleTracks (and later chapters, hdr10Plus) could be added without breaking callers that predate them.
Instance properties
let duration: Double?Source duration in seconds; nil when the container doesn't know (some live ingests).
let subtitleTracks: [SubtitleTrackInfo]Every subtitle stream, text and bitmap alike — the bitmap ones are reported precisely because PrismCore does not carry them (phase 6), and the host has to know they exist to offer them in its own overlay.
let chapters: [ChapterInfo]The container's chapter marks, in start order. Empty for a source without them — most containers — never nil.
let hdr10Plus: HDR10PlusFinding?What a bounded read of the video bitstream said about HDR10+ (ST 2094-40) metadata. nil when nobody asked — the default, because asking costs packet reads (see HDR10PlusScan) — and when there is no video track to ask about. Reporting only: nothing in the playlist or the display criteria reads it.
var textSubtitleTracks: [SubtitleTrackInfo] { get }Text subtitle tracks PrismCore turns into WebVTT renditions.
var bitmapSubtitleTracks: [SubtitleTrackInfo] { get }Bitmap subtitle tracks the host has to render itself.
var nativeReadiness: StreamCopyability { get }The single question the router asks: can PrismCore take this source today?
.streamCopy when video and at least one audio track copy as-is, .requiresAudioBridge when video copies but every audio track needs the phase-3 encoder, .unsupported when the video itself can't ride the pipeline (VP9, MPEG-2, …).
var preferredCopyableAudioTrack: AudioTrackInfo? { get }The first stream-copyable audio track, i.e. the one the v0 remuxer would pick (an AC3 compat track beats a DTS main track).
Generated from the public symbols of PrismCore 3.5.4. All types