Mercurial > hg > forks > geeqie
annotate src/format_raw.h @ 2916:ae6cdcd69d9f default tip
Merge with upstream/master.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 14 May 2019 11:46:50 +0300 |
parents | 95507e596256 |
children |
rev | line source |
---|---|
43
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1 /* |
2350
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
2 * Copyright (C) 2005 John Ellis |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
3 * Copyright (C) 2008 - 2016 The Geeqie Team |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
4 * |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
5 * Author: Lars Ellenberg |
43
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
6 * |
2350
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
7 * This program is free software; you can redistribute it and/or modify |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
8 * it under the terms of the GNU General Public License as published by |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
9 * the Free Software Foundation; either version 2 of the License, or |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
10 * (at your option) any later version. |
43
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
11 * |
2350
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
15 * GNU General Public License for more details. |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
16 * |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
17 * You should have received a copy of the GNU General Public License along |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
18 * with this program; if not, write to the Free Software Foundation, Inc., |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2021
diff
changeset
|
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
43
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
20 */ |
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
21 |
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
22 #ifndef __FORMAT_RAW_H |
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
23 #define __FORMAT_RAW_H |
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
24 |
176
254f45cec904
simplified exif.h, moved implementation-specific stuff to exif-int.h
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
138
diff
changeset
|
25 #include "exif-int.h" |
51
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
26 |
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
27 |
54
0c742dfb2e30
Thu Jun 9 22:23:18 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
51
diff
changeset
|
28 typedef enum { |
0c742dfb2e30
Thu Jun 9 22:23:18 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
51
diff
changeset
|
29 FORMAT_RAW_MATCH_MAGIC, |
0c742dfb2e30
Thu Jun 9 22:23:18 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
51
diff
changeset
|
30 FORMAT_RAW_MATCH_TIFF_MAKE |
0c742dfb2e30
Thu Jun 9 22:23:18 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
51
diff
changeset
|
31 } FormatRawMatchType; |
0c742dfb2e30
Thu Jun 9 22:23:18 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
51
diff
changeset
|
32 |
101
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
33 typedef enum { |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
34 FORMAT_RAW_EXIF_NONE, |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
35 FORMAT_RAW_EXIF_TIFF, |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
36 FORMAT_RAW_EXIF_JPEG, |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
37 FORMAT_RAW_EXIF_IFD_II, |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
38 FORMAT_RAW_EXIF_IFD_MM, |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
39 FORMAT_RAW_EXIF_PROPRIETARY |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
40 } FormatRawExifType; |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
41 |
1453
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
42 typedef gboolean (* FormatRawParseFunc)(guchar *data, const guint len, |
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
43 guint *image_offset, guint *exif_offset); |
45
113c052136c4
Thu May 26 13:57:19 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
43
diff
changeset
|
44 |
1453
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
45 typedef gboolean (* FormatRawExifParseFunc)(guchar *data, const guint len, |
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
46 ExifData *exif); |
101
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
47 |
1453
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
48 gboolean format_raw_img_exif_offsets(guchar *data, const guint len, |
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
49 guint *image_offset, guint *exif_offset); |
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
50 gboolean format_raw_img_exif_offsets_fd(gint fd, const gchar *path, |
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
51 guchar *header_data, const guint header_len, |
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
52 guint *image_offset, guint *exif_offset); |
45
113c052136c4
Thu May 26 13:57:19 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
43
diff
changeset
|
53 |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
541
diff
changeset
|
54 FormatRawExifType format_raw_exif_offset(guchar *data, const guint len, guint *exif_offset, |
101
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
55 FormatRawExifParseFunc *exif_parse_func); |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
56 |
43
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
57 |
51
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
58 typedef enum { |
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
59 FORMAT_EXIF_MATCH_MAKE, |
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
60 FORMAT_EXIF_MATCH_MAKERNOTE |
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
61 } FormatExifMatchType; |
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
62 |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
541
diff
changeset
|
63 typedef gint (* FormatExifParseFunc)(ExifData *exif, guchar *tiff, guint offset, |
1453
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
64 guint size, ExifByteOrder bo); |
51
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
65 |
1453
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
66 gboolean format_exif_makernote_parse(ExifData *exif, guchar *tiff, guint offset, |
ccc663a2e148
gint -> gboolean where applicable. The end (ouf!).
Laurent Monin <geeqie@norz.org>
parents:
1284
diff
changeset
|
67 guint size, ExifByteOrder bo); |
51
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
68 |
daed872b77bc
Sat Jun 4 22:24:00 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
45
diff
changeset
|
69 |
101
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
70 #define DEBUG_RAW_TIFF 0 |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
71 |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
72 #if DEBUG_RAW_TIFF |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
73 |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
74 #define FORMAT_RAW_DEBUG_TIFF { "", \ |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
75 FORMAT_RAW_MATCH_MAGIC, 0, "II", 2, \ |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
76 FORMAT_RAW_EXIF_NONE, NULL, \ |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
77 "Tiff debugger II", format_debug_tiff_raw }, \ |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
78 { "", \ |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
79 FORMAT_RAW_MATCH_MAGIC, 0, "MM", 2, \ |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
80 FORMAT_RAW_EXIF_NONE, NULL, \ |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
81 "Tiff debugger MM", format_debug_tiff_raw } |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
82 |
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
83 /* used for debugging only */ |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
541
diff
changeset
|
84 gint format_debug_tiff_raw(guchar *data, const guint len, |
101
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
85 guint *image_offset, guint *exif_offset); |
43
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
86 #endif |
5f52e30ad0e8
Sun May 15 21:40:26 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
87 |
101
5ca15c24dfd5
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
54
diff
changeset
|
88 #endif |
1055
4bbdfab3c89a
Adding a vim modeline to all files - patch by Klaus Ethgen
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1000
diff
changeset
|
89 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ |