summaryrefslogtreecommitdiffstats
path: root/apps/plugins/imageviewer/image_decoder.c
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2012-11-02 13:03:58 +0100
committerMarcin Bukat <marcin.bukat@gmail.com>2012-11-13 18:13:10 +0100
commit0ceaff2b65c50b75ad8cc5b2d12e7b3f864092e5 (patch)
tree49d8d297cbba93902bc612a9aa4ded1b6e2d46e5 /apps/plugins/imageviewer/image_decoder.c
parentb35f82c91ff050b4405b19a3e56e9d031bf940e2 (diff)
downloadrockbox-0ceaff2b65c50b75ad8cc5b2d12e7b3f864092e5.tar.gz
rockbox-0ceaff2b65c50b75ad8cc5b2d12e7b3f864092e5.tar.bz2
rockbox-0ceaff2b65c50b75ad8cc5b2d12e7b3f864092e5.zip
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
Diffstat (limited to 'apps/plugins/imageviewer/image_decoder.c')
-rw-r--r--apps/plugins/imageviewer/image_decoder.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/apps/plugins/imageviewer/image_decoder.c b/apps/plugins/imageviewer/image_decoder.c
index 416bda9e42..eab1c01dbc 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;