Referencia Zigmedia-core: motor de medios

media-core/container/facts.zig

Declaraciones públicas de media-core/container/facts.zig (media-core: motor de medios).

ImplementadoSin versión del tren todavía· generada desde apps/docs/generated/zig/media-engine.json

Página generada desde native/zig/media-core/media_engine.zig. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla 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.Format

type · línea 19

pub const Format = enum

Sin ///.

facts.Kind

type · línea 21

pub const Kind = enum

Sin ///.

facts.Codec

type · línea 24

pub const Codec = enum

Nombres alineados con codec_name de ffprobe para poder comparar 1:1.

facts.Codec.fromName

fn · línea 55

pub fn fromName(name: []const u8) Codec

Inverse of @tagName (the ffprobe codec_name spelling).

facts.Chroma

type · línea 60

pub const Chroma = enum

Sin ///.

facts.Chroma.pixFmt

fn · línea 66

pub fn pixFmt(self: Chroma, bit_depth: u8) ?[]const u8

Sin ///.

facts.Colour

type · línea 97

pub const Colour = struct

Code points ISO/IEC 23091-2 (H.273). null = el contenedor no lo declara.

facts.Colour.merge

fn · línea 107

pub fn merge(self: *Colour, other: Colour) void

Sin ///.

facts.HdrFormat

type · línea 118

pub const HdrFormat = enum

Sin ///.

facts.Rational

type · línea 120

pub const Rational = struct

Sin ///.

facts.Rational.reduced

fn · línea 124

pub fn reduced(self: Rational) Rational

Sin ///.

facts.Rational.approx

fn · línea 133

pub fn approx(self: Rational, max: u64) Rational

Mejor aproximación con numerador y denominador <= max (fracciones continuas con semiconvergente final, mismo criterio que av_reduce).

facts.Keyframe

type · línea 160

pub const Keyframe = struct

Sin ///.

facts.IndexSource

type · línea 169

pub const IndexSource = enum

De dónde sale el índice de keyframes y si está completo.

facts.Issue

type · línea 186

pub const Issue = enum

Estructuras 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.StreamInfo

type · línea 192

pub const StreamInfo = struct

Sin ///.

facts.StreamInfo.pixFmt

fn · línea 229

pub fn pixFmt(self: *const StreamInfo) ?[]const u8

Sin ///.

facts.StreamInfo.profileName

fn · línea 235

pub fn profileName(self: *const StreamInfo) ?[]const u8

Nombre de perfil con la misma ortografía que ffprobe.

facts.StreamInfo.deriveHdr

fn · línea 282

pub fn deriveHdr(self: *StreamInfo) void

Sin ///.

facts.IndexLocation

type · línea 292

pub const IndexLocation = enum

Sin ///.

facts.ContainerInfo

type · línea 296

pub const ContainerInfo = struct

Sin ///.

facts.ContainerInfo.deinit

fn · línea 315

pub fn deinit(self: *ContainerInfo) void

Sin ///.

facts.primariesName

fn · línea 323

pub fn primariesName(v: u8) ?[]const u8

Traducción de los code points de color a los nombres de ffprobe.

facts.transferName

fn · línea 340

pub fn transferName(v: u8) ?[]const u8

Sin ///.

facts.matrixName

fn · línea 359

pub fn matrixName(v: u8) ?[]const u8

Sin ///.

container.ContainerInfo

type · línea 296

pub const ContainerInfo = struct

Sin ///.

container.ContainerInfo.deinit

fn · línea 315

pub fn deinit(self: *ContainerInfo) void

Sin ///.

contract.Rational

type · línea 120

pub const Rational = struct

Sin ///.

contract.Rational.reduced

fn · línea 124

pub fn reduced(self: Rational) Rational

Sin ///.

contract.Rational.approx

fn · línea 133

pub fn approx(self: Rational, max: u64) Rational

Mejor aproximación con numerador y denominador <= max (fracciones continuas con semiconvergente final, mismo criterio que av_reduce).