From 8593ac9ab4f5cfbc48ea6579d44c991b155be124 Mon Sep 17 00:00:00 2001 From: Harry Jeffery Date: Fri, 13 Nov 2015 20:34:00 +0000 Subject: Fix gif playback speed for some gifs Some gifs don't provide a frametime at all, so we have to guess one for ourselves. Fixes #4 --- src/image.c | 4 ++++ src/main.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/image.c b/src/image.c index b2bf2c9..c7bac62 100644 --- a/src/image.c +++ b/src/image.c @@ -150,6 +150,10 @@ void imv_image_load_next_frame(struct imv_image *img) frame_time = *(int*)FreeImage_GetTagValue(tag); } + /* some gifs don't provide a frame time at all */ + if(frame_time == 0) { + frame_time = 100; + } img->frame_time += frame_time * 0.001; FreeImage_UnlockPage(img->mbmp, frame, 0); diff --git a/src/main.c b/src/main.c index 950b0ff..67bdd33 100644 --- a/src/main.c +++ b/src/main.c @@ -265,6 +265,7 @@ int main(int argc, char** argv) if(view.playing) { double cur_time = SDL_GetTicks() / 1000.0; double dt = cur_time - last_time; + last_time = SDL_GetTicks() / 1000.0; imv_image_play(&img, dt); } @@ -279,7 +280,6 @@ int main(int argc, char** argv) view.redraw = 0; SDL_RenderPresent(renderer); } - last_time = SDL_GetTicks() / 1000.0; SDL_Delay(10); } -- cgit v1.2.3