diff --git a/libobs/graphics/image-file.c b/libobs/graphics/image-file.c index 4b0515486..b68539daa 100644 --- a/libobs/graphics/image-file.c +++ b/libobs/graphics/image-file.c @@ -318,9 +318,10 @@ void gs_image_file_update_texture(gs_image_file_t *image) if (!image->is_animated_gif || !image->loaded) return; - if (image->animation_frame_cache[image->cur_frame]) { - gs_texture_set_image(image->texture, - image->animation_frame_cache[image->cur_frame], - image->gif.width * 4, false); - } + if (!image->animation_frame_cache[image->cur_frame]) + decode_new_frame(image, image->cur_frame); + + gs_texture_set_image(image->texture, + image->animation_frame_cache[image->cur_frame], + image->gif.width * 4, false); }