#[non_exhaustive]pub struct SegmentEntry {
pub bytes: Bytes,
pub sequence_number: u32,
pub duration: Duration,
pub timeline_position: Timestamp,
pub meta: SegmentMeta,
}std only.Expand description
One finished media segment recorded by the segment log, in playlist order.
Reuses transmux::SegmentMeta for exactly what it already models — the
per-segment discontinuity bit transmux::Segmenter::take_ready_with_meta
returns — by holding the whole type rather than copying its one field out
into a discontinuous: bool of this struct’s own; a field SegmentMeta
gains later is picked up here for free. It does not fit whole,
though, and this struct says so rather than pretending it does: nothing
in transmux computes a segment’s wall-clock duration, its moof/mfhd
sequence number, or its position on this trunk’s absolute timeline —
those are properties of the log a segment lands in, not of the segmenter
that produced its bytes, so they are new fields here, supplied by
whoever is feeding SegmentWriter::publish_segment, exactly as
track_id/RetentionClass are supplied by whoever feeds
TrunkWriter::publish.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.bytes: BytesThe segment’s encoded bytes. Bytes, not Vec<u8>, for the same
reason as transmux::Sample::data: fan-out to every
SegmentCursor reading this entry is a refcount bump, not a copy —
see Zero-copy fan-out.
sequence_number: u32This segment’s moof/mfhd sequence number (1-based, matching
transmux::Segmenter’s own numbering) — what a consumer needs to
name the segment in a playlist or manifest.
duration: DurationThis segment’s duration, wall-clock — what a consumer needs for
#EXTINF/<S d="...">.
timeline_position: TimestampThis segment’s start position on the trunk’s absolute timeline.
meta: SegmentMetaThe discontinuity bit from the segmenter itself; see this struct’s own doc for why it is reused by embedding the whole type, not re-derived as a field of this struct.
Implementations§
Trait Implementations§
Source§impl Clone for SegmentEntry
impl Clone for SegmentEntry
Source§fn clone(&self) -> SegmentEntry
fn clone(&self) -> SegmentEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more