Declaraciones públicas de media-core/container/facts.zig (media-core: motor de medios).
apps/docs/generated/zig/media-engine.jsonPágina generada desde
native/zig/media-core/media_engine.zig. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
Modelo de facts de contenedor (StreamInfo / ContainerInfo): la estructura
que emiten AMBOS motores (dec-0110 §1: engine=zig y engine=libav dan
la misma forma; dec-0109 propone esta). Promovido de
spikes/zig-container-facts (w2/zig-demux-spike).
Son hechos observados en las cabeceras, sin política: qué códec, qué dimensiones, qué color, qué índice de keyframes. La política (ranking de códecs, fallback, selección de pista) no vive aquí.
La memoria de un ContainerInfo vive en su arena (codec_private,
strings, streams), salvo el índice de keyframes de cada stream, que es un
slice de tamaño exacto del allocator del probe (una arena reserva nodos
1,5 veces mayores que la petición, y el índice es lo único grande).
deinit libera las dos cosas.
facts.Formattype · línea 19
pub const Format = enumSin ///.
facts.Kindtype · línea 21
pub const Kind = enumSin ///.
facts.Codectype · línea 24
pub const Codec = enumNombres alineados con codec_name de ffprobe para poder comparar 1:1.
facts.Codec.fromNamefn · línea 55
pub fn fromName(name: []const u8) CodecInverse of @tagName (the ffprobe codec_name spelling).
facts.Chromatype · línea 60
pub const Chroma = enumSin ///.
facts.Chroma.pixFmtfn · línea 66
pub fn pixFmt(self: Chroma, bit_depth: u8) ?[]const u8Sin ///.
facts.Colourtype · línea 97
pub const Colour = structCode points ISO/IEC 23091-2 (H.273). null = el contenedor no lo declara.
facts.Colour.mergefn · línea 107
pub fn merge(self: *Colour, other: Colour) voidSin ///.
facts.HdrFormattype · línea 118
pub const HdrFormat = enumSin ///.
facts.Rationaltype · línea 120
pub const Rational = structSin ///.
facts.Rational.reducedfn · línea 124
pub fn reduced(self: Rational) RationalSin ///.
facts.Rational.approxfn · línea 133
pub fn approx(self: Rational, max: u64) RationalMejor aproximación con numerador y denominador <= max (fracciones
continuas con semiconvergente final, mismo criterio que av_reduce).
facts.Keyframetype · línea 160
pub const Keyframe = structSin ///.
facts.IndexSourcetype · línea 169
pub const IndexSource = enumDe dónde sale el índice de keyframes y si está completo.
facts.Issuetype · línea 186
pub const Issue = enumEstructuras opcionales que estaban presentes pero no se pudieron decodificar.
Los campos que dependían de ellas quedan en null; la pista sigue siendo válida.
facts.StreamInfotype · línea 192
pub const StreamInfo = structSin ///.
facts.StreamInfo.pixFmtfn · línea 229
pub fn pixFmt(self: *const StreamInfo) ?[]const u8Sin ///.
facts.StreamInfo.profileNamefn · línea 235
pub fn profileName(self: *const StreamInfo) ?[]const u8Nombre de perfil con la misma ortografía que ffprobe.
facts.StreamInfo.deriveHdrfn · línea 282
pub fn deriveHdr(self: *StreamInfo) voidSin ///.
facts.IndexLocationtype · línea 292
pub const IndexLocation = enumSin ///.
facts.ContainerInfotype · línea 296
pub const ContainerInfo = structSin ///.
facts.ContainerInfo.deinitfn · línea 315
pub fn deinit(self: *ContainerInfo) voidSin ///.
facts.primariesNamefn · línea 323
pub fn primariesName(v: u8) ?[]const u8Traducción de los code points de color a los nombres de ffprobe.
facts.transferNamefn · línea 340
pub fn transferName(v: u8) ?[]const u8Sin ///.
facts.matrixNamefn · línea 359
pub fn matrixName(v: u8) ?[]const u8Sin ///.
container.ContainerInfotype · línea 296
pub const ContainerInfo = structSin ///.
container.ContainerInfo.deinitfn · línea 315
pub fn deinit(self: *ContainerInfo) voidSin ///.
contract.Rationaltype · línea 120
pub const Rational = structSin ///.
contract.Rational.reducedfn · línea 124
pub fn reduced(self: Rational) RationalSin ///.
contract.Rational.approxfn · línea 133
pub fn approx(self: Rational, max: u64) RationalMejor aproximación con numerador y denominador <= max (fracciones
continuas con semiconvergente final, mismo criterio que av_reduce).