#[non_exhaustive]pub enum Error {
Show 46 variants
Moq(Error),
Hang(Error),
Json(Error),
Binary(Error),
UnsupportedMode(String),
UnsupportedCompression(String),
ForeignBroadcast,
Cmaf(Error),
Mkv(Error),
Msf(Error),
Loc(Error),
Annexb(Error),
Aac(Error),
Opus(Error),
Flac(Error),
Mp3(Error),
H264(Error),
H265(Error),
Av1(Error),
Vp8(Error),
Vp9(Error),
Legacy(Error),
TimestampOverflow(TimeOverflow),
Mp4(Arc<Error>),
Io(Arc<Error>),
Url(String),
UnknownFormat(String),
NotSelfDescribing(String),
WrongKind {
format: String,
actual: &'static str,
wanted: &'static str,
},
MissingKeyframe(MissingKeyframe),
InvalidEnd(InvalidEnd),
TimestampRewind(TimestampRewind),
NotPublished,
NegativeFlvPts {
dts_ms: u64,
composition_time_ms: i32,
},
TimelineOverrun {
segment: u64,
duration: Duration,
duration_max: Duration,
},
TimelineDeferredPending,
TimelineDeferredRecord(u64),
Other(Arc<Error>),
InvalidTimescale(u32),
UnmappableTimestamp(String),
ReservedSection(String),
UnsupportedContainer(String),
EscapingBroadcast(String),
JitterDecreased,
DelayDecreased,
InvalidCapture,
}Expand description
Errors from moq-mux operations.
Most variants are delegations to underlying layers: moq_net::Error for
transport / pub-sub failures, hang::Error for catalog/codec parsing, the
per-format Errors for container shape problems, and the per-codec Errors for
bitstream parsing problems.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Moq(Error)
Error from the underlying moq-net transport.
Hang(Error)
Error from the hang catalog/codec layer.
Json(Error)
Error publishing or consuming JSON over a track.
Binary(Error)
Error publishing or consuming binary payloads over a track.
UnsupportedMode(String)
A catalog entry declares a track mode this build does not implement.
UnsupportedCompression(String)
A catalog entry declares a compression this build does not implement.
ForeignBroadcast
A locally published track’s catalog entry points at another broadcast.
Cmaf(Error)
Error parsing or building CMAF moof+mdat fragments.
Mkv(Error)
Error parsing or building MKV / WebM streams.
Msf(Error)
Error decoding the MSF catalog.
Loc(Error)
Error parsing or building LOC frames.
Annexb(Error)
Error parsing an Annex B NAL stream.
Aac(Error)
Error parsing AAC.
Opus(Error)
Error parsing Opus.
Flac(Error)
Error parsing FLAC.
Mp3(Error)
Error parsing MP3.
H264(Error)
Error parsing H.264.
H265(Error)
Error parsing H.265.
Av1(Error)
Error parsing AV1.
Vp8(Error)
Error parsing VP8.
Vp9(Error)
Error parsing VP9.
Legacy(Error)
Error parsing legacy audio (MP2 / AC-3 / E-AC-3).
TimestampOverflow(TimeOverflow)
Timestamp overflow when converting between timescales.
Mp4(Arc<Error>)
Error decoding or encoding an mp4 atom.
Io(Arc<Error>)
I/O error.
Url(String)
URL parse error.
UnknownFormat(String)
Unknown media format.
NotSelfDescribing(String)
A video format that a raw byte stream cannot be split into.
Only the self-delimiting codecs (Annex-B H.264/H.265, AV1 OBUs) carry their own frame
boundaries. The rest need length prefixes or an out-of-band config record, so they can only
be imported as whole frames via Track::video.
WrongKind
A format was handed to a constructor for a different kind of import.
Each entry point takes only the fields its kind can honor, so the format has to match: an audio format carries no video hint, and a container has no single rendition to label.
Fields
MissingKeyframe(MissingKeyframe)
A non-keyframe frame was received before any keyframe opened a group. A track joining mid-stream should skip frames until the first keyframe.
InvalidEnd(InvalidEnd)
An explicit video endpoint precedes its last frame.
TimestampRewind(TimestampRewind)
A frame’s timestamp sits below the live edge earlier groups reached.
NotPublished
A rendition was modified before its initial config was published.
NegativeFlvPts
A FLV video frame resolved to a negative presentation timestamp.
Fields
TimelineOverrun
A segment ran past the duration_max the
catalog advertised, so the timeline stopped publishing rather than contradict it. The
publisher declared a bound its media can’t honor.
Fields
TimelineDeferredPending
timeline::Producer::finish was called before its
deferred timeline::Segmenter completed and every record
was committed.
TimelineDeferredRecord(u64)
timeline::Producer::push received a pending record that
its timeline::Deferred did not yield.
Other(Arc<Error>)
Error from a muxer/demuxer that reports via anyhow (currently MPEG-TS).
Boxed in an Arc so the enum stays Clone (anyhow::Error is not).
InvalidTimescale(u32)
A timeline catalog section declared a timescale that isn’t a valid
moq_net::Timescale (zero, or too large).
UnmappableTimestamp(String)
A source timestamp cannot be mapped onto the broadcast clock: it would land before the broadcast began or outside the representable range.
ReservedSection(String)
Tried to set an application catalog section whose name collides with a
reserved media section (video/audio).
UnsupportedContainer(String)
A rendition declared a container kind this build does not recognize, so its
frames cannot be parsed. Such a rendition must be ignored, not guessed at.
EscapingBroadcast(String)
A rendition’s broadcast reference walks above the root, so it names no broadcast.
The root is the consumer’s authorized subtree, so such a reference is an attempt to
name content the consumer cannot reach. It rejects the whole catalog
(catalog::hang::Consumer) rather than the one
rendition, and is also what a direct Source::resolve /
Source::subscribe_track reports.
JitterDecreased
A rendition tried to lower jitter already advertised to subscribers.
DelayDecreased
A rendition tried to lower delay already advertised to subscribers.
InvalidCapture
A capture instant is ahead of the broadcast clock’s now, or before its epoch.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()