Declaraciones públicas de transmux/cmaf_muxer.zig (transmux).
apps/docs/generated/zig/transmux.jsonPágina generada desde
native/zig/transmux/transmux.zig. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
fMP4-CMAF fragment muxer of engine = zig (clean-room; dec-0110 §1.1).
Header (ftyp + moov with empty sample tables + mvex/trex) built from
the facts of the selected tracks; each fragment is moof (mfhd, one
traf per track with samples: tfhd default-base-is-moof, tfdt v1,
trun v1 with duration, size, flags and signed composition offset per
sample) followed by one mdat holding each track's samples contiguously,
in track order.
Timing rules shared with engine = libav (so a fragment of each engine
carries the same tfdt/trun, see timebase.outputTimescale):
timebase.rescale
(av_rescale_q rounding);duration (or until end_dts when the container declared none);DtsMap), not the muxer's.cmaf_muxer.passthroughconst · línea 37
pub const passthrough = [_]facts.Codec{ .h264, .hevc, .av1, .vp9, .aac, .mp3, .opus, .flac, .ac3, .eac3 }Codecs this muxer writes a sample entry for (the capability engine=zig
declares for fMP4-CMAF).
cmaf_muxer.CmafMuxertype · línea 45
pub const CmafMuxer = structSin ///.
cmaf_muxer.CmafMuxer.openfn · línea 57
pub fn open(gpa: std.mem.Allocator, specs: []const contract.TrackSpec) EngineError!*CmafMuxerSin ///.
cmaf_muxer.CmafMuxer.deinitfn · línea 89
pub fn deinit(self: *CmafMuxer) voidSin ///.
cmaf_muxer.CmafMuxer.writeFragmentfn · línea 350
pub fn writeFragment(self: *CmafMuxer, gpa: std.mem.Allocator, sequence: u32, samples: []const contract.TrackSamples, out: *std.ArrayList(u8)) EngineError!voidSin ///.
cmaf_muxer.CmafMuxer.remuxerfn · línea 441
pub fn remuxer(self: *CmafMuxer) contract.RemuxerSin ///.