Skip to main content

flv_core/
error.rs

1//! Public error type.
2
3#![forbid(unsafe_code)]
4
5/// Errors from FLV mux/demux.
6#[derive(Debug, thiserror::Error)]
7#[non_exhaustive]
8pub enum Error {
9    /// First 3 bytes are not `FLV`.
10    #[error("bad FLV signature (expected \"FLV\")")]
11    BadSignature,
12    /// `TagType` byte is not 8 (audio), 9 (video), or 18 (script data).
13    #[error("unknown FLV tag type {0} (expected 8, 9, or 18)")]
14    UnknownTagType(u8),
15    /// `Tag::data` is longer than FLV's 24-bit `DataSize` field can represent (16,777,215 bytes).
16    #[error("tag data of {0} bytes exceeds FLV's 24-bit DataSize field (max 16,777,215)")]
17    TagDataTooLarge(usize),
18    /// `Muxer::write_tag` was called before `Muxer::write_header`.
19    #[error("write_tag called before write_header")]
20    HeaderNotWritten,
21}