+2006-03-14 Matthias Clasen <mclasen@redhat.com>
+
+ * io-gif.c (gdk_pixbuf__gif_image_load): Add a shortcut
+ to stop the gif mainloop after the first frame, if that
+ is all we are interested in. (#334538)
+
2006-03-03 Matthias Clasen <mclasen@redhat.com>
* io-pnm.c: Support pnm files with maxval > 255.
unsigned int global_bit_pixel;
unsigned int global_color_resolution;
unsigned int background_index;
+ gboolean stop_after_first_frame;
gboolean frame_cmap_active;
CMap frame_color_map;
*/
context->frame = NULL;
context->frame_cmap_active = FALSE;
+
+ if (context->stop_after_first_frame)
+ context->state = GIF_DONE;
}
return v;
memset (context, 0, sizeof (GifContext));
- context->animation = g_object_new (GDK_TYPE_PIXBUF_GIF_ANIM, NULL);
+ context->animation = g_object_new (GDK_TYPE_PIXBUF_GIF_ANIM, NULL);
context->frame = NULL;
context->file = NULL;
context->state = GIF_START;
context->gif89.disposal = -1;
context->animation->loop = 1;
context->in_loop_extension = FALSE;
+ context->stop_after_first_frame = FALSE;
return context;
}
context->file = file;
context->error = error;
-
+ context->stop_after_first_frame = TRUE;
+
if (gif_main_loop (context) == -1 || context->animation->frames == NULL) {
if (context->error && *(context->error) == NULL)
g_set_error (context->error,