C API for mp4parse module.
Parses ISO Base Media Format aka video/mp4 streams.
Examples
extern crate mp4parse_capi;
use Read;
extern
let mut file = open.unwrap;
let io = mp4parse_io ;
unsafe
C API for mp4parse module.
Parses ISO Base Media Format aka video/mp4 streams.
extern crate mp4parse_capi;
use std::io::Read;
extern fn buf_read(buf: *mut u8, size: usize, userdata: *mut std::os::raw::c_void) -> isize {
let mut input: &mut std::fs::File = unsafe { &mut *(userdata as *mut _) };
let mut buf = unsafe { std::slice::from_raw_parts_mut(buf, size) };
match input.read(&mut buf) {
Ok(n) => n as isize,
Err(_) => -1,
}
}
let mut file = std::fs::File::open("../mp4parse/tests/minimal.mp4").unwrap();
let io = mp4parse_capi::mp4parse_io {
read: buf_read,
userdata: &mut file as *mut _ as *mut std::os::raw::c_void
};
unsafe {
let parser = mp4parse_capi::mp4parse_new(&io);
let rv = mp4parse_capi::mp4parse_read(parser);
assert_eq!(rv, mp4parse_capi::mp4parse_error::MP4PARSE_OK);
mp4parse_capi::mp4parse_free(parser);
}