blob: 81e4585a7162b2f8599e952622562ce26f18f18c [file] [log] [blame] [edit]
//! C FFI of the V4L2R crate.
//!
//! This crate provides a C API that can be used by client programs to make use
//! of the features exported by this crate. For now it strictly focuses on
//! stateful decoders.
use log::debug;
pub mod decoder;
pub mod memory;
static INIT: std::sync::Once = std::sync::Once::new();
/// Initialize the V4L2R library. This only sets up the proper hooks for
/// logging, so although it is not a hard requirement to call this function,
/// failure to do so will result in no logs being printed.
#[no_mangle]
pub extern "C" fn v4l2r_init() {
INIT.call_once(|| {
#[cfg(feature = "env_logger")]
env_logger::builder().format_timestamp(None).init();
#[cfg(feature = "android")]
android_logger::init_once(
android_logger::Config::default().with_min_level(log::Level::Trace),
);
});
debug!("v4l2r initialized");
}