FFmpegIdentity

class FFmpegIdentity(val status: Int, val bypassed: Boolean, val bypassedStatus: Int, val cAbiVersion: String, val libraries: List<FFmpegLibraryIdentity>, val configurationsAgree: Boolean, val configurationsDisagreed: List<String>, val buildFFmpegRef: String, val buildLicenseFlavour: String, val buildProvisioningDir: String, val runtimeVersionInfo: String, val runtimeLicense: String, val provisioning: String)

The FFmpeg identity report: what this build was compiled against, what it is linked to, and whether the two are compatible.

Why this type exists. In the direction that matters, older headers against a newer runtime, every symbol resolves and the link succeeds while struct field offsets are wrong. 38 offsets were measured to move across one FFmpeg major, and the failure that follows is a wrong value read and then a crash inside FFmpeg's own code, or nothing visible at all. Version numbers alone do not even cover it: six libraries taken from two different builds can report six agreeing triples and still be a mixed install, which is what configurationsAgree is for.

KiteFFmpeg compares the two columns once per process, before anything allocates, and refuses to run on a combination it knows is unsafe. This report is what that refusal carries, and it is also readable on a healthy runtime as an ordinary diagnostic.

Constructors

Link copied to clipboard
constructor(status: Int, bypassed: Boolean, bypassedStatus: Int, cAbiVersion: String, libraries: List<FFmpegLibraryIdentity>, configurationsAgree: Boolean, configurationsDisagreed: List<String>, buildFFmpegRef: String, buildLicenseFlavour: String, buildProvisioningDir: String, runtimeVersionInfo: String, runtimeLicense: String, provisioning: String)

Properties

Link copied to clipboard

The FFmpeg release this artifact was built for, for example n8.0.

Link copied to clipboard

The FFmpeg licence flavour this artifact was built for, lgpl or gpl.

Link copied to clipboard

The directory the build resolved FFmpeg from.

Link copied to clipboard

True when a rejection was downgraded to a warning by the diagnostic escape hatch.

Link copied to clipboard

What status would have been if the escape hatch had not been used; 0 when it was not.

Link copied to clipboard

The version of KiteFFmpeg's own C surface, as major.minor.

Link copied to clipboard

Whether all six libraries report the same configure line. False means a mixed install.

Link copied to clipboard

The libraries whose configure line differed from libavutil's.

Link copied to clipboard

True when KiteFFmpeg is willing to run against this runtime.

Link copied to clipboard

One row per FFmpeg library, in the order libavutil, libavcodec, libavformat, libavfilter, libswscale, libswresample.

Link copied to clipboard

Every row whose verdict is not ok. Empty on a healthy runtime.

Link copied to clipboard

One actionable sentence: what to link, or how to rebuild. Never empty.

Link copied to clipboard

The linked runtime's licence string, from FFmpeg's avutil_license. See buildLicenseFlavour.

Link copied to clipboard

The linked runtime's own version string, from FFmpeg's av_version_info.

Link copied to clipboard
val status: Int

0 when the runtime is acceptable, negative when it is not.

Functions

Link copied to clipboard

The whole report as one multi-line block, which is what an exception message and a bug report want.

Link copied to clipboard
open override fun toString(): String