Skip to content
Snippets Groups Projects
Commit 02ac49cf authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Improve spritesheet manager

parent 3281f630
Branches
No related tags found
No related merge requests found
......@@ -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"
)?;
......
......@@ -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| {
......
......@@ -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(())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment