Mercurial > geeqie
diff src/format_raw.h @ 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 | b58cac75ad12 |
children | 71e1ebee420e |
line wrap: on
line diff
--- a/src/format_raw.h Tue Nov 07 01:57:19 2006 +0000 +++ b/src/format_raw.h Tue Nov 07 21:00:50 2006 +0000 @@ -22,15 +22,30 @@ FORMAT_RAW_MATCH_TIFF_MAKE } FormatRawMatchType; +typedef enum { + FORMAT_RAW_EXIF_NONE, + FORMAT_RAW_EXIF_TIFF, + FORMAT_RAW_EXIF_JPEG, + FORMAT_RAW_EXIF_IFD_II, + FORMAT_RAW_EXIF_IFD_MM, + FORMAT_RAW_EXIF_PROPRIETARY +} FormatRawExifType; + typedef gint (* FormatRawParseFunc)(unsigned char *data, const guint len, guint *image_offset, guint *exif_offset); +typedef gint (* FormatRawExifParseFunc)(unsigned char *data, const guint len, + ExifData *exif); + gint format_raw_img_exif_offsets(unsigned char *data, const guint len, guint *image_offset, guint *exif_offset); gint format_raw_img_exif_offsets_fd(int fd, const gchar *path, unsigned char *header_data, const guint header_len, guint *image_offset, guint *exif_offset); +FormatRawExifType format_raw_exif_offset(unsigned char *data, const guint len, guint *exif_offset, + FormatRawExifParseFunc *exif_parse_func); + typedef enum { FORMAT_EXIF_MATCH_MAKE, @@ -44,5 +59,23 @@ guint size, ExifByteOrder bo); +#define DEBUG_RAW_TIFF 0 + +#if DEBUG_RAW_TIFF + +#define FORMAT_RAW_DEBUG_TIFF { "", \ + FORMAT_RAW_MATCH_MAGIC, 0, "II", 2, \ + FORMAT_RAW_EXIF_NONE, NULL, \ + "Tiff debugger II", format_debug_tiff_raw }, \ + { "", \ + FORMAT_RAW_MATCH_MAGIC, 0, "MM", 2, \ + FORMAT_RAW_EXIF_NONE, NULL, \ + "Tiff debugger MM", format_debug_tiff_raw } + +/* used for debugging only */ +gint format_debug_tiff_raw(unsigned char *data, const guint len, + guint *image_offset, guint *exif_offset); #endif +#endif +