Skip to main content

Crate smooth_runtime

Crate smooth_runtime 

Source
Expand description

Sans-IO Smooth Streaming (MS-SSTR) client engine (issue #2370).

One engine owns everything a Smooth pull client does between bytes: manifest fetch and live refresh, <Protection> refusal, StreamIndex identity across a refresh, stream/quality selection, chunk enumeration, fragment URL resolution, first-fragment track-id discovery, the synthetic init segment, the tfxd timestamp base, the encrypted-fragment probe, retry/backoff, live join look-ahead and discontinuity. Manifest syntax is broadcast-smooth’s; codec glue and fMP4 demux are transmux’s.

The pull side is SmoothClient; the serving side is server::SmoothOrigin (feature std), which renders a live Manifest from a media_plane::Trunk and resolves fragment requests — the same split hls-runtime makes between its client and its server module, with multimux an adapter over it.

The shape follows dash-runtime’s DashClient: the host drives it with SmoothClient::poll (what to fetch next), SmoothClient::on_manifest, SmoothClient::on_fragment and SmoothClient::on_failure, and drains SmoothClient::next_output. Every instant is an argument in microseconds; no I/O happens and no clock is read inside the crate.

The wire syntax is MS-SSTR, transcribed in private/specs-verified/mpeg/transmux/smooth/ms-sstr.md.

Re-exports§

pub use client::Action;
pub use client::Dropped;
pub use client::FetchFailure;
pub use client::ManifestFault;
pub use client::Output;
pub use client::QualityInfo;
pub use client::QualitySelector;
pub use client::RequestId;
pub use client::SmoothClient;
pub use client::SmoothConfig;
pub use client::StreamId;
pub use error::SmoothError;
pub use server::FragmentLocation;std
pub use server::SmoothBody;std
pub use server::SmoothOrigin;std
pub use server::SmoothOriginConfig;std
pub use server::SmoothOriginError;std
pub use server::SmoothRequest;std
pub use server::StreamKey;std

Modules§

client
The Smooth client engine: SmoothClient and the types it exchanges with a host.
error
The engine’s fatal outcome: SmoothError.
serverstd
Smooth Streaming live origin engine (issue #2453): the client Manifest and fragment decision logic, driven from a shared media_plane::Trunk — the same shape as hls-runtime’s server module.