diff --git a/src/lib.rs b/src/lib.rs index fd95b83..3d56c23 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,6 +13,7 @@ pub use util::media; pub use util::picture; pub use util::color; pub use util::chroma; +pub use util::time; pub use util::frame::{self, Frame}; #[cfg(feature = "format")] diff --git a/src/util/mod.rs b/src/util/mod.rs index eaddfd9..67c3ca8 100644 --- a/src/util/mod.rs +++ b/src/util/mod.rs @@ -7,6 +7,7 @@ pub mod color; pub mod format; pub mod frame; pub mod chroma; +pub mod time; use std::ffi::CStr; use std::str::from_utf8_unchecked; diff --git a/src/util/time.rs b/src/util/time.rs new file mode 100644 index 0000000..7f3b22a --- /dev/null +++ b/src/util/time.rs @@ -0,0 +1,29 @@ +use ffi::*; +use ::Error; + +pub fn current() -> i64 { + unsafe { + av_gettime() as i64 + } +} + +pub fn relative() -> i64 { + unsafe { + av_gettime_relative() as i64 + } +} + +pub fn is_monotonic() -> bool { + unsafe { + av_gettime_relative_is_monotonic() != 0 + } +} + +pub fn sleep(usec: u32) -> Result<(), Error> { + unsafe { + match av_usleep(usec) { + 0 => Ok(()), + e => Err(Error::from(e)) + } + } +}