7.21.0 - The stream format a stats panel needs
·
11 commits
to main
since this release
A minor release with additive public API for a host's stats panel. No behaviour change on any playback route.
Added
sourceVideoStreamFormatandSourceProbe.videoStreamFormat. AVideoStreamFormatwith the source video stream'spixelFormat(yuv420p10le),bitDepth,colorPrimaries,transfer,matrix,rangeandprofile(Main 10), in libav's names as the container and the probe's decoder declared them.colorPrimariesLabel,transferLabel,matrixLabelandrangeLabelgive the names a viewer reads ("BT.2020", "PQ (SMPTE ST 2084)", "BT.2020 NCL", "Limited"). A field the stream leaves unspecified stays nil instead of reading as BT.709. (#658)decodedVideoFormat. ADecodedVideoFormat: what the engine's own decoder actually produced (frame, aVideoStreamFormat) and the CoreVideo buffer it was displayed from (pixelBufferFormat,420v/x420, withpixelBufferLabelreading "P010 (x420)"). It is republished when either changes mid-stream. It is nil on every native route by design: AVPlayer decodes there and no frame passes through the engine, so a panel should showsourceVideoStreamFormatand name AVPlayer as the decoder rather than infer a pixel format nobody observed. (#658)TrackInfoaudio detail.sampleRate,bitsPerSample(0 where the codec has no fixed depth: AAC, AC-3, E-AC-3 and Opus decode to float),sampleFormat(fltp,s32),channelLayout(5.1(side)) andprofile. The profile is where DTS:X ("DTS-HD MA + DTS:X") and TrueHD Atmos ("Dolby TrueHD + Dolby Atmos") show up;isAtmosstill covers E-AC-3 JOC only. All new initializer parameters have defaults, so existing call sites compile unchanged. (#658)
Tooling
aetherctl probeprints the pixel format, depth, profile and colour description of the video stream, and rate, depth, sample format, layout and profile per audio track.aetherctl playprints aDECODEDline wheneverdecodedVideoFormatchanges:DECODED yuv420p depth=8 ... -> NV12 (420v)on a VP9 source (software route), nothing on an HEVC source (loopback route).
Full changelog: CHANGELOG.md · 7.20.1...7.21.0