From 0ceaff2b65c50b75ad8cc5b2d12e7b3f864092e5 Mon Sep 17 00:00:00 2001 From: Marcin Bukat Date: Fri, 2 Nov 2012 13:03:58 +0100 Subject: imageviewer: gif viewer based on giflib-5.0.2 This adds ability to view gif images in rockbox. Works both on color and gray/monochrome targets (greylib). Aspect correction is supported as well. Limitations: - animated gifs are restricted to 32 frames - animated gifs loop always (loopcount is ignored) - plain text extension is not supported - animated gifs with interframe delay = 0 are treated as still images (web browsers usually treat delay 0 as 100ms to prevent exhaustive CPU load by such images) Change-Id: I61501f801ddcd403410e38d83e6bddc9883e7ede --- apps/plugins/imageviewer/image_decoder.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'apps/plugins/imageviewer/image_decoder.c') diff --git a/apps/plugins/imageviewer/image_decoder.c b/apps/plugins/imageviewer/image_decoder.c index 416bda9..eab1c01 100644 --- a/apps/plugins/imageviewer/image_decoder.c +++ b/apps/plugins/imageviewer/image_decoder.c @@ -28,8 +28,9 @@ static const char *decoder_names[MAX_IMAGE_TYPES] = { "jpeg", "png", #ifdef HAVE_LCD_COLOR - "ppm" + "ppm", #endif + "gif" }; /* Check file type by magic number or file extension @@ -53,6 +54,7 @@ enum image_type get_image_type(const char *name, bool quiet) #ifdef HAVE_LCD_COLOR { ".ppm", IMAGE_PPM }, #endif + { ".gif", IMAGE_GIF }, }; static const struct { char *magic; /* magic number */ @@ -66,6 +68,8 @@ enum image_type get_image_type(const char *name, bool quiet) { "P3", 2, IMAGE_PPM }, { "P6", 2, IMAGE_PPM }, #endif + { "GIF87a", 6, IMAGE_GIF }, + { "GIF89a", 6, IMAGE_GIF }, }; enum image_type type = IMAGE_UNKNOWN; -- cgit v1.1