Mercurial > geeqie
diff src/format_fuji.c @ 101:847e4bc6b54c
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
* exif.c: Use new format_raw_exif_offset() function to find Exif in
raw files.
* filelist.c: Add orf and pef to displayed file types.
* format_canon.h, format_fuji.h: Update to new #define format.
* format_fuji.c: Use same offset for Exif as the jpeg image as the
Exif is always embedded in the jpeg and assuming offset of 12 is
just broken.
* format_nikon.h: Update to new #define format, and add pentax here
as finding the jpeg will be same code.
* format_olympus.[ch]: Support Olympus raw files with embedded jpegs,
not all raw files will have a jpeg, but all appear to have Exif tags.
* format_raw.[ch]: Add new camera types, and add a debugging facility
to easily list all tags within tiff files (see format_raw.h to enable).
author | gqview |
---|---|
date | Tue, 07 Nov 2006 21:00:50 +0000 |
parents | a8c9992320f4 |
children | 9c355d5c8619 |
line wrap: on
line diff
--- a/src/format_fuji.c Tue Nov 07 01:57:19 2006 +0000 +++ b/src/format_fuji.c Tue Nov 07 21:00:50 2006 +0000 @@ -48,8 +48,9 @@ return FALSE; } + /* offset to jpeg is embedded at bytes 84-87 */ io = GUINT32_FROM_BE(*(guint32*)(data + 84)); - eo = *image_offset + 12; + if (io + 4 > len) return FALSE; /* verify jpeg marker */ if (memcmp(data + io, "\xff\xd8\xff\xe1", 4) != 0) @@ -57,11 +58,12 @@ return FALSE; } + /* Exif is stored in the jpeg, so use the same offset */ + eo=io; + if (image_offset) *image_offset = io; if (exif_offset) *exif_offset = eo; - printf("raw Fuji format file\n"); - return TRUE; }