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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
pub mod decoder; pub use self::decoder::Decoder; pub mod video; pub use self::video::Video; pub mod audio; pub use self::audio::Audio; pub mod subtitle; pub use self::subtitle::Subtitle; pub mod slice; pub mod conceal; pub use self::conceal::Conceal; pub mod check; pub use self::check::Check; pub mod opened; pub use self::opened::Opened; use std::ffi::CString; use ffi::*; use codec::Context; use ::Codec; use codec::Id; pub fn new() -> Decoder { Context::new().decoder() } pub fn find(id: Id) -> Option<Codec> { unsafe { let ptr = avcodec_find_decoder(id.into()); if ptr.is_null() { None } else { Some(Codec::wrap(ptr)) } } } pub fn find_by_name(name: &str) -> Option<Codec> { unsafe { let name = CString::new(name).unwrap(); let ptr = avcodec_find_decoder_by_name(name.as_ptr()); if ptr.is_null() { None } else { Some(Codec::wrap(ptr)) } } }