#[non_exhaustive]pub struct PartEntry {
pub bytes: Bytes,
pub segment_number: u32,
pub part_index: u32,
pub duration: Duration,
pub independent: bool,
}std only.Expand description
One LL-HLS partial segment (“part”) of the segment currently being
written — RFC 8216bis §4.4.4.9’s independently-fetchable CMAF chunk,
addressable by (segment_number, part_index) the way a client actually
asks for one (_HLS_msn/_HLS_part, or a part-<seq>.<idx>.m4s URI). See
The live-part log.
Does not reuse transmux::ll_hls::PartInfo whole, for the same reason
SegmentEntry does not reuse transmux::ll_hls::SegmentInfo whole:
PartInfo::bytes is Vec<u8>, and copying it into a Bytes here to get
zero-copy fan-out (Zero-copy fan-out)
would be exactly one copy per part, on the one path this module exists to
keep copy-free; a caller publishing a part therefore builds a
bytes::Bytes directly (e.g. from the encoder’s own output buffer)
instead of routing through Vec<u8> first.
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 part’s encoded bytes: a bare moof+mdat CMAF fragment (no
styp). Bytes, not Vec<u8> — fan-out to every reader of this
entry is a refcount bump, not a copy; see
Zero-copy fan-out.
segment_number: u32The parent segment’s sequence number — matches
SegmentEntry::sequence_number once that segment closes.
part_index: u320-based index of this part within its parent segment.
duration: DurationThis part’s duration, wall-clock.
independent: booltrue when this part’s first sample is a sync sample, so it begins
with an independently decodable frame (RFC 8216bis’s
INDEPENDENT=YES).