From da1f18b4275d747ff40d5bd07548c12d5286dc95 Mon Sep 17 00:00:00 2001 From: Daniel H Date: Mon, 10 Oct 2022 23:14:18 +0200 Subject: [PATCH] fix encoder --- src/main.rs | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/main.rs b/src/main.rs index fa2c313..bd93ce0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -403,27 +403,30 @@ async fn main() { .set_repeat(gif::Repeat::Finite(0)) .expect("encode: unable to set repeat"); println!("encode: encoding {n}..."); - for i in (n * (25 * 5) + 1)..=dir { - let decoder = Decoder::new( - File::open(format!("vid/{}.png", i)) - .expect(format!("encode: unable to read vid/{}.png", i).as_str()), - ); - let mut reader = decoder - .read_info() - .expect(format!("encode: invalid ffmpeg output in vid/{}.png", i).as_str()); - let mut buf: Vec = vec![0; reader.output_buffer_size()]; - let info = reader - .next_frame(&mut buf) - .expect(format!("encode: invalid ffmpeg output in vid/{}.png", i).as_str()); - let bytes = &mut buf[..info.buffer_size()]; - let mut frame = gif::Frame::from_rgb(240, 180, bytes); - frame.delay = 4; - encoder - .as_mut() - .unwrap() - .write_frame(&frame) - .expect("encode: unable to encode frame to gif"); - if i / (25 * 5) != n + 1 { + for i in (n * (25 * 5))..dir { + { + let i = i + 1; + let decoder = Decoder::new( + File::open(format!("vid/{}.png", i)) + .expect(format!("encode: unable to read vid/{}.png", i).as_str()), + ); + let mut reader = decoder + .read_info() + .expect(format!("encode: invalid ffmpeg output in vid/{}.png", i).as_str()); + let mut buf: Vec = vec![0; reader.output_buffer_size()]; + let info = reader + .next_frame(&mut buf) + .expect(format!("encode: invalid ffmpeg output in vid/{}.png", i).as_str()); + let bytes = &mut buf[..info.buffer_size()]; + let mut frame = gif::Frame::from_rgb(240, 180, bytes); + frame.delay = 4; + encoder + .as_mut() + .unwrap() + .write_frame(&frame) + .expect("encode: unable to encode frame to gif"); + } + if i / (25 * 5) != n { break; } }