Mercurial > geeqie.yaz
diff src/format_fuji.c @ 45:7cfa60beda76
Thu May 26 13:57:19 2005 John Ellis <johne@verizon.net>
* format_raw.[ch]: Move camera specific code to manufacturer specific
format_*.c files. Change code so that file descripter version is now a
separate functions that wraps the standard parser by using mmap.
* format_canon.[ch]: Moved Canon specific raw support here, removed
file descriptor versions of parser. This Canon raw file parser written
by Daniel M. German.
* format_fuji.[ch]: Move Fuji specific raw support here, parser written
by Lars Ellenberg.
* exif.c: Update for change to format_raw_img_exif_offsets.
* filelist.c: Add cr2 extension to Canon raw format list.
* image-load.c: Fixes for changes to format_raw_img_exif_offset_fd so
that buffer is refilled using new offset of file descriptor.
* src/Makefile.am: Add format_canon.[ch], format_fuji.[ch] to build.
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
##### an offical release when making enhancements and translation updates. #####
author | gqview |
---|---|
date | Thu, 26 May 2005 18:10:52 +0000 |
parents | |
children | 276ea4c98d33 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/format_fuji.c Thu May 26 18:10:52 2005 +0000 @@ -0,0 +1,59 @@ +/* + * GQView + * (C) 2005 John Ellis + * + * Authors: + * Original version 2005 Lars Ellenberg, base on dcraw by David coffin. + * + * This software is released under the GNU General Public License (GNU GPL). + * Please read the included file COPYING for more information. + * This software comes with no warranty of any kind, use at your own risk! + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + + +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +#include <glib.h> + +#include "intl.h" + +#include "format_fuji.h" +#include "format_raw.h" + + +gint format_raw_test_fuji(const void *data, const guint len, + guint *image_offset, guint *exif_offset) +{ + guint io; + guint eo; + + if (len < 128 || + memcmp(data, "FUJIFILM", 8) != 0) + { + return FALSE; + } + + io = GUINT32_FROM_BE(*(guint32*)(data + 84)); + eo = *image_offset + 12; + + /* verify jpeg marker */ + if (memcmp(data + io, "\xff\xd8\xff\xe1", 4) != 0) + { + return FALSE; + } + + if (image_offset) *image_offset = io; + if (exif_offset) *exif_offset = eo; + + printf("raw Fuji format file\n"); + + return TRUE; +} + +