Add lib.rs

This commit is contained in:
2026-03-11 01:42:24 +08:00
parent 6a2616ef9a
commit 75b5b05332

36
src/lib.rs Normal file
View File

@@ -0,0 +1,36 @@
pub mod error;
pub mod metadata;
pub mod parser;
pub mod probe;
pub mod output;
pub use error::{ProbeError, Result};
pub use metadata::*;
pub use parser::parse_ffprobe_json;
pub use probe::run_ffprobe;
pub use output::{save_metadata, print_summary};
/// Convenience function to probe a video and get metadata
pub fn probe_video(video_path: &str) -> Result<metadata::VideoMetadata> {
let json_output = run_ffprobe(video_path)?;
let metadata = parse_ffprobe_json(&json_output, video_path)?;
Ok(metadata)
}
/// Convenience function to probe a video and save to file
pub fn probe_video_to_file(video_path: &str) -> Result<String> {
let metadata = probe_video(video_path)?;
let output_file = save_metadata(video_path, &metadata)?;
Ok(output_file)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_probe_video_file_not_found() {
let result = probe_video("nonexistent.mp4");
assert!(result.is_err());
}
}