Mercurial > geeqie.yaz
view 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 source
/* * 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! */ #ifndef __FORMAT_RAW_H #define __FORMAT_RAW_H #include "exif.h" typedef enum { FORMAT_RAW_MATCH_MAGIC, 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, FORMAT_EXIF_MATCH_MAKERNOTE } FormatExifMatchType; typedef gint (* FormatExifParseFunc)(ExifData *exif, unsigned char *tiff, guint offset, guint size, ExifByteOrder bo); gint format_exif_makernote_parse(ExifData *exif, unsigned char *tiff, guint offset, 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