Referencia Zigmedia-core: motor de medios

media-core/container/matroska.zig

Declaraciones públicas de media-core/container/matroska.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.

Facts de Matroska / WebM leyendo sólo cabeceras. styx:parser (dec-0117 §6: S3/S4 apply — untrusted media bytes).

Recorrido: cabecera EBML -> Segment -> elementos de nivel 1 en orden hasta el primer Cluster (SeekHead, Info, Tracks y, si va delante, Cues). Lo que esté detrás de los Clusters (normalmente Cues) se alcanza con la posición que declara el SeekHead: una lectura directa, sin escanear el payload. VP9 sin CodecPrivate necesita además la cabecera del primer frame, que se lee del primer Cluster con una lectura corta.

matroska.id

type · línea 23

pub const id = struct

Sin ///.

matroska.id.ebml

const · línea 24

pub const ebml: u32 = 0x1A45DFA3

Sin ///.

matroska.id.doc_type

const · línea 25

pub const doc_type: u32 = 0x4282

Sin ///.

matroska.id.segment

const · línea 26

pub const segment: u32 = 0x18538067

Sin ///.

matroska.id.seek_head

const · línea 27

pub const seek_head: u32 = 0x114D9B74

Sin ///.

matroska.id.seek

const · línea 28

pub const seek: u32 = 0x4DBB

Sin ///.

matroska.id.seek_id

const · línea 29

pub const seek_id: u32 = 0x53AB

Sin ///.

matroska.id.seek_position

const · línea 30

pub const seek_position: u32 = 0x53AC

Sin ///.

matroska.id.info

const · línea 31

pub const info: u32 = 0x1549A966

Sin ///.

matroska.id.timestamp_scale

const · línea 32

pub const timestamp_scale: u32 = 0x2AD7B1

Sin ///.

matroska.id.duration

const · línea 33

pub const duration: u32 = 0x4489

Sin ///.

matroska.id.tracks

const · línea 34

pub const tracks: u32 = 0x1654AE6B

Sin ///.

matroska.id.track_entry

const · línea 35

pub const track_entry: u32 = 0xAE

Sin ///.

matroska.id.track_number

const · línea 36

pub const track_number: u32 = 0xD7

Sin ///.

matroska.id.track_uid

const · línea 37

pub const track_uid: u32 = 0x73C5

Sin ///.

matroska.id.track_type

const · línea 38

pub const track_type: u32 = 0x83

Sin ///.

matroska.id.flag_default

const · línea 39

pub const flag_default: u32 = 0x88

Sin ///.

matroska.id.flag_forced

const · línea 40

pub const flag_forced: u32 = 0x55AA

Sin ///.

matroska.id.default_duration

const · línea 41

pub const default_duration: u32 = 0x23E383

Sin ///.

matroska.id.name

const · línea 42

pub const name: u32 = 0x536E

Sin ///.

matroska.id.language

const · línea 43

pub const language: u32 = 0x22B59C

Sin ///.

matroska.id.language_bcp47

const · línea 44

pub const language_bcp47: u32 = 0x22B59D

Sin ///.

matroska.id.codec_id

const · línea 45

pub const codec_id: u32 = 0x86

Sin ///.

matroska.id.codec_private

const · línea 46

pub const codec_private: u32 = 0x63A2

Sin ///.

matroska.id.video

const · línea 47

pub const video: u32 = 0xE0

Sin ///.

matroska.id.pixel_width

const · línea 48

pub const pixel_width: u32 = 0xB0

Sin ///.

matroska.id.pixel_height

const · línea 49

pub const pixel_height: u32 = 0xBA

Sin ///.

matroska.id.display_width

const · línea 50

pub const display_width: u32 = 0x54B0

Sin ///.

matroska.id.display_height

const · línea 51

pub const display_height: u32 = 0x54BA

Sin ///.

matroska.id.display_unit

const · línea 52

pub const display_unit: u32 = 0x54B2

Sin ///.

matroska.id.colour

const · línea 53

pub const colour: u32 = 0x55B0

Sin ///.

matroska.id.matrix

const · línea 54

pub const matrix: u32 = 0x55B1

Sin ///.

matroska.id.bits_per_channel

const · línea 55

pub const bits_per_channel: u32 = 0x55B2

Sin ///.

matroska.id.chroma_sub_horz

const · línea 56

pub const chroma_sub_horz: u32 = 0x55B3

Sin ///.

matroska.id.chroma_sub_vert

const · línea 57

pub const chroma_sub_vert: u32 = 0x55B4

Sin ///.

matroska.id.range

const · línea 58

pub const range: u32 = 0x55B9

Sin ///.

matroska.id.transfer

const · línea 59

pub const transfer: u32 = 0x55BA

Sin ///.

matroska.id.primaries

const · línea 60

pub const primaries: u32 = 0x55BB

Sin ///.

matroska.id.max_cll

const · línea 61

pub const max_cll: u32 = 0x55BC

Sin ///.

matroska.id.max_fall

const · línea 62

pub const max_fall: u32 = 0x55BD

Sin ///.

matroska.id.mastering

const · línea 63

pub const mastering: u32 = 0x55D0

Sin ///.

matroska.id.audio

const · línea 64

pub const audio: u32 = 0xE1

Sin ///.

matroska.id.sampling_frequency

const · línea 65

pub const sampling_frequency: u32 = 0xB5

Sin ///.

matroska.id.channels

const · línea 66

pub const channels: u32 = 0x9F

Sin ///.

matroska.id.bit_depth

const · línea 67

pub const bit_depth: u32 = 0x6264

Sin ///.

matroska.id.block_addition_mapping

const · línea 68

pub const block_addition_mapping: u32 = 0x41E4

Sin ///.

matroska.id.block_add_id_type

const · línea 69

pub const block_add_id_type: u32 = 0x41E7

Sin ///.

matroska.id.cues

const · línea 70

pub const cues: u32 = 0x1C53BB6B

Sin ///.

matroska.id.cue_point

const · línea 71

pub const cue_point: u32 = 0xBB

Sin ///.

matroska.id.cue_time

const · línea 72

pub const cue_time: u32 = 0xB3

Sin ///.

matroska.id.cue_track_positions

const · línea 73

pub const cue_track_positions: u32 = 0xB7

Sin ///.

matroska.id.cue_track

const · línea 74

pub const cue_track: u32 = 0xF7

Sin ///.

matroska.id.cue_cluster_position

const · línea 75

pub const cue_cluster_position: u32 = 0xF1

Sin ///.

matroska.id.cluster

const · línea 76

pub const cluster: u32 = 0x1F43B675

Sin ///.

matroska.id.tags

const · línea 77

pub const tags: u32 = 0x1254C367

Sin ///.

matroska.id.chapters

const · línea 78

pub const chapters: u32 = 0x1043A770

Sin ///.

matroska.id.attachments

const · línea 79

pub const attachments: u32 = 0x1941A469

Sin ///.

matroska.id.void_elem

const · línea 80

pub const void_elem: u32 = 0xEC

Sin ///.

matroska.id.crc32

const · línea 81

pub const crc32: u32 = 0xBF

Sin ///.

matroska.id.simple_block

const · línea 82

pub const simple_block: u32 = 0xA3

Sin ///.

matroska.id.block_group

const · línea 83

pub const block_group: u32 = 0xA0

Sin ///.

matroska.id.block

const · línea 84

pub const block: u32 = 0xA1

Sin ///.

matroska.id.content_encodings

const · línea 85

pub const content_encodings: u32 = 0x6D80

Sin ///.

matroska.id.content_encoding

const · línea 86

pub const content_encoding: u32 = 0x6240

Sin ///.

matroska.id.content_encoding_scope

const · línea 87

pub const content_encoding_scope: u32 = 0x5032

Sin ///.

matroska.id.content_encoding_type

const · línea 88

pub const content_encoding_type: u32 = 0x5033

Sin ///.

matroska.id.content_compression

const · línea 89

pub const content_compression: u32 = 0x5034

Sin ///.

matroska.id.content_comp_algo

const · línea 90

pub const content_comp_algo: u32 = 0x4254

Sin ///.

matroska.id.content_comp_settings

const · línea 91

pub const content_comp_settings: u32 = 0x4255

Sin ///.

matroska.id.cluster_timestamp

const · línea 92

pub const cluster_timestamp: u32 = 0xE7

Sin ///.

matroska.id.codec_delay

const · línea 93

pub const codec_delay: u32 = 0x56AA

Sin ///.

matroska.id.block_duration

const · línea 94

pub const block_duration: u32 = 0x9B

Sin ///.

matroska.id.reference_block

const · línea 95

pub const reference_block: u32 = 0xFB

Sin ///.

matroska.Layout

type · línea 101

pub const Layout = struct

Where the demuxer finds what the facts do not carry: track numbers, the timestamp scale, header stripping and the segment/cluster positions. Everything lives in the ContainerInfo arena.

matroska.TrackLayout

type · línea 111

pub const TrackLayout = struct

Sin ///.

matroska.unknown_size

const · línea 125

pub const unknown_size = std.math.maxInt(u64)

Sin ///.

matroska.Elem

type · línea 152

pub const Elem = struct

Sin ///.

matroska.readId

fn · línea 158

pub fn readId(c: *BoundedReader) Error!u32

Lee un ID EBML (marcador incluido). Longitud 1..4.

matroska.readSize

fn · línea 168

pub fn readSize(c: *BoundedReader) Error!u64

Lee un tamaño EBML (vint 1..8). Todo unos = tamaño desconocido.

matroska.ElemIter

type · línea 186

pub const ElemIter = struct

Iterador de elementos hijos en memoria. Un hijo de tamaño desconocido se extiende hasta el final del padre.

matroska.ElemIter.next

fn · línea 190

pub fn next(self: *ElemIter) Error!?Elem

Sin ///.

matroska.uint

fn · línea 203

pub fn uint(data: []const u8) Error!u64

Sin ///.

matroska.parse

fn · línea 249

pub fn parse(gpa: std.mem.Allocator, arena: std.mem.Allocator, rr: *RangeReader, budget: *bytes.Budget, info: *facts.ContainerInfo, layout: ?*Layout) Error!void

gpa es el allocator del probe (dueño de los índices de keyframes); arena, la del ContainerInfo (todo lo demás).

matroska.isLevel1

fn · línea 361

pub fn isLevel1(eid: u32) bool

Sin ///.

matroska.id
matroska.id.ebml
matroska.id.doc_type
matroska.id.segment
matroska.id.seek_head
matroska.id.seek
matroska.id.seek_id
matroska.id.seek_position
matroska.id.info
matroska.id.timestamp_scale
matroska.id.duration
matroska.id.tracks
matroska.id.track_entry
matroska.id.track_number
matroska.id.track_uid
matroska.id.track_type
matroska.id.flag_default
matroska.id.flag_forced
matroska.id.default_duration
matroska.id.name
matroska.id.language
matroska.id.language_bcp47
matroska.id.codec_id
matroska.id.codec_private
matroska.id.video
matroska.id.pixel_width
matroska.id.pixel_height
matroska.id.display_width
matroska.id.display_height
matroska.id.display_unit
matroska.id.colour
matroska.id.matrix
matroska.id.bits_per_channel
matroska.id.chroma_sub_horz
matroska.id.chroma_sub_vert
matroska.id.range
matroska.id.transfer
matroska.id.primaries
matroska.id.max_cll
matroska.id.max_fall
matroska.id.mastering
matroska.id.audio
matroska.id.sampling_frequency
matroska.id.channels
matroska.id.bit_depth
matroska.id.block_addition_mapping
matroska.id.block_add_id_type
matroska.id.cues
matroska.id.cue_point
matroska.id.cue_time
matroska.id.cue_track_positions
matroska.id.cue_track
matroska.id.cue_cluster_position
matroska.id.cluster
matroska.id.tags
matroska.id.chapters
matroska.id.attachments
matroska.id.void_elem
matroska.id.crc32
matroska.id.simple_block
matroska.id.block_group
matroska.id.block
matroska.id.content_encodings
matroska.id.content_encoding
matroska.id.content_encoding_scope
matroska.id.content_encoding_type
matroska.id.content_compression
matroska.id.content_comp_algo
matroska.id.content_comp_settings
matroska.id.cluster_timestamp
matroska.id.codec_delay
matroska.id.block_duration
matroska.id.reference_block
matroska.Layout
matroska.TrackLayout
matroska.unknown_size
matroska.Elem
matroska.readId
matroska.readSize
matroska.ElemIter
matroska.ElemIter.next
matroska.uint
matroska.parse
matroska.isLevel1