1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! MPEG2-TS decoding/encoding library.
//!
//! # References
//!
//! ### Specification
//!
//! - ISO/IEC 13818-1
//! - ITU-T Rec. H.222.0
//!
//! ### Wikipedia
//!
//! - [MPEG transport stream](https://en.wikipedia.org/wiki/MPEG_transport_stream)
//! - [Program-specific information](https://en.wikipedia.org/wiki/Program-specific_information)
//! - [Packetized elementary stream](https://en.wikipedia.org/wiki/Packetized_elementary_stream)
#![warn(missing_docs)]
#[macro_use]
extern crate trackable;

pub use error::{Error, ErrorKind};

macro_rules! track_io {
    ($expr:expr) => {
        $expr.map_err(|e: ::std::io::Error| {
            use trackable::error::ErrorKindExt;
            track!(crate::Error::from(crate::ErrorKind::Other.cause(e)))
        })
    };
}

pub mod es;
pub mod pes;
pub mod time;
pub mod ts;

mod crc;
mod error;
mod util;

/// This crate specific `Result` type.
pub type Result<T> = std::result::Result<T, Error>;