diff --git a/src/main.rs b/src/main.rs index 10f2842bec690c67173c0d534da92ee9e7a61c86..b6c2e49bde5a5128dd848a72fe41eca76b7df496 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,7 @@ use crate::util::media_time::MediaTime; fn main() -> Result<(), failure::Error> { thumbnail::extract::extract( 160, 5, 5, - MediaTime::from_seconds(10), + MediaTime::from_seconds(2), "/home/janne/Workspace/justflix/data/video.mp4", "/home/janne/Workspace/justflix/data/spritesheets" )?; diff --git a/src/thumbnail/extract.rs b/src/thumbnail/extract.rs index 7ee06a8da2b5fe3c94f95dd7c8df353fac6f0d0c..c8d3bd0520f394ea92fda5d8cd90949da41d6e78 100644 --- a/src/thumbnail/extract.rs +++ b/src/thumbnail/extract.rs @@ -23,7 +23,8 @@ pub fn extract<T: AsRef<str>, U: AsRef<str>>( max_size, num_horizontal, num_vertical, frame_interval, - output_folder, + &output_folder, + "preview" ); let mut stream: AVStream = avformat_context.find_stream(|stream| { diff --git a/src/thumbnail/spritesheet.rs b/src/thumbnail/spritesheet.rs index 0b822b5b0252f1bc90ec77ada574f96ae671de71..251664b7c171da73c5fc763d54e791bbb9be011d 100644 --- a/src/thumbnail/spritesheet.rs +++ b/src/thumbnail/spritesheet.rs @@ -16,11 +16,12 @@ pub struct SpritesheetManager { frame_interval: MediaTime, metadata: WebVTTFile, output_path: std::string::String, + name: std::string::String, initialized: bool, } impl SpritesheetManager { - pub fn new<T: AsRef<str>>(max_side: u32, num_horizontal: u32, num_vertical: u32, frame_interval: MediaTime, output_path: T) -> SpritesheetManager { + pub fn new<T: AsRef<str>, U: AsRef<str>>(max_side: u32, num_horizontal: u32, num_vertical: u32, frame_interval: MediaTime, output_path: T, name: U) -> SpritesheetManager { SpritesheetManager { num_horizontal, num_vertical, @@ -33,6 +34,7 @@ impl SpritesheetManager { frame_interval, metadata: WebVTTFile::new(), output_path: std::string::String::from(output_path.as_ref()), + name: std::string::String::from(name.as_ref()), initialized: false, } } @@ -126,7 +128,8 @@ impl SpritesheetManager { self.last_timestamp, timestamp, format!( - "spritesheet_{}.jpg#xywh={},{},{},{}", + "{}_{}.jpg#xywh={},{},{},{}", + self.name, self.spritesheet_index(self.current_image - 1), self.x(self.current_image - 1), self.y(self.current_image - 1), @@ -138,7 +141,7 @@ impl SpritesheetManager { fn save_spritesheet(&mut self) -> Result<(), failure::Error> { self.spritesheet.save( - format!("{}/spritesheet_{}.jpg", self.output_path, self.spritesheet_index(self.current_image)) + format!("{}/{}_{}.jpg", self.output_path, self.name, self.spritesheet_index(self.current_image)) ).map_err(|error| { format_err!("Could not write spritesheet: {}", error) })?; @@ -148,7 +151,7 @@ impl SpritesheetManager { pub fn save(&mut self) -> Result<(), failure::Error> { self.save_spritesheet()?; - self.metadata.save(format!("{}/spritesheets.vtt", self.output_path)).map_err(|error| { + self.metadata.save(format!("{}/{}.vtt", self.output_path, self.name)).map_err(|error| { format_err!("Could not write spritesheet metadata: {}", error) })?; Ok(())