diff --git a/examples/simple.rs b/examples/simple.rs new file mode 100644 index 0000000..783150a --- /dev/null +++ b/examples/simple.rs @@ -0,0 +1,27 @@ +use mp4; +use std::env; +use std::fs::File; + +fn main() { + let args: Vec = env::args().collect(); + + if args.len() < 2 { + println!("Usage: mp4dump "); + std::process::exit(1); + } + + let filename = &args[1]; + let f = File::open(filename).unwrap(); + let mp4 = mp4::read_mp4(f).unwrap(); + + println!("Major Brand: {}", mp4.major_brand()); + + for track in mp4.tracks().iter() { + println!("Track: #{}({}) {} {}", + track.track_id(), + track.language(), + track.track_type().unwrap(), + track.box_type().unwrap(), + ); + } +} \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index 2b6b213..5cfa938 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,6 @@ +use std::io::{BufReader}; +use std::fs::File; + mod error; pub use error::Error; @@ -17,3 +20,10 @@ pub use reader::Mp4Reader; mod writer; pub use writer::{Mp4Config, Mp4Writer}; + +pub fn read_mp4(f: File) -> Result>> { + let size = f.metadata()?.len(); + let reader = BufReader::new(f); + let mp4 = reader::Mp4Reader::read_header(reader, size)?; + Ok(mp4) +} \ No newline at end of file