You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(22) |
Sep
(57) |
Oct
(39) |
Nov
(93) |
Dec
(72) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(15) |
Feb
(8) |
Mar
(12) |
Apr
(25) |
May
(2) |
Jun
|
Jul
(11) |
Aug
(32) |
Sep
(18) |
Oct
(53) |
Nov
|
Dec
(11) |
2004 |
Jan
(19) |
Feb
(1) |
Mar
(15) |
Apr
(17) |
May
(56) |
Jun
(19) |
Jul
(6) |
Aug
(16) |
Sep
(44) |
Oct
(31) |
Nov
(36) |
Dec
(13) |
2005 |
Jan
(2) |
Feb
(41) |
Mar
(304) |
Apr
(176) |
May
(19) |
Jun
(33) |
Jul
(14) |
Aug
(21) |
Sep
(4) |
Oct
(3) |
Nov
|
Dec
(8) |
2006 |
Jan
(18) |
Feb
(9) |
Mar
(5) |
Apr
(2) |
May
(2) |
Jun
(4) |
Jul
(2) |
Aug
|
Sep
(7) |
Oct
(10) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
(3) |
Mar
(1) |
Apr
(4) |
May
(124) |
Jun
(59) |
Jul
(1) |
Aug
(13) |
Sep
(3) |
Oct
(11) |
Nov
(30) |
Dec
(35) |
2008 |
Jan
(31) |
Feb
(42) |
Mar
(4) |
Apr
(5) |
May
(2) |
Jun
(12) |
Jul
(8) |
Aug
(2) |
Sep
(4) |
Oct
(5) |
Nov
(89) |
Dec
(23) |
2009 |
Jan
(71) |
Feb
(5) |
Mar
(8) |
Apr
(7) |
May
(8) |
Jun
(7) |
Jul
|
Aug
(4) |
Sep
(58) |
Oct
(74) |
Nov
(53) |
Dec
(32) |
2010 |
Jan
(8) |
Feb
(13) |
Mar
(4) |
Apr
|
May
|
Jun
(10) |
Jul
(1) |
Aug
(2) |
Sep
(12) |
Oct
(17) |
Nov
(2) |
Dec
(24) |
2011 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(24) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
(20) |
Mar
(18) |
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(12) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(8) |
Jun
|
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(5) |
From: Jan P. <pa...@us...> - 2004-05-11 14:28:02
|
Update of /cvsroot/libexif/exif/libjpeg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8470 Modified Files: jpeg-data.c jpeg-data.h jpeg-marker.h Log Message: jpeg_data_set_exif_data unreferences previous exif info to prevent memory leak. jpeg_data_save_file now returns 1 if success and 0 if failure. Incomplete file is now deleted. jpeg-marker:No implicit enum _JPEGMarker declaration Index: jpeg-marker.h =================================================================== RCS file: /cvsroot/libexif/exif/libjpeg/jpeg-marker.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- jpeg-marker.h 7 Jan 2004 15:27:02 -0000 1.3 +++ jpeg-marker.h 11 May 2004 14:27:52 -0000 1.4 @@ -24,8 +24,7 @@ extern "C" { #endif /* __cplusplus */ -typedef enum _JPEGMarker JPEGMarker; -enum _JPEGMarker { +typedef enum { JPEG_MARKER_SOF0 = 0xc0, JPEG_MARKER_SOF1 = 0xc1, JPEG_MARKER_SOF2 = 0xc2, @@ -89,7 +88,7 @@ JPEG_MARKER_JPG12 = 0xfc, JPEG_MARKER_JPG13 = 0xfd, JPEG_MARKER_COM = 0xfe -}; +} JPEGMarker; #define JPEG_IS_MARKER(m) (((m) >= JPEG_MARKER_SOF0) && \ ((m) <= JPEG_MARKER_COM)) Index: jpeg-data.c =================================================================== RCS file: /cvsroot/libexif/exif/libjpeg/jpeg-data.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- jpeg-data.c 7 Jan 2004 15:27:02 -0000 1.9 +++ jpeg-data.c 11 May 2004 14:27:52 -0000 1.10 @@ -69,26 +69,32 @@ data->count++; } -void +/* jpeg_data_save_file returns 1 on succes, 0 on failure */ +int jpeg_data_save_file (JPEGData *data, const char *path) { FILE *f; unsigned char *d = NULL; - unsigned int size = 0; + unsigned int size = 0, written; jpeg_data_save_data (data, &d, &size); if (!d) - return; + return 0; remove (path); f = fopen (path, "wb"); if (!f) { free (d); - return; + return 0; } - fwrite (d, sizeof (char), size, f); + written = fwrite (d, 1, size, f); fclose (f); free (d); + if (written == size) { + return 1; + } + remove(path); + return 0; } void @@ -422,6 +428,8 @@ memmove (&data->sections[2], &data->sections[1], sizeof (JPEGSection) * (data->count - 2)); section = &data->sections[1]; + } else { + exif_data_unref (section->content.app1); } section->marker = JPEG_MARKER_APP1; section->content.app1 = exif_data; Index: jpeg-data.h =================================================================== RCS file: /cvsroot/libexif/exif/libjpeg/jpeg-data.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- jpeg-data.h 15 Dec 2002 11:39:13 -0000 1.2 +++ jpeg-data.h 11 May 2004 14:27:52 -0000 1.3 @@ -76,7 +76,7 @@ unsigned int *size); void jpeg_data_load_file (JPEGData *data, const char *path); -void jpeg_data_save_file (JPEGData *data, const char *path); +int jpeg_data_save_file (JPEGData *data, const char *path); void jpeg_data_set_exif_data (JPEGData *data, ExifData *exif_data); ExifData *jpeg_data_get_exif_data (JPEGData *data); |
From: Jan P. <pa...@us...> - 2004-05-11 14:25:30
|
Update of /cvsroot/libexif/libexif/libjpeg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8087 Modified Files: jpeg-data.c jpeg-data.h Log Message: jpeg_data_set_exif_data unreferences previous exif info to prevent memory leak. jpeg_data_save_file now returns 1 if success and 0 if failure. Incomplete file is now deleted. Index: jpeg-data.c =================================================================== RCS file: /cvsroot/libexif/libexif/libjpeg/jpeg-data.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- jpeg-data.c 28 Oct 2003 18:53:44 -0000 1.15 +++ jpeg-data.c 11 May 2004 14:25:15 -0000 1.16 @@ -69,26 +69,32 @@ data->count++; } -void +/* jpeg_data_save_file returns 1 on succes, 0 on failure */ +int jpeg_data_save_file (JPEGData *data, const char *path) { FILE *f; unsigned char *d = NULL; - unsigned int size = 0; + unsigned int size = 0, written; jpeg_data_save_data (data, &d, &size); if (!d) - return; + return 0; remove (path); f = fopen (path, "wb"); if (!f) { free (d); - return; + return 0; } - fwrite (d, sizeof (char), size, f); + written = fwrite (d, 1, size, f); fclose (f); free (d); + if (written == size) { + return 1; + } + remove(path); + return 0; } void @@ -422,6 +428,8 @@ memmove (&data->sections[2], &data->sections[1], sizeof (JPEGSection) * (data->count - 2)); section = &data->sections[1]; + } else { + exif_data_unref (section->content.app1); } section->marker = JPEG_MARKER_APP1; section->content.app1 = exif_data; Index: jpeg-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libjpeg/jpeg-data.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- jpeg-data.h 15 Dec 2002 11:41:11 -0000 1.4 +++ jpeg-data.h 11 May 2004 14:25:15 -0000 1.5 @@ -76,7 +76,7 @@ unsigned int *size); void jpeg_data_load_file (JPEGData *data, const char *path); -void jpeg_data_save_file (JPEGData *data, const char *path); +int jpeg_data_save_file (JPEGData *data, const char *path); void jpeg_data_set_exif_data (JPEGData *data, ExifData *exif_data); ExifData *jpeg_data_get_exif_data (JPEGData *data); |
From: Jan P. <pa...@us...> - 2004-05-10 12:57:28
|
Update of /cvsroot/libexif/libexif/libexif/olympus In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13525 Modified Files: mnote-olympus-entry.c Log Message: A CR/LF problem killed output of processing MNOTE_NIKON_TAG_LENS Index: mnote-olympus-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/mnote-olympus-entry.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- mnote-olympus-entry.c 10 May 2004 12:28:48 -0000 1.8 +++ mnote-olympus-entry.c 10 May 2004 12:57:17 -0000 1.9 @@ -295,17 +295,18 @@ CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); CC (entry->components, 4, v, maxlen); { - float c,d; - unsigned long a,b; - vr = exif_get_rational (entry->data, entry->order); - a = vr.numerator / vr.denominator; - vr = exif_get_rational (entry->data+8, entry->order); - b = vr.numerator / vr.denominator; - vr = exif_get_rational (entry->data+16, entry->order); - c = (1.0*vr.numerator) / vr.denominator; - vr = exif_get_rational (entry->data+24, entry->order); - d = (1.0*vr.numerator) / vr.denominator; - //printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); snprintf (v, sizeof (v), "%ld-%ldmm 1:%3.1f - %3.1f",a,b,c,d); + float c,d; + unsigned long a,b; + vr = exif_get_rational (entry->data, entry->order); + a = vr.numerator / vr.denominator; + vr = exif_get_rational (entry->data+8, entry->order); + b = vr.numerator / vr.denominator; + vr = exif_get_rational (entry->data+16, entry->order); + c = (1.0*vr.numerator) / vr.denominator; + vr = exif_get_rational (entry->data+24, entry->order); + d = (1.0*vr.numerator) / vr.denominator; + //printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); + snprintf (v, maxlen, "%ld-%ldmm 1:%3.1f - %3.1f",a,b,c,d); } break; |
From: Jan P. <pa...@us...> - 2004-05-10 12:31:11
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8487 Modified Files: ChangeLog Log Message: 2004-05-10 Jan Patera <pa...@us...> * libexif: Support of Nikon maker note Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.111 retrieving revision 1.112 diff -u -d -r1.111 -r1.112 --- ChangeLog 7 May 2004 14:40:31 -0000 1.111 +++ ChangeLog 10 May 2004 12:31:01 -0000 1.112 @@ -1,3 +1,7 @@ +2004-05-10 Jan Patera <pa...@us...> + + * libexif: Support of Nikon maker note + 2004-05-07 Jan Patera <pa...@us...> * libexif/exif-entry.c: fix of EXIF_TAG_COLOR_SPACE, |
From: Jan P. <pa...@us...> - 2004-05-10 12:29:57
|
Update of /cvsroot/libexif/libexif/libexif/pentax In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8013/pentax Modified Files: mnote-pentax-entry.c Log Message: 2004-05-10 Jan Patera <pa...@us...> * Support of Nikon maker note Index: mnote-pentax-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/pentax/mnote-pentax-entry.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- mnote-pentax-entry.c 2 Apr 2004 15:55:51 -0000 1.4 +++ mnote-pentax-entry.c 10 May 2004 12:29:48 -0000 1.5 @@ -187,7 +187,7 @@ default: switch (entry->format) { case EXIF_FORMAT_ASCII: - snprintf (val, entry->components, "%s", entry->data); + strncpy (val, entry->data, min(maxlen, entry->components)); break; case EXIF_FORMAT_SHORT: vs = exif_get_short (entry->data, entry->order); |
From: Jan P. <pa...@us...> - 2004-05-10 12:29:57
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8013 Modified Files: exif-data.c Log Message: 2004-05-10 Jan Patera <pa...@us...> * Support of Nikon maker note Index: exif-data.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-data.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- exif-data.c 4 May 2004 21:27:01 -0000 1.37 +++ exif-data.c 10 May 2004 12:29:48 -0000 1.38 @@ -659,26 +659,31 @@ e = exif_data_get_entry (data, EXIF_TAG_MAKER_NOTE); if (e) { - /* Olympus */ + /* Olympus & Nikon */ if ((e->size >= 5) && (!memcmp (e->data, "OLYMP", 5) || - !memcmp (e->data, "Nikon", 5))) - data->priv->md = exif_mnote_data_olympus_new (); - - /* Pentax */ - else if ((e->size >= 2) && (e->data[0] == 0x00) - && (e->data[1] == 0x1b)) - data->priv->md = exif_mnote_data_pentax_new (); - - else { - em = exif_data_get_entry (data, EXIF_TAG_MAKE); - if (em) { - char value[7]; + !memcmp (e->data, "Nikon", 5))) { + data->priv->md = exif_mnote_data_olympus_new (); + } else { + char value[7]; + em = exif_data_get_entry (data, EXIF_TAG_MAKE); + /* Pentax & some variant of Nikon */ + if ((e->size >= 2) && (e->data[0] == 0x00) + && (e->data[1] == 0x1b)) { + if (em && !strnicmp (exif_entry_get_value (em, value, sizeof(value)), "Nikon", 5)) { + data->priv->md = exif_mnote_data_olympus_new (); + } else { + data->priv->md = exif_mnote_data_pentax_new (); + } - /* Canon */ - if (!strcmp (exif_entry_get_value (em, value, sizeof(value)), "Canon")) - data->priv->md = exif_mnote_data_canon_new (); + } else { + /* Canon */ + if (em) { + + if (!strcmp (exif_entry_get_value (em, value, sizeof(value)), "Canon")) + data->priv->md = exif_mnote_data_canon_new (); + } + } } - } /* * If we are able to interpret the maker note, do so. |
From: Jan P. <pa...@us...> - 2004-05-10 12:28:58
|
Update of /cvsroot/libexif/libexif/libexif/olympus In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7840 Modified Files: exif-mnote-data-olympus.c mnote-olympus-entry.c mnote-olympus-tag.c mnote-olympus-tag.h Log Message: I've extended support of Nikon maker note in the "Olympus" part, where Lutz originally put the first code. It appears there are at least 3 versions of Nikon mnote: 1) IFD with 0x1B items - was confused w/ Pentax-made mnote 2) 'Nikon',0,1,0,IFD 3) 'Nikon',0,2,0,0,0, 8-byte TIFF header, IFD In addition to that, there are 2 sets of tags: a) 'Version 1' is used by cases 1)+2) b) 'Version 2' is used by case 3) A bad thing is that both sets use the same ids. Furthermore, while v1 uses SHORT values, v2 uses ASCII values containing the actual string representations of the numeric values. To distinguish v1 & v2 tags, MNOTE_NIKON1_TAG_BASE (0x8000) is added to every tag if reading a v1 file - this is done in exif_mnote_data_olympus_load(). Some of the tags are explained here: http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html most of other tags are work (?) of Serge Droz <ser...@ps...> who submitted the original code enhancing now obsolete libmnote. Meaning of many tags remains unknown. Index: mnote-olympus-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/mnote-olympus-entry.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- mnote-olympus-entry.c 4 May 2004 21:27:01 -0000 1.7 +++ mnote-olympus-entry.c 10 May 2004 12:28:48 -0000 1.8 @@ -27,6 +27,7 @@ #include <libexif/exif-format.h> #include <libexif/exif-utils.h> +#include <libexif/exif-entry.h> #include <libexif/i18n.h> #define CF(format,target,v,maxlen) \ @@ -54,13 +55,105 @@ #undef MIN #define MIN(a, b) (((a) < (b)) ? (a) : (b)) +static struct { + ExifTag tag; + ExifFormat fmt; + struct { + int index; + const char *string; + } elem[8]; +} items[] = { + { MNOTE_NIKON_TAG_LENSTYPE, EXIF_FORMAT_BYTE, + { {0, N_("AF non D Lens")}, + {1, N_("Manual")}, + {2, N_("AF-D or AF-S Lens")}, + {6, N_("AF-D G Lens")}, + {10, N_("AF-D VR Lens")}, + {0, NULL}}}, + { MNOTE_NIKON_TAG_FLASHUSED, EXIF_FORMAT_BYTE, + { {0, N_("Flash did not fire")}, + {4, N_("Flash unit unknown")}, + {7, N_("Flash is external")}, + {9, N_("Flash is on Camera")}, + {0, NULL}}}, + { MNOTE_NIKON1_TAG_QUALITY, EXIF_FORMAT_SHORT, + { {1, N_("VGA Basic")}, + {2, N_("VGA Normal")}, + {3, N_("VGA Fine")}, + {4, N_("SXGA Basic")}, + {5, N_("SXGA Normal")}, + {6, N_("SXGA Fine")}, + {0, NULL}}}, + { MNOTE_NIKON1_TAG_COLORMODE, EXIF_FORMAT_SHORT, + { {1, N_("Color")}, + {2, N_("Monochrome")}, + {0, NULL}}}, + { MNOTE_NIKON1_TAG_IMAGEADJUSTMENT, EXIF_FORMAT_SHORT, + { {0, N_("Normal")}, + {1, N_("Bright+")}, + {2, N_("Bright-")}, + {3, N_("Contrast+")}, + {4, N_("Contrast-")}, + {0, NULL}}}, + { MNOTE_NIKON1_TAG_CCDSENSITIVITY, EXIF_FORMAT_SHORT, + { {0, N_("ISO80")}, + {2, N_("ISO160")}, + {4, N_("ISO320")}, + {5, N_("ISO100")}, + {0, NULL}}}, + { MNOTE_NIKON1_TAG_WHITEBALANCE, EXIF_FORMAT_SHORT, + { {0, N_("Auto")}, + {1, N_("Preset")}, + {2, N_("Daylight")}, + {3, N_("Incandescense")}, + {4, N_("Fluorescence")}, + {5, N_("Cloudy")}, + {6, N_("SpeedLight")}, + {0, NULL}}}, + { MNOTE_OLYMPUS_TAG_QUALITY, EXIF_FORMAT_SHORT, + { {1, N_("SQ")}, + {2, N_("HQ")}, + {3, N_("SHQ")}, + {0, NULL}}}, + { MNOTE_OLYMPUS_TAG_MACRO, EXIF_FORMAT_SHORT, + { {0, N_("No")}, + {1, N_("Yes")}, + {0, NULL}}}, + { MNOTE_OLYMPUS_TAG_DIGIZOOM, EXIF_FORMAT_SHORT, + { {0, N_("1x")}, + {2, N_("2x")}, + {0, NULL}}}, + { MNOTE_OLYMPUS_TAG_FLASHMODE, EXIF_FORMAT_SHORT, + { {0, N_("Auto")}, + {1, N_("Red-eye reduction")}, + {2, N_("Fill")}, + {3, N_("Off")}, + {0, NULL}}}, + { MNOTE_OLYMPUS_TAG_SHARPNESS, EXIF_FORMAT_SHORT, + { {0, N_("Normal")}, + {1, N_("Hard")}, + {2, N_("Soft")}, + {0, NULL}}}, + { MNOTE_OLYMPUS_TAG_CONTRAST, EXIF_FORMAT_SHORT, + { {0, N_("Hard")}, + {1, N_("Normal")}, + {2, N_("Soft")}, + {0, NULL}}}, + { MNOTE_OLYMPUS_TAG_MANFOCUS, EXIF_FORMAT_SHORT, + { {0, N_("No")}, + {1, N_("Yes")}, + {0, NULL}}}, + { 0, } +}; + char * mnote_olympus_entry_get_value (MnoteOlympusEntry *entry, char *v, unsigned int maxlen) { - char buf[32]; - ExifLong vl; - ExifShort vs; + char buf[32]; + ExifLong vl; + ExifShort vs; ExifRational vr; + int i, j; if (!entry) return (NULL); @@ -77,21 +170,21 @@ CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen); CC (entry->components, 4, v, maxlen); vl = exif_get_long (entry->data, entry->order); - snprintf (v, sizeof (v), "0x%04lx", vl); + snprintf (v, maxlen, "0x%04lx", vl); break; case MNOTE_NIKON_TAG_ISO: CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); CC (entry->components, 2, v, maxlen); //vs = exif_get_short (entry->data, entry->order); vs = exif_get_short (entry->data + 2, entry->order); - snprintf (v, sizeof (v), "ISO %hd", vs); + snprintf (v, maxlen, "ISO %hd", vs); break; case MNOTE_NIKON_TAG_ISO2: CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); CC (entry->components, 2, v, maxlen); //vs = exif_get_short (entry->data, entry->order); vs = exif_get_short (entry->data + 2, entry->order); - snprintf (v, sizeof (v), "ISO2 %hd", vs); + snprintf (v, maxlen, "ISO2 %hd", vs); break; case MNOTE_NIKON_TAG_QUALITY: CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); @@ -100,58 +193,39 @@ //printf("-> 0x%04x\n",entry->data); //printf("-> 0x%s<\n",entry->data - 0); memcpy(v, entry->data ,entry->components); - //snprintf (v, sizeof (v), "%s<", ( entry->data - 9 ); + //snprintf (v, maxlen, "%s<", ( entry->data - 9 ); break; case MNOTE_NIKON_TAG_COLORMODE: - CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); - memcpy(v, entry->data ,entry->components); - break; case MNOTE_NIKON_TAG_COLORMODE1: - CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); - memcpy(v, entry->data ,entry->components); - break; - case MNOTE_NIKON_TAG_TOTALPICTURES: - CF (entry->format, EXIF_FORMAT_LONG, v, maxlen); - CC (entry->components, 1, v, maxlen); - vl = exif_get_long (entry->data , entry->order); - snprintf (v, sizeof (v), "%lu", vl ); - break; case MNOTE_NIKON_TAG_WHITEBALANCE: - CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); - memcpy(v, entry->data ,entry->components); - break; case MNOTE_NIKON_TAG_SHARPENING: - CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); - memcpy(v, entry->data ,entry->components); - break; case MNOTE_NIKON_TAG_FOCUSMODE: - CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); - memcpy(v, entry->data ,entry->components); - break; case MNOTE_NIKON_TAG_FLASHSETTING: - CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); - memcpy(v, entry->data ,entry->components); - break; case MNOTE_NIKON_TAG_ISOSELECTION: - CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); - memcpy(v, entry->data ,entry->components); - break; case MNOTE_NIKON_TAG_FLASHMODE: + case MNOTE_NIKON_TAG_IMAGEADJUSTMENT: + case MNOTE_NIKON_TAG_ADAPTER: CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); - memcpy(v, entry->data ,entry->components); + memcpy(v, entry->data, MIN (maxlen, entry->components)); + break; + case MNOTE_NIKON_TAG_TOTALPICTURES: + CF (entry->format, EXIF_FORMAT_LONG, v, maxlen); + CC (entry->components, 1, v, maxlen); + vl = exif_get_long (entry->data, entry->order); + snprintf (v, maxlen, "%lu", vl ); break; case MNOTE_NIKON_TAG_WHITEBALANCEFINE: CF (entry->format, EXIF_FORMAT_SSHORT, v, maxlen); CC (entry->components, 1, v, maxlen); - vs = exif_get_short (entry->data, entry->order); - snprintf (v, sizeof (v), "%hd", vs); + vs = exif_get_short (entry->data, entry->order); + snprintf (v, maxlen, "%hd", vs); break; case MNOTE_NIKON_TAG_WHITEBALANCERB: CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); CC (entry->components, 4, v, maxlen); //vr = exif_get_rational (entry->data, entry->order); //if (vr.numerator == 0) { - // strncpy (v, _("Unknown"), sizeof (v)); + // strncpy (v, _("Unknown"), maxlen); //} //else { { @@ -161,25 +235,66 @@ vr = exif_get_rational (entry->data+8, entry->order); b = (1.0*vr.numerator) / vr.denominator; //printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); - snprintf (v, sizeof (v), "Red Correction %f, Blue Correction %f", r,b); + snprintf (v, maxlen, "Red Correction %f, Blue Correction %f", r,b); } break; - case MNOTE_NIKON_TAG_LENSTYPE: - CF (entry->format, EXIF_FORMAT_BYTE, v, maxlen); - CC (entry->components, 1, v, maxlen); - switch ( *( entry->data) ) { - case 0: snprintf (v, sizeof (v), "AF non D Lens"); break; - case 1: snprintf (v, sizeof (v), "manual"); break; - case 2: snprintf (v, sizeof (v), "AF-D or AF-S Lens"); break; - case 6: snprintf (v, sizeof (v), "AF-D G Lens"); break; - case 10: snprintf (v, sizeof (v), "AF-D VR Lens"); break; - default: snprintf (v, sizeof (v), "unknown Lens"); - } + case MNOTE_NIKON_TAG_AFFOCUSPOSITION: + CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen); + CC (entry->components, 4, v, maxlen); + switch ( *( entry->data+1) ) { + case 0: strncpy (v, "AF Position: Center", maxlen); break; + case 1: strncpy (v, "AF Position: Top", maxlen); break; + case 2: strncpy (v, "AF Position: Bottom", maxlen); break; + case 3: strncpy (v, "AF Position: Left", maxlen); break; + case 4: strncpy (v, "AF Position: Right", maxlen); break; + default: strncpy (v, "Unknown AF Position", maxlen); + } break; - case MNOTE_NIKON_TAG_LENS: - CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); - CC (entry->components, 4, v, maxlen); - { + case MNOTE_NIKON_TAG_LENSTYPE: + case MNOTE_NIKON_TAG_FLASHUSED: + case MNOTE_NIKON1_TAG_QUALITY: + case MNOTE_NIKON1_TAG_COLORMODE: + case MNOTE_NIKON1_TAG_IMAGEADJUSTMENT: + case MNOTE_NIKON1_TAG_CCDSENSITIVITY: + case MNOTE_NIKON1_TAG_WHITEBALANCE: + case MNOTE_OLYMPUS_TAG_QUALITY: + case MNOTE_OLYMPUS_TAG_MACRO: + case MNOTE_OLYMPUS_TAG_DIGIZOOM: + case MNOTE_OLYMPUS_TAG_FLASHMODE: + case MNOTE_OLYMPUS_TAG_SHARPNESS: + case MNOTE_OLYMPUS_TAG_CONTRAST: + case MNOTE_OLYMPUS_TAG_MANFOCUS: + /* search the tag */ + for (i = 0; (items[i].tag && items[i].tag != entry->tag); i++); + if (!items[i].tag) { + strncpy (v, "Internal error", maxlen); + break; + } + CF (entry->format, items[i].fmt, v, maxlen); + CC (entry->components, 1, v, maxlen); + switch (entry->format) { + case EXIF_FORMAT_BYTE: + case EXIF_FORMAT_UNDEFINED: + vs = entry->data[0]; + break; + case EXIF_FORMAT_SHORT: + vs = exif_get_short(entry->data, entry->order); + break; + } + /* find the value */ + for (j = 0; items[i].elem[j].string && + (items[i].elem[j].index < vs); j++); + if (items[i].elem[j].index != vs) { + snprintf (v, maxlen, "Unknown value %hi", vs); + break; + } + strncpy (v, items[i].elem[j].string, maxlen); + break; + + case MNOTE_NIKON_TAG_LENS: + CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); + CC (entry->components, 4, v, maxlen); + { float c,d; unsigned long a,b; vr = exif_get_rational (entry->data, entry->order); @@ -190,31 +305,9 @@ c = (1.0*vr.numerator) / vr.denominator; vr = exif_get_rational (entry->data+24, entry->order); d = (1.0*vr.numerator) / vr.denominator; - //printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); snprintf (v, sizeof (v), "%ld-%ldmm 1:%3.1f - %3.1f",a,b,c,d); - } - break; - case MNOTE_NIKON_TAG_FLASHUSED: - CF (entry->format, EXIF_FORMAT_BYTE, v, maxlen); - CC (entry->components, 1, v, maxlen); - switch ( *( entry->data) ) { - case 0: snprintf (v, sizeof (v), "Flash did not fire"); break; - case 4: snprintf (v, sizeof (v), "Flash unit unknown"); break; - case 7: snprintf (v, sizeof (v), "Flash is external"); break; - case 9: snprintf (v, sizeof (v), "Flash is on Camera"); break; - default: snprintf (v, sizeof (v), "unknown Flash status"); - } - break; - case MNOTE_NIKON_TAG_AFFOCUSPOSITION: - CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen); - CC (entry->components, 4, v, maxlen); - switch ( *( entry->data+1) ) { - case 0: snprintf (v, sizeof (v), "AF Position: Center"); break; - case 1: snprintf (v, sizeof (v), "AF Position: Top"); break; case 2: snprintf (v, sizeof (v), "AF Position: Bottom"); break; - case 3: snprintf (v, sizeof (v), "AF Position: Left"); break; - case 4: snprintf (v, sizeof (v), "AF Position: Right"); break; - default: snprintf (v, sizeof (v), "unknown AF Position"); - } - break; + //printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); snprintf (v, sizeof (v), "%ld-%ldmm 1:%3.1f - %3.1f",a,b,c,d); + } + break; /* Olympus */ case MNOTE_OLYMPUS_TAG_MODE: @@ -259,59 +352,11 @@ strncat (v, buf, maxlen - strlen (v)); } break; - case MNOTE_OLYMPUS_TAG_QUALITY: - CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); - CC (entry->components, 1, v, maxlen); - vs = exif_get_short (entry->data, entry->order); - switch (vs) { - case 1: - strncpy (v, _("SQ"), maxlen); - break; - case 2: - strncpy (v, _("HQ"), maxlen); - break; - case 3: - strncpy (v, _("SHQ"), maxlen); - break; - default: - snprintf (v, maxlen, _("%i"), vs); - } - break; - case MNOTE_OLYMPUS_TAG_MACRO: - CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); - CC (entry->components, 1, v, maxlen); - vs = exif_get_short (entry->data, entry->order); - switch (vs) { - case 0: - strncpy (v, _("no"), maxlen); - break; - case 1: - strncpy (v, _("yes"), maxlen); - break; - default: - snprintf (v, maxlen, _("%i"), vs); - } - break; case MNOTE_OLYMPUS_TAG_UNKNOWN_1: CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); CC (entry->components, 1, v, maxlen); strncpy (v, _("Unknown tag."), maxlen); break; - case MNOTE_OLYMPUS_TAG_DIGIZOOM: - CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); - CC (entry->components, 1, v, maxlen); - vs = exif_get_short (entry->data, entry->order); - switch (vs) { - case 0: - strncpy (v, _("1x"), maxlen); - break; - case 2: - strncpy (v, _("2x"), maxlen); - break; - default: - snprintf (v, maxlen, _("%i"), vs); - } - break; case MNOTE_OLYMPUS_TAG_UNKNOWN_2: CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); CC (entry->components, 1, v, maxlen); @@ -338,27 +383,6 @@ CF (entry->format, EXIF_FORMAT_LONG, v, maxlen); CC (entry->components, 30, v, maxlen); break; - case MNOTE_OLYMPUS_TAG_FLASHMODE: - CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); - CC (entry->components, 1, v, maxlen); - vs = exif_get_short (entry->data, entry->order); - switch (vs) { - case 0: - strncpy (v, _("Auto"), maxlen); - break; - case 1: - strncpy (v, _("Red-eye reduction"), maxlen); - break; - case 2: - strncpy (v, _("Fill"), maxlen); - break; - case 3: - strncpy (v, _("Off"), maxlen); - break; - default: - snprintf (v, maxlen, _("%i"), vs); - } - break; case MNOTE_OLYMPUS_TAG_FOCUSDIST: CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); CC (entry->components, 1, v, maxlen); @@ -372,24 +396,6 @@ snprintf (v, maxlen, "%li mm", tmp); } break; - case MNOTE_OLYMPUS_TAG_SHARPNESS: - CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); - CC (entry->components, 1, v, maxlen); - vs = exif_get_short (entry->data, entry->order); - switch (vs) { - case 0: - strncpy (v, _("Normal"), maxlen); - break; - case 1: - strncpy (v, _("Hard"), maxlen); - break; - case 2: - strncpy (v, _("Soft"), maxlen); - break; - default: - snprintf (v, maxlen, _("%i"), vs); - } - break; case MNOTE_OLYMPUS_TAG_WBALANCE: CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); CC (entry->components, 2, v, maxlen); @@ -442,41 +448,26 @@ break; } break; - case MNOTE_OLYMPUS_TAG_CONTRAST: - CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); - CC (entry->components, 1, v, maxlen); - vs = exif_get_short (entry->data, entry->order); - switch (vs) { - case 0: - strncpy (v, _("Hard"), maxlen); - break; - case 1: - strncpy (v, _("Normal"), maxlen); - break; - case 2: - strncpy (v, _("Soft"), maxlen); - break; - default: - snprintf (v, maxlen, "%i", vs); - } - break; - case MNOTE_OLYMPUS_TAG_MANFOCUS: - CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); - CC (entry->components, 1, v, maxlen); - vs = exif_get_short (entry->data, entry->order); - switch (vs) { - case 0: - strncpy (v, _("No"), maxlen); - break; - case 1: - strncpy (v, _("Yes"), maxlen); - break; + default: + switch (entry->format) { + case EXIF_FORMAT_ASCII: + strncpy (v, entry->data, MIN (maxlen, entry->components)); + break; + case EXIF_FORMAT_SHORT: + vs = exif_get_short (entry->data, entry->order); + snprintf (v, maxlen, "%hi", vs); + break; + case EXIF_FORMAT_LONG: + vl = exif_get_long (entry->data, entry->order); + snprintf (v, maxlen, "%li", vl); + break; + case EXIF_FORMAT_UNDEFINED: default: - snprintf (v, maxlen, _("%i"), vs); + snprintf (v, maxlen, "%li bytes unknown data", + entry->size); + break; } break; - default: - break; } return (v); Index: mnote-olympus-tag.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/mnote-olympus-tag.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- mnote-olympus-tag.h 4 May 2004 21:27:01 -0000 1.2 +++ mnote-olympus-tag.h 10 May 2004 12:28:48 -0000 1.3 @@ -27,55 +27,73 @@ enum _MnoteOlympusTag { - /* Nikon */ + /* Nikon v.2 */ MNOTE_NIKON_TAG_FIRMWARE = 0x0001, - MNOTE_NIKON_TAG_ISO = 0x0002, - MNOTE_NIKON_TAG_COLORMODE1 = 0x0003, - MNOTE_NIKON_TAG_QUALITY = 0x0004, - MNOTE_NIKON_TAG_WHITEBALANCE = 0x0005, - MNOTE_NIKON_TAG_SHARPENING = 0x0006, - MNOTE_NIKON_TAG_FOCUSMODE = 0x0007, - MNOTE_NIKON_TAG_FLASHSETTING = 0x0008, - MNOTE_NIKON_TAG_FLASHMODE = 0x0009, - MNOTE_NIKON_TAG_WHITEBALANCEFINE = 0x000b, - MNOTE_NIKON_TAG_WHITEBALANCERB = 0x000c, - MNOTE_NIKON_TAG_UNKNOWN_0X000D = 0x000d, - MNOTE_NIKON_TAG_EXPOSUREDIFF = 0x000e, - MNOTE_NIKON_TAG_ISOSELECTION = 0x000f, - MNOTE_NIKON_TAG_UNKNOWN_0X0011 = 0x0011, - MNOTE_NIKON_TAG_FLASHCOMPENSATION = 0x0012, - MNOTE_NIKON_TAG_ISO2 = 0x0013, - MNOTE_NIKON_TAG_UNKNOWN_0X0016 = 0x0016, - MNOTE_NIKON_TAG_UNKNOWN_0X0017 = 0x0017, - MNOTE_NIKON_TAG_UNKNOWN_0X0018 = 0x0018, - MNOTE_NIKON_TAG_UNKNOWN_0X0019 = 0x0019, - MNOTE_NIKON_TAG_TONECOMPENSATION = 0x0081, - MNOTE_NIKON_TAG_LENSTYPE = 0x0083, - MNOTE_NIKON_TAG_LENS = 0x0084, - MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE = 0x0085, - MNOTE_NIKON_TAG_FLASHUSED = 0x0087, - MNOTE_NIKON_TAG_AFFOCUSPOSITION = 0x0088, - MNOTE_NIKON_TAG_BRACKETING = 0x0089, - MNOTE_NIKON_TAG_UNKNOWN_0X008A = 0x008a, - MNOTE_NIKON_TAG_UNKNOWN_0X008B = 0x008b, - MNOTE_NIKON_TAG_CURVE = 0x008c, - MNOTE_NIKON_TAG_COLORMODE = 0x008d, - MNOTE_NIKON_TAG_LIGHTYPE = 0x0090, - MNOTE_NIKON_TAG_UNKNOWN_0X0091 = 0x0091, - MNOTE_NIKON_TAG_HUE = 0x0092, - MNOTE_NIKON_TAG_NOISEREDUCTION = 0x0095, - MNOTE_NIKON_TAG_UNKNOWN_0X0097 = 0x0097, - MNOTE_NIKON_TAG_UNKNOWN_0X0098 = 0x0098, - MNOTE_NIKON_TAG_UNKNOWN_0X009A = 0x009a, - MNOTE_NIKON_TAG_UNKNOWN_0X00A0 = 0x00a0, - MNOTE_NIKON_TAG_UNKNOWN_0X00A2 = 0x00a2, - MNOTE_NIKON_TAG_UNKNOWN_0X00A3 = 0x00a3, - MNOTE_NIKON_TAG_TOTALPICTURES = 0x00a7, - MNOTE_NIKON_TAG_UNKNOWN_0X00A8 = 0x00a8, - MNOTE_NIKON_TAG_OPTIMIZATION = 0x00a9, - MNOTE_NIKON_TAG_UNKNOWN_0X00AA = 0x00aa, - MNOTE_NIKON_TAG_UNKNOWN_0X00AB = 0x00ab, - MNOTE_NIKON_TAG_CAPTUREEDITORDATA = 0x0e01, + MNOTE_NIKON_TAG_ISO = 0x0002, + MNOTE_NIKON_TAG_COLORMODE1 = 0x0003, + MNOTE_NIKON_TAG_QUALITY = 0x0004, + MNOTE_NIKON_TAG_WHITEBALANCE = 0x0005, + MNOTE_NIKON_TAG_SHARPENING = 0x0006, + MNOTE_NIKON_TAG_FOCUSMODE = 0x0007, + MNOTE_NIKON_TAG_FLASHSETTING = 0x0008, + MNOTE_NIKON_TAG_FLASHMODE = 0x0009, + MNOTE_NIKON_TAG_WHITEBALANCEFINE = 0x000b, + MNOTE_NIKON_TAG_WHITEBALANCERB = 0x000c, + MNOTE_NIKON_TAG_UNKNOWN_0X000D = 0x000d, + MNOTE_NIKON_TAG_EXPOSUREDIFF = 0x000e, + MNOTE_NIKON_TAG_ISOSELECTION = 0x000f, + MNOTE_NIKON_TAG_UNKNOWN_0X0011 = 0x0011, + MNOTE_NIKON_TAG_FLASHCOMPENSATION = 0x0012, + MNOTE_NIKON_TAG_ISO2 = 0x0013, + MNOTE_NIKON_TAG_UNKNOWN_0X0016 = 0x0016, + MNOTE_NIKON_TAG_UNKNOWN_0X0017 = 0x0017, + MNOTE_NIKON_TAG_UNKNOWN_0X0018 = 0x0018, + MNOTE_NIKON_TAG_UNKNOWN_0X0019 = 0x0019, + MNOTE_NIKON_TAG_IMAGEADJUSTMENT = 0x0080, + MNOTE_NIKON_TAG_TONECOMPENSATION = 0x0081, + MNOTE_NIKON_TAG_ADAPTER = 0x0082, + MNOTE_NIKON_TAG_LENSTYPE = 0x0083, + MNOTE_NIKON_TAG_LENS = 0x0084, + MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE = 0x0085, + MNOTE_NIKON_TAG_DIGITALZOOM = 0x0086, + MNOTE_NIKON_TAG_FLASHUSED = 0x0087, + MNOTE_NIKON_TAG_AFFOCUSPOSITION = 0x0088, + MNOTE_NIKON_TAG_BRACKETING = 0x0089, + MNOTE_NIKON_TAG_UNKNOWN_0X008A = 0x008a, + MNOTE_NIKON_TAG_UNKNOWN_0X008B = 0x008b, + MNOTE_NIKON_TAG_CURVE = 0x008c, + MNOTE_NIKON_TAG_COLORMODE = 0x008d, + MNOTE_NIKON_TAG_LIGHTYPE = 0x0090, + MNOTE_NIKON_TAG_UNKNOWN_0X0091 = 0x0091, + MNOTE_NIKON_TAG_HUE = 0x0092, + MNOTE_NIKON_TAG_UNKNOWN_0X0094 = 0x0094, + MNOTE_NIKON_TAG_NOISEREDUCTION = 0x0095, + MNOTE_NIKON_TAG_UNKNOWN_0X0097 = 0x0097, + MNOTE_NIKON_TAG_UNKNOWN_0X0098 = 0x0098, + MNOTE_NIKON_TAG_UNKNOWN_0X009A = 0x009a, + MNOTE_NIKON_TAG_UNKNOWN_0X009B = 0x009b, + MNOTE_NIKON_TAG_UNKNOWN_0X00A0 = 0x00a0, + MNOTE_NIKON_TAG_UNKNOWN_0X00A2 = 0x00a2, + MNOTE_NIKON_TAG_UNKNOWN_0X00A3 = 0x00a3, + MNOTE_NIKON_TAG_TOTALPICTURES = 0x00a7, + MNOTE_NIKON_TAG_UNKNOWN_0X00A8 = 0x00a8, + MNOTE_NIKON_TAG_OPTIMIZATION = 0x00a9, + MNOTE_NIKON_TAG_UNKNOWN_0X00AA = 0x00aa, + MNOTE_NIKON_TAG_UNKNOWN_0X00AB = 0x00ab, + MNOTE_NIKON_TAG_CAPTUREEDITORDATA = 0x0e01, + + /* Nikon v1: real values + our proprietary base to distinguish from v2 */ + MNOTE_NIKON1_TAG_BASE = 0x8000, + MNOTE_NIKON1_TAG_UNKNOWN_0X0002 = 0x0002 + MNOTE_NIKON1_TAG_BASE, + MNOTE_NIKON1_TAG_QUALITY = 0x0003 + MNOTE_NIKON1_TAG_BASE, + MNOTE_NIKON1_TAG_COLORMODE = 0x0004 + MNOTE_NIKON1_TAG_BASE, + MNOTE_NIKON1_TAG_IMAGEADJUSTMENT = 0x0005 + MNOTE_NIKON1_TAG_BASE, + MNOTE_NIKON1_TAG_CCDSENSITIVITY = 0x0006 + MNOTE_NIKON1_TAG_BASE, + MNOTE_NIKON1_TAG_WHITEBALANCE = 0x0007 + MNOTE_NIKON1_TAG_BASE, + MNOTE_NIKON1_TAG_FOCUS = 0x0008 + MNOTE_NIKON1_TAG_BASE, + MNOTE_NIKON1_TAG_UNKNOWN_0X0009 = 0x0009 + MNOTE_NIKON1_TAG_BASE, + MNOTE_NIKON1_TAG_DIGITALZOOM = 0x000a + MNOTE_NIKON1_TAG_BASE, + MNOTE_NIKON1_TAG_CONVERTER = 0x000b + MNOTE_NIKON1_TAG_BASE, /* Olympus */ MNOTE_OLYMPUS_TAG_MODE = 0x0200, Index: mnote-olympus-tag.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/mnote-olympus-tag.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- mnote-olympus-tag.c 4 May 2004 21:27:01 -0000 1.2 +++ mnote-olympus-tag.c 10 May 2004 12:28:48 -0000 1.3 @@ -32,54 +32,71 @@ const char *description; } table[] = { - /* Nikon */ - {MNOTE_NIKON_TAG_FIRMWARE, "Firmware", N_("Firmware Version"), ""}, - {MNOTE_NIKON_TAG_ISO, "ISO", N_("ISO Setting"), ""}, - {MNOTE_NIKON_TAG_COLORMODE1, "COLORMODE1", N_("Colormode (?)"), ""}, - {MNOTE_NIKON_TAG_QUALITY, "QUALITY", N_("Quality"), ""}, - {MNOTE_NIKON_TAG_WHITEBALANCE, "WHITEBALANCE", N_("Whitebalance"), ""}, - {MNOTE_NIKON_TAG_SHARPENING, "SHARPENING", N_("Image Sharpening"), ""}, - {MNOTE_NIKON_TAG_FOCUSMODE, "FOCUSMODE", N_("Focus Mode"), ""}, - {MNOTE_NIKON_TAG_FLASHSETTING, "FLASHSETTING", N_("Flash Setting"), ""}, - {MNOTE_NIKON_TAG_FLASHMODE, "FLASHMODE", N_("Flash Mode"), ""}, - {MNOTE_NIKON_TAG_WHITEBALANCEFINE,"WHITEBALANCEFINE",N_("Whitebalance fine ajustment"), ""}, - {MNOTE_NIKON_TAG_WHITEBALANCERB, "WHITEBALANCERB", N_("Whitebalance RB"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X000D, "UNKNOWN_0X000D", N_("Unknown tag 0x000d"), ""}, - {MNOTE_NIKON_TAG_ISOSELECTION, "ISOSELECTION", N_("Isoselection"), ""}, {MNOTE_NIKON_TAG_UNKNOWN_0X0011, "UNKNOWN_0X0011", N_("Unknown tag 0x0011"), ""}, - {MNOTE_NIKON_TAG_EXPOSUREDIFF, "EXPOSUREDIFF", N_("Exposurediff ?"), ""}, - {MNOTE_NIKON_TAG_FLASHCOMPENSATION, "FLASHCOMPENSATION", N_("Flashcompensation ?"), ""}, - {MNOTE_NIKON_TAG_ISO2, "ISO", N_("ISO Setting"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X0016, "UNKNOWN_0X0016", N_("Unknown tag 0x0016"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X0017, "UNKNOWN_0X0017", N_("Unknown tag 0x0017"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X0018, "UNKNOWN_0X0018", N_("Unknown tag 0x0018"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X0019, "UNKNOWN_0X0019", N_("Unknown tag 0x0019"), ""}, - {MNOTE_NIKON_TAG_TONECOMPENSATION, "TONECOMPENSATION", N_("Tonecompensation"), ""}, - {MNOTE_NIKON_TAG_LENSTYPE, "LENSTYPE", N_("Lenstype"), ""}, - {MNOTE_NIKON_TAG_LENS, "LENS", N_("Lens"), ""}, - {MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE, "MANUALFOCUSDISTANCE", N_("Manual Focus Distance"), ""}, - {MNOTE_NIKON_TAG_FLASHUSED, "FLASHUSED", N_("Flash used"), ""}, - {MNOTE_NIKON_TAG_AFFOCUSPOSITION, "AFFOCUSPOSITION", N_("AF Focus position"), ""}, - {MNOTE_NIKON_TAG_BRACKETING, "BRACKETING", N_("Bracketing"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X008A, "UNKNOWN_0X008A", N_("Unknown tag 0x008a"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X008B, "UNKNOWN_0X008B", N_("Unknown tag 0x008b"), ""}, - {MNOTE_NIKON_TAG_CURVE, "CURVE,", N_("Contrast curve"), ""}, - {MNOTE_NIKON_TAG_COLORMODE, "COLORMODE,", N_("Colormode"), ""}, - {MNOTE_NIKON_TAG_LIGHTYPE, "LIGHTYPE,", N_("Lightype"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X0091, "UNKNOWN_0X0091", N_("Unknown tag 0x0091"), ""}, - {MNOTE_NIKON_TAG_HUE, "Hue,", N_("Hue Adjustment"), ""}, - {MNOTE_NIKON_TAG_NOISEREDUCTION , "NOISEREDUCTION,", N_("Noisereduction"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X0097, "UNKNOWN_0X0097", N_("Unknown tag 0x0097"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X0098, "UNKNOWN_0X0098", N_("Unknown tag 0x0098"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X009A, "UNKNOWN_0X009A", N_("Unknown tag 0x009a"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X00A0, "UNKNOWN_0X00A0", N_("Unknown tag 0x00a0"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X00A2, "UNKNOWN_0X00A2", N_("Unknown tag 0x00a2"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X00A3, "UNKNOWN_0X00A3", N_("Unknown tag 0x00a3"), ""}, - {MNOTE_NIKON_TAG_TOTALPICTURES , "TOTALPICTURES,", N_("Total number of pictures taken"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X00A8, "UNKNOWN_0X00A8", N_("Unknown tag 0x00a8"), ""}, - {MNOTE_NIKON_TAG_OPTIMIZATION , "OPTIMIZATION,", N_("Optimize Image"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X00AA, "UNKNOWN_0X00AA", N_("Unknown tag 0x00aa"), ""}, - {MNOTE_NIKON_TAG_UNKNOWN_0X00AB, "UNKNOWN_0X00AB", N_("Unknown tag 0x00ab"), ""}, - {MNOTE_NIKON_TAG_CAPTUREEDITORDATA, "CAPTUREEDITORDATA,", N_("Capture Editor Data"), ""}, + /* Nikon v2 */ + {MNOTE_NIKON_TAG_FIRMWARE, "Firmware", N_("Firmware Version"), ""}, + {MNOTE_NIKON_TAG_ISO, "ISO", N_("ISO Setting"), ""}, + {MNOTE_NIKON_TAG_COLORMODE1, "COLORMODE1", N_("Colormode (?)"), ""}, + {MNOTE_NIKON_TAG_QUALITY, "QUALITY", N_("Quality"), ""}, + {MNOTE_NIKON_TAG_WHITEBALANCE, "WHITEBALANCE", N_("Whitebalance"), ""}, + {MNOTE_NIKON_TAG_SHARPENING, "SHARPENING", N_("Image Sharpening"), ""}, + {MNOTE_NIKON_TAG_FOCUSMODE, "FOCUSMODE", N_("Focus Mode"), ""}, + {MNOTE_NIKON_TAG_FLASHSETTING, "FLASHSETTING", N_("Flash Setting"), ""}, + {MNOTE_NIKON_TAG_FLASHMODE, "FLASHMODE", N_("Flash Mode"), ""}, + {MNOTE_NIKON_TAG_WHITEBALANCEFINE,"WHITEBALANCEFINE",N_("Whitebalance fine ajustment"), ""}, + {MNOTE_NIKON_TAG_WHITEBALANCERB, "WHITEBALANCERB", N_("Whitebalance RB"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X000D, "UNKNOWN_0X000D", N_("Unknown tag 0x000d"), ""}, + {MNOTE_NIKON_TAG_ISOSELECTION, "ISOSELECTION", N_("Isoselection"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0011, "UNKNOWN_0X0011", N_("Unknown tag 0x0011"), ""}, + {MNOTE_NIKON_TAG_EXPOSUREDIFF, "EXPOSUREDIFF", N_("Exposurediff ?"), ""}, + {MNOTE_NIKON_TAG_FLASHCOMPENSATION, "FLASHCOMPENSATION", N_("Flashcompensation ?"), ""}, + {MNOTE_NIKON_TAG_ISO2, "ISO", N_("ISO Setting"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0016, "UNKNOWN_0X0016", N_("Unknown tag 0x0016"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0017, "UNKNOWN_0X0017", N_("Unknown tag 0x0017"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0018, "UNKNOWN_0X0018", N_("Unknown tag 0x0018"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0019, "UNKNOWN_0X0019", N_("Unknown tag 0x0019"), ""}, + {MNOTE_NIKON_TAG_IMAGEADJUSTMENT, "ImageAdjustment", N_("Image Adjustment"), ""}, + {MNOTE_NIKON_TAG_TONECOMPENSATION, "TONECOMPENSATION", N_("Tonecompensation"), ""}, + {MNOTE_NIKON_TAG_ADAPTER, "Adapter", N_("Adapter"), ""}, + {MNOTE_NIKON_TAG_LENSTYPE, "LENSTYPE", N_("Lenstype"), ""}, + {MNOTE_NIKON_TAG_LENS, "LENS", N_("Lens"), ""}, + {MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE, "MANUALFOCUSDISTANCE", N_("Manual Focus Distance"), ""}, + {MNOTE_NIKON_TAG_DIGITALZOOM, "DigitalZoom", N_("Digital Zoom"), ""}, + {MNOTE_NIKON_TAG_FLASHUSED, "FLASHUSED", N_("Flash used"), ""}, + {MNOTE_NIKON_TAG_AFFOCUSPOSITION, "AFFOCUSPOSITION", N_("AF Focus position"), ""}, + {MNOTE_NIKON_TAG_BRACKETING, "BRACKETING", N_("Bracketing"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X008A, "UNKNOWN_0X008A", N_("Unknown tag 0x008a"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X008B, "UNKNOWN_0X008B", N_("Unknown tag 0x008b"), ""}, + {MNOTE_NIKON_TAG_CURVE, "CURVE,", N_("Contrast curve"), ""}, + {MNOTE_NIKON_TAG_COLORMODE, "COLORMODE,", N_("Colormode"), ""}, + {MNOTE_NIKON_TAG_LIGHTYPE, "LIGHTYPE,", N_("Lightype"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0091, "UNKNOWN_0X0091", N_("Unknown tag 0x0091"), ""}, + {MNOTE_NIKON_TAG_HUE, "Hue,", N_("Hue Adjustment"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0094, "UNKNOWN_0X0094", N_("Unknown tag 0x0094"), ""}, + {MNOTE_NIKON_TAG_NOISEREDUCTION, "NOISEREDUCTION,", N_("Noisereduction"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0097, "UNKNOWN_0X0097", N_("Unknown tag 0x0097"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0098, "UNKNOWN_0X0098", N_("Unknown tag 0x0098"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X009A, "UNKNOWN_0X009A", N_("Unknown tag 0x009a"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X009B, "UNKNOWN_0X009B", N_("Unknown tag 0x009b"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00A0, "UNKNOWN_0X00A0", N_("Unknown tag 0x00a0"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00A2, "UNKNOWN_0X00A2", N_("Unknown tag 0x00a2"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00A3, "UNKNOWN_0X00A3", N_("Unknown tag 0x00a3"), ""}, + {MNOTE_NIKON_TAG_TOTALPICTURES, "TOTALPICTURES,", N_("Total number of pictures taken"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00A8, "UNKNOWN_0X00A8", N_("Unknown tag 0x00a8"), ""}, + {MNOTE_NIKON_TAG_OPTIMIZATION, "OPTIMIZATION,", N_("Optimize Image"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00AA, "UNKNOWN_0X00AA", N_("Unknown tag 0x00aa"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00AB, "UNKNOWN_0X00AB", N_("Unknown tag 0x00ab"), ""}, + {MNOTE_NIKON_TAG_CAPTUREEDITORDATA, "CAPTUREEDITORDATA,", N_("Capture Editor Data"), ""}, + + {MNOTE_NIKON1_TAG_UNKNOWN_0X0002, "UNKNOWN_0X0002", N_("Unknown tag 0x0002"), ""}, + {MNOTE_NIKON1_TAG_QUALITY, "QUALITY", N_("Quality"), ""}, + {MNOTE_NIKON1_TAG_COLORMODE, "COLORMODE,", N_("Colormode"), ""}, + {MNOTE_NIKON1_TAG_IMAGEADJUSTMENT, "ImageAdjustment", N_("Image Adjustment"), ""}, + {MNOTE_NIKON1_TAG_CCDSENSITIVITY, "CCDSensitivity", N_("CCD Sensitivity"), ""}, + {MNOTE_NIKON1_TAG_WHITEBALANCE, "WhiteBalance", N_("Whitebalance"), ""}, + {MNOTE_NIKON1_TAG_FOCUS, "Focus", N_("Focus"), ""}, + {MNOTE_NIKON1_TAG_UNKNOWN_0X0009, "UNKNOWN_0X0009", N_("Unknown tag 0x0009"), ""}, + {MNOTE_NIKON1_TAG_DIGITALZOOM, "DigitalZoom", N_("Digital Zoom"), ""}, + {MNOTE_NIKON1_TAG_CONVERTER, "Converter", N_("Converter"), ""}, /* Olympus */ {MNOTE_OLYMPUS_TAG_MODE, "Mode", N_("Speed/Sequence/Panorama direction"), ""}, Index: exif-mnote-data-olympus.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/exif-mnote-data-olympus.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- exif-mnote-data-olympus.c 5 May 2004 18:02:23 -0000 1.10 +++ exif-mnote-data-olympus.c 10 May 2004 12:28:48 -0000 1.11 @@ -120,7 +120,7 @@ { ExifMnoteDataOlympus *n = (ExifMnoteDataOlympus *) en; ExifShort c; - unsigned int i, s, o; + unsigned int i, s, o, o2, datao = 6, base = 0; if (!n || !buf) return; @@ -129,15 +129,42 @@ * a size of 22 bytes (6 for 'OLYMP', 2 other bytes, 2 for the * number of entries, and 12 for one entry. * - * Nikon headers start with "Nikon". + * Nikon v1 headers start with "Nikon", 0, 1, 0, number_of_tags, + * or just with number_of_tags (models D1H, D1X...). + * Nikon v2 headers start with "Nikon", 0, 2, 0, 0, 0, "MM", 0, 0x2A + * or "Nikon", 0, 2, 0, 0, 0, "II", 0x2A, 0. */ - if (buf_size - n->offset - 6 < 5) return; - if (memcmp (buf + 6 + n->offset, "Nikon", 5) && - memcmp (buf + 6 + n->offset, "OLYMP", 5)) return; if (buf_size - n->offset < 22) return; + if (!memcmp (buf + 6 + n->offset, "OLYMP", 5)) { + o2 = 6 + n->offset + 8 + 2; + c = exif_get_short (buf + 6 + n->offset + 8, n->order); + } else if (!memcmp (buf + 6 + n->offset, "Nikon", 5)) { + o2 = 6 + n->offset + 8 + 2; + datao = o2; + if (!memcmp(buf + o2 - 4, "\2\0\0\0II\x2A\0", 8)) { + n->order = EXIF_BYTE_ORDER_INTEL; + o2 += exif_get_long(buf + o2 + 4, n->order); + } else if (!memcmp(buf + o2 - 4, "\2\0\0\0MM\0\x2A", 8)) { + n->order = EXIF_BYTE_ORDER_MOTOROLA; + o2 += exif_get_long(buf + o2 + 4, n->order); + } else if (!memcmp(buf + o2 - 4, "\1\0", 2)) { + o2 -= 2; + base = MNOTE_NIKON1_TAG_BASE; + } else { + return; + } + if (o2 + 2 > buf_size) return; + c = exif_get_short (buf + o2, n->order); + o2 += 2; + } else if (!memcmp (buf + 6 + n->offset, "\0\x1b", 2)) { + o2 = 6 + n->offset; + c = exif_get_short (buf + o2, n->order); + o2 += 2; + } else { + return; + } /* Read the number of entries and remove old ones. */ - c = exif_get_short (buf + 6 + n->offset + 8, n->order); exif_mnote_data_olympus_clear (n); n->entries = malloc (sizeof (MnoteOlympusEntry) * c); @@ -145,11 +172,11 @@ /* Parse the entries */ for (i = 0; i < c; i++) { - o = 6 + n->offset + 8 + 2 + 12 * i; + o = o2 + 12 * i; if (o + 12 > buf_size) return; n->count = i + 1; - n->entries[i].tag = exif_get_short (buf + o, n->order); + n->entries[i].tag = exif_get_short (buf + o, n->order) + base; n->entries[i].format = exif_get_short (buf + o + 2, n->order); n->entries[i].components = exif_get_long (buf + o + 4, n->order); n->entries[i].order = n->order; @@ -162,7 +189,7 @@ n->entries[i].components; if (!s) return; o += 8; - if (s > 4) o = exif_get_long (buf + o, n->order) + 6; + if (s > 4) o = exif_get_long (buf + o, n->order) + datao; if (o + s > buf_size) return; /* Sanity check */ |
From: Jan P. <pa...@us...> - 2004-05-07 14:40:41
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14961 Modified Files: ChangeLog Log Message: 2004-05-07 Jan Patera <pa...@us...> * libexif/exif-entry.c: fix of EXIF_TAG_COLOR_SPACE, value 9 of EXIF_TAG_FLASH. * libexif/exif-entry.c: Fix of bug #937505 submitted by Hubert Verstraete <hu...@us...urceforge>: value 0x0058 of EXIF_TAG_FLASH. Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- ChangeLog 4 May 2004 21:27:00 -0000 1.110 +++ ChangeLog 7 May 2004 14:40:31 -0000 1.111 @@ -1,3 +1,11 @@ +2004-05-07 Jan Patera <pa...@us...> + + * libexif/exif-entry.c: fix of EXIF_TAG_COLOR_SPACE, + value 9 of EXIF_TAG_FLASH. + * libexif/exif-entry.c: Fix of bug #937505 submitted by Hubert + Verstraete <hu...@us...urceforge>: value 0x0058 of + EXIF_TAG_FLASH. + 2004-05-04 Lutz Mueller <lu...@us...> * libexif/olympus: Make it support Nikon maker notes, too. |
From: Jan P. <pa...@us...> - 2004-05-07 14:38:03
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14141 Modified Files: exif-entry.c Log Message: 2004-05-07 Jan Patera <pa...@us...> Fixes of recent changes: 1) EXIF_TAG_COLOR_SPACE moved from list to list2 because of value 0xffff 2) EXIF_TAG_SUBJECT_DISTANCE_RANGE removed from list because its duplicate in list2 was used anyway 3) missing value 0x0009 of EXIF_TAG_FLASH added as "Flash fired, compulsatory flash mode" Fix of bug #937505 submitted by Hubert Verstraete <hu...@us...urceforge>: 4) value 0x0058 of EXIF_TAG_FLASH added as "Flash did not fire, auto mode, red-eye reduction mode" Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- exif-entry.c 3 May 2004 20:07:26 -0000 1.50 +++ exif-entry.c 7 May 2004 14:37:53 -0000 1.51 @@ -155,10 +155,8 @@ { EXIF_TAG_YCBCR_POSITIONING, { "", N_("centered"), N_("co-sited"), NULL}}, { EXIF_TAG_PHOTOMETRIC_INTERPRETATION, {"", N_("RGB"), N_("YCbCr"), NULL}}, - { EXIF_TAG_COLOR_SPACE, - { "", N_("sRGB"), N_("Uncalibrated"), NULL}}, { EXIF_TAG_CUSTOM_RENDERED, - { "", N_("Normal process"), N_("Custom process"), NULL}}, + { N_("Normal process"), N_("Custom process"), NULL}}, { EXIF_TAG_EXPOSURE_MODE, { N_("Auto exposure"), N_("Manual exposure"), N_("Auto bracket"), NULL}}, { EXIF_TAG_WHITE_BALANCE, @@ -173,8 +171,6 @@ { N_("Normal"), N_("Low saturation"), N_("High saturation"), NULL}}, { EXIF_TAG_CONTRAST , {N_("Normal"), N_("Soft"), N_("Hard"), NULL}}, { EXIF_TAG_SHARPNESS, {N_("Normal"), N_("Soft"), N_("Hard"), NULL}}, - { EXIF_TAG_SUBJECT_DISTANCE_RANGE, - {N_("Unknown"), N_("Macro"),N_("Close view"),N_("Distant view"), NULL}}, { 0, {NULL}} }; @@ -250,6 +246,7 @@ {0x0005, {N_("Strobe return light not detected."), N_("W/o strobe"), NULL}}, {0x0007, {N_("Strobe return light detected."), N_("W. strobe"), NULL}}, + {0x0009, {N_("Flash fired, compulsatory flash mode"), NULL}}, {0x000d, {N_("Flash fired, compulsatory flash mode, return light " "not detected."), NULL}}, {0x000f, {N_("Flash fired, compulsatory flash mode, return light " @@ -272,6 +269,7 @@ "mode, return light not detected"), NULL}}, {0x004f, {N_("Flash fired, compulsory flash mode, red-eye reduction, " "return light detected"), NULL}}, + {0x0058, {N_("Flash did not fire, auto mode, red-eye reduction mode"), NULL}}, {0x0059, {N_("Flash fired, auto mode, red-eye reduction mode"), NULL}}, {0x005d, {N_("Flash fired, auto mode, return light not detected, " "red-eye reduction mode."), NULL}}, @@ -284,6 +282,9 @@ {2, {N_("Close view"), N_("close"), NULL}}, {3, {N_("Distant view"), N_("distant"), NULL}}, {0, {NULL}}}}, + { EXIF_TAG_COLOR_SPACE, + { {1, {N_("sRGB"), NULL}}, + {0xffff, {N_("Uncalibrated"), NULL}}}}, {0, } }; @@ -588,6 +589,7 @@ case EXIF_TAG_EXPOSURE_PROGRAM: case EXIF_TAG_FLASH: case EXIF_TAG_SUBJECT_DISTANCE_RANGE: + case EXIF_TAG_COLOR_SPACE: CF (e->format,EXIF_FORMAT_SHORT, val, maxlen); CC (e->components, 1, val, maxlen); v_short = exif_get_short (e->data, o); @@ -605,7 +607,6 @@ if (list2[i].elem[j].index != v_short) { snprintf (val, maxlen, "Internal error (unknown " "value %i).", v_short); - *((int *) 0) = 0; break; } @@ -625,7 +626,6 @@ case EXIF_TAG_ORIENTATION: case EXIF_TAG_YCBCR_POSITIONING: case EXIF_TAG_PHOTOMETRIC_INTERPRETATION: - case EXIF_TAG_COLOR_SPACE: case EXIF_TAG_CUSTOM_RENDERED: case EXIF_TAG_EXPOSURE_MODE: case EXIF_TAG_WHITE_BALANCE: @@ -822,34 +822,34 @@ break; /* SHORT, 1 component, default 1 */ - case EXIF_TAG_ORIENTATION: - case EXIF_TAG_PLANAR_CONFIGURATION: - case EXIF_TAG_YCBCR_POSITIONING: - e->components = 1; - e->format = EXIF_FORMAT_SHORT; - e->size = exif_format_get_size (e->format) * e->components; - e->data = malloc (e->size); - exif_set_short (e->data, o, 1); - break; + case EXIF_TAG_ORIENTATION: + case EXIF_TAG_PLANAR_CONFIGURATION: + case EXIF_TAG_YCBCR_POSITIONING: + e->components = 1; + e->format = EXIF_FORMAT_SHORT; + e->size = exif_format_get_size (e->format) * e->components; + e->data = malloc (e->size); + exif_set_short (e->data, o, 1); + break; /* SHORT, 1 component, default 2 */ - case EXIF_TAG_RESOLUTION_UNIT: + case EXIF_TAG_RESOLUTION_UNIT: case EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT: - e->components = 1; - e->format = EXIF_FORMAT_SHORT; - e->size = exif_format_get_size (e->format) * e->components; - e->data = malloc (e->size); - exif_set_short (e->data, o, 2); - break; + e->components = 1; + e->format = EXIF_FORMAT_SHORT; + e->size = exif_format_get_size (e->format) * e->components; + e->data = malloc (e->size); + exif_set_short (e->data, o, 2); + break; /* SHORT, 1 component, default 3 */ - case EXIF_TAG_SAMPLES_PER_PIXEL: - e->components = 1; - e->format = EXIF_FORMAT_SHORT; + case EXIF_TAG_SAMPLES_PER_PIXEL: + e->components = 1; + e->format = EXIF_FORMAT_SHORT; e->size = exif_format_get_size (e->format) * e->components; - e->data = malloc (e->size); - exif_set_short (e->data, o, 3); - break; + e->data = malloc (e->size); + exif_set_short (e->data, o, 3); + break; case EXIF_TAG_BITS_PER_SAMPLE: e->components = 3; |
From: Jan P. <pa...@us...> - 2004-05-05 18:02:44
|
Update of /cvsroot/libexif/libexif/libexif/olympus In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10860 Modified Files: exif-mnote-data-olympus.c Log Message: || instead of && caused rejecting all mnotes Index: exif-mnote-data-olympus.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/exif-mnote-data-olympus.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- exif-mnote-data-olympus.c 4 May 2004 21:27:01 -0000 1.9 +++ exif-mnote-data-olympus.c 5 May 2004 18:02:23 -0000 1.10 @@ -132,7 +132,7 @@ * Nikon headers start with "Nikon". */ if (buf_size - n->offset - 6 < 5) return; - if (memcmp (buf + 6 + n->offset, "Nikon", 5) || + if (memcmp (buf + 6 + n->offset, "Nikon", 5) && memcmp (buf + 6 + n->offset, "OLYMP", 5)) return; if (buf_size - n->offset < 22) return; |
From: Lutz M?l. <lu...@us...> - 2004-05-04 21:27:40
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30169 Modified Files: ChangeLog Log Message: 2004-05-04 Lutz Mueller <lu...@us...> * libexif/olympus: Make it support Nikon maker notes, too. Code based on work by Serge Droz <ser...@ps...>. Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.109 retrieving revision 1.110 diff -u -d -r1.109 -r1.110 --- ChangeLog 3 May 2004 20:07:26 -0000 1.109 +++ ChangeLog 4 May 2004 21:27:00 -0000 1.110 @@ -1,3 +1,8 @@ +2004-05-04 Lutz Mueller <lu...@us...> + + * libexif/olympus: Make it support Nikon maker notes, too. + Code based on work by Serge Droz <ser...@ps...>. + 2004-05-03 Lutz Mueller <lu...@us...> * libexif/exif-entry.c (exif_entry_initialize): |
From: Lutz M?l. <lu...@us...> - 2004-05-04 21:27:10
|
Update of /cvsroot/libexif/libexif/libexif/olympus In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30169/libexif/olympus Modified Files: exif-mnote-data-olympus.c mnote-olympus-entry.c mnote-olympus-tag.c mnote-olympus-tag.h Log Message: 2004-05-04 Lutz Mueller <lu...@us...> * libexif/olympus: Make it support Nikon maker notes, too. Code based on work by Serge Droz <ser...@ps...>. Index: mnote-olympus-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/mnote-olympus-entry.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- mnote-olympus-entry.c 7 Jan 2004 14:57:38 -0000 1.6 +++ mnote-olympus-entry.c 4 May 2004 21:27:01 -0000 1.7 @@ -55,7 +55,7 @@ #define MIN(a, b) (((a) < (b)) ? (a) : (b)) char * -mnote_olympus_entry_get_value (MnoteOlympusEntry *entry, char *val, unsigned int maxlen) +mnote_olympus_entry_get_value (MnoteOlympusEntry *entry, char *v, unsigned int maxlen) { char buf[32]; ExifLong vl; @@ -65,192 +65,338 @@ if (!entry) return (NULL); - memset (val, 0, maxlen); + memset (v, 0, maxlen); maxlen--; - if ((!entry->data) && (entry->components > 0)) return (val); + if ((!entry->data) && (entry->components > 0)) return (v); switch (entry->tag) { + + /* Nikon */ + case MNOTE_NIKON_TAG_FIRMWARE: + CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen); + CC (entry->components, 4, v, maxlen); + vl = exif_get_long (entry->data, entry->order); + snprintf (v, sizeof (v), "0x%04lx", vl); + break; + case MNOTE_NIKON_TAG_ISO: + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 2, v, maxlen); + //vs = exif_get_short (entry->data, entry->order); + vs = exif_get_short (entry->data + 2, entry->order); + snprintf (v, sizeof (v), "ISO %hd", vs); + break; + case MNOTE_NIKON_TAG_ISO2: + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 2, v, maxlen); + //vs = exif_get_short (entry->data, entry->order); + vs = exif_get_short (entry->data + 2, entry->order); + snprintf (v, sizeof (v), "ISO2 %hd", vs); + break; + case MNOTE_NIKON_TAG_QUALITY: + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + //CC (entry->components, 8, v, maxlen); + //vl = exif_get_long (entry->data , entry->order); + //printf("-> 0x%04x\n",entry->data); + //printf("-> 0x%s<\n",entry->data - 0); + memcpy(v, entry->data ,entry->components); + //snprintf (v, sizeof (v), "%s<", ( entry->data - 9 ); + break; + case MNOTE_NIKON_TAG_COLORMODE: + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + memcpy(v, entry->data ,entry->components); + break; + case MNOTE_NIKON_TAG_COLORMODE1: + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + memcpy(v, entry->data ,entry->components); + break; + case MNOTE_NIKON_TAG_TOTALPICTURES: + CF (entry->format, EXIF_FORMAT_LONG, v, maxlen); + CC (entry->components, 1, v, maxlen); + vl = exif_get_long (entry->data , entry->order); + snprintf (v, sizeof (v), "%lu", vl ); + break; + case MNOTE_NIKON_TAG_WHITEBALANCE: + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + memcpy(v, entry->data ,entry->components); + break; + case MNOTE_NIKON_TAG_SHARPENING: + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + memcpy(v, entry->data ,entry->components); + break; + case MNOTE_NIKON_TAG_FOCUSMODE: + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + memcpy(v, entry->data ,entry->components); + break; + case MNOTE_NIKON_TAG_FLASHSETTING: + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + memcpy(v, entry->data ,entry->components); + break; + case MNOTE_NIKON_TAG_ISOSELECTION: + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + memcpy(v, entry->data ,entry->components); + break; + case MNOTE_NIKON_TAG_FLASHMODE: + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + memcpy(v, entry->data ,entry->components); + break; + case MNOTE_NIKON_TAG_WHITEBALANCEFINE: + CF (entry->format, EXIF_FORMAT_SSHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); + vs = exif_get_short (entry->data, entry->order); + snprintf (v, sizeof (v), "%hd", vs); + break; + case MNOTE_NIKON_TAG_WHITEBALANCERB: + CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); + CC (entry->components, 4, v, maxlen); + //vr = exif_get_rational (entry->data, entry->order); + //if (vr.numerator == 0) { + // strncpy (v, _("Unknown"), sizeof (v)); + //} + //else { + { + float r,b; + vr = exif_get_rational (entry->data, entry->order); + r = (1.0*vr.numerator) / vr.denominator; + vr = exif_get_rational (entry->data+8, entry->order); + b = (1.0*vr.numerator) / vr.denominator; + //printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); + snprintf (v, sizeof (v), "Red Correction %f, Blue Correction %f", r,b); + } + break; + case MNOTE_NIKON_TAG_LENSTYPE: + CF (entry->format, EXIF_FORMAT_BYTE, v, maxlen); + CC (entry->components, 1, v, maxlen); + switch ( *( entry->data) ) { + case 0: snprintf (v, sizeof (v), "AF non D Lens"); break; + case 1: snprintf (v, sizeof (v), "manual"); break; + case 2: snprintf (v, sizeof (v), "AF-D or AF-S Lens"); break; + case 6: snprintf (v, sizeof (v), "AF-D G Lens"); break; + case 10: snprintf (v, sizeof (v), "AF-D VR Lens"); break; + default: snprintf (v, sizeof (v), "unknown Lens"); + } + break; + case MNOTE_NIKON_TAG_LENS: + CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); + CC (entry->components, 4, v, maxlen); + { + float c,d; + unsigned long a,b; + vr = exif_get_rational (entry->data, entry->order); + a = vr.numerator / vr.denominator; + vr = exif_get_rational (entry->data+8, entry->order); + b = vr.numerator / vr.denominator; + vr = exif_get_rational (entry->data+16, entry->order); + c = (1.0*vr.numerator) / vr.denominator; + vr = exif_get_rational (entry->data+24, entry->order); + d = (1.0*vr.numerator) / vr.denominator; + //printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); snprintf (v, sizeof (v), "%ld-%ldmm 1:%3.1f - %3.1f",a,b,c,d); + } + break; + case MNOTE_NIKON_TAG_FLASHUSED: + CF (entry->format, EXIF_FORMAT_BYTE, v, maxlen); + CC (entry->components, 1, v, maxlen); + switch ( *( entry->data) ) { + case 0: snprintf (v, sizeof (v), "Flash did not fire"); break; + case 4: snprintf (v, sizeof (v), "Flash unit unknown"); break; + case 7: snprintf (v, sizeof (v), "Flash is external"); break; + case 9: snprintf (v, sizeof (v), "Flash is on Camera"); break; + default: snprintf (v, sizeof (v), "unknown Flash status"); + } + break; + case MNOTE_NIKON_TAG_AFFOCUSPOSITION: + CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen); + CC (entry->components, 4, v, maxlen); + switch ( *( entry->data+1) ) { + case 0: snprintf (v, sizeof (v), "AF Position: Center"); break; + case 1: snprintf (v, sizeof (v), "AF Position: Top"); break; case 2: snprintf (v, sizeof (v), "AF Position: Bottom"); break; + case 3: snprintf (v, sizeof (v), "AF Position: Left"); break; + case 4: snprintf (v, sizeof (v), "AF Position: Right"); break; + default: snprintf (v, sizeof (v), "unknown AF Position"); + } + break; + + /* Olympus */ case MNOTE_OLYMPUS_TAG_MODE: - CF (entry->format, EXIF_FORMAT_LONG, val, maxlen); - CC (entry->components, 3, val, maxlen); + CF (entry->format, EXIF_FORMAT_LONG, v, maxlen); + CC (entry->components, 3, v, maxlen); vl = exif_get_long (entry->data, entry->order); switch (vl) { case 0: - strncpy (val, _("normal"), maxlen); + strncpy (v, _("normal"), maxlen); break; case 1: - strncpy (val, _("unknown"), maxlen); + strncpy (v, _("unknown"), maxlen); break; case 2: - strncpy (val, _("fast"), maxlen); + strncpy (v, _("fast"), maxlen); break; case 3: - strncpy (val, _("panorama"), maxlen); + strncpy (v, _("panorama"), maxlen); break; default: - snprintf (val, maxlen, _("%li"), vl); + snprintf (v, maxlen, _("%li"), vl); } vl = exif_get_long (entry->data + 4, entry->order); snprintf (buf, sizeof (buf), "/%li/", vl); - strncat (val, buf, maxlen - strlen(val)); + strncat (v, buf, maxlen - strlen (v)); vl = exif_get_long (entry->data + 4, entry->order); switch (vl) { case 1: - strncat (val, _("left to right"), maxlen - strlen(val)); + strncat (v, _("left to right"), maxlen - strlen (v)); break; case 2: - strncat (val, _("right to left"), maxlen - strlen(val)); + strncat (v, _("right to left"), maxlen - strlen (v)); break; case 3: - strncat (val, _("bottom to top"), maxlen - strlen(val)); + strncat (v, _("bottom to top"), maxlen - strlen (v)); break; case 4: - strncat (val, _("top to bottom"), maxlen - strlen(val)); + strncat (v, _("top to bottom"), maxlen - strlen (v)); break; default: snprintf (buf, sizeof (buf), _("%li"), vl); - strncat (val, buf, maxlen - strlen(val)); + strncat (v, buf, maxlen - strlen (v)); } break; case MNOTE_OLYMPUS_TAG_QUALITY: - CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); vs = exif_get_short (entry->data, entry->order); switch (vs) { case 1: - strncpy (val, _("SQ"), maxlen); + strncpy (v, _("SQ"), maxlen); break; case 2: - strncpy (val, _("HQ"), maxlen); + strncpy (v, _("HQ"), maxlen); break; case 3: - strncpy (val, _("SHQ"), maxlen); + strncpy (v, _("SHQ"), maxlen); break; default: - snprintf (val, maxlen, _("%i"), vs); + snprintf (v, maxlen, _("%i"), vs); } break; case MNOTE_OLYMPUS_TAG_MACRO: - CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); vs = exif_get_short (entry->data, entry->order); switch (vs) { case 0: - strncpy (val, _("no"), maxlen); + strncpy (v, _("no"), maxlen); break; case 1: - strncpy (val, _("yes"), maxlen); + strncpy (v, _("yes"), maxlen); break; default: - snprintf (val, maxlen, _("%i"), vs); + snprintf (v, maxlen, _("%i"), vs); } break; case MNOTE_OLYMPUS_TAG_UNKNOWN_1: - CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); - CC (entry->components, 1, val, maxlen); - strncpy (val, _("Unknown tag."), maxlen); + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); + strncpy (v, _("Unknown tag."), maxlen); break; case MNOTE_OLYMPUS_TAG_DIGIZOOM: - CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); vs = exif_get_short (entry->data, entry->order); switch (vs) { case 0: - strncpy (val, _("1x"), maxlen); + strncpy (v, _("1x"), maxlen); break; case 2: - strncpy (val, _("2x"), maxlen); + strncpy (v, _("2x"), maxlen); break; default: - snprintf (val, maxlen, _("%i"), vs); + snprintf (v, maxlen, _("%i"), vs); } break; case MNOTE_OLYMPUS_TAG_UNKNOWN_2: - CF (entry->format, EXIF_FORMAT_RATIONAL, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); + CC (entry->components, 1, v, maxlen); break; case MNOTE_OLYMPUS_TAG_UNKNOWN_3: - CF (entry->format, EXIF_FORMAT_SSHORT, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_SSHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); break; case MNOTE_OLYMPUS_TAG_VERSION: - CF (entry->format, EXIF_FORMAT_ASCII, val, maxlen); - CC (entry->components, 5, val, maxlen); - strncpy (val, entry->data, MIN (maxlen, entry->size)); + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + CC (entry->components, 5, v, maxlen); + strncpy (v, entry->data, MIN (maxlen, entry->size)); break; case MNOTE_OLYMPUS_TAG_INFO: - CF (entry->format, EXIF_FORMAT_ASCII, val, maxlen); - CC (entry->components, 52, val, maxlen); + CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen); + CC (entry->components, 52, v, maxlen); break; case MNOTE_OLYMPUS_TAG_ID: - CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen); - CC (entry->components, 32, val, maxlen); - strncpy (val, entry->data, MIN (maxlen, entry->size)); + CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen); + CC (entry->components, 32, v, maxlen); + strncpy (v, entry->data, MIN (maxlen, entry->size)); break; case MNOTE_OLYMPUS_TAG_UNKNOWN_4: - CF (entry->format, EXIF_FORMAT_LONG, val, maxlen); - CC (entry->components, 30, val, maxlen); + CF (entry->format, EXIF_FORMAT_LONG, v, maxlen); + CC (entry->components, 30, v, maxlen); break; case MNOTE_OLYMPUS_TAG_FLASHMODE: - CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); vs = exif_get_short (entry->data, entry->order); switch (vs) { case 0: - strncpy (val, _("Auto"), maxlen); + strncpy (v, _("Auto"), maxlen); break; case 1: - strncpy (val, _("Red-eye reduction"), maxlen); + strncpy (v, _("Red-eye reduction"), maxlen); break; case 2: - strncpy (val, _("Fill"), maxlen); + strncpy (v, _("Fill"), maxlen); break; case 3: - strncpy (val, _("Off"), maxlen); + strncpy (v, _("Off"), maxlen); break; default: - snprintf (val, maxlen, _("%i"), vs); + snprintf (v, maxlen, _("%i"), vs); } break; case MNOTE_OLYMPUS_TAG_FOCUSDIST: - CF (entry->format, EXIF_FORMAT_RATIONAL, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen); + CC (entry->components, 1, v, maxlen); vr = exif_get_rational (entry->data, entry->order); if (vr.numerator == 0) { - strncpy (val, _("Unknown"), maxlen); + strncpy (v, _("Unknown"), maxlen); } else { unsigned long tmp = vr.numerator / vr.denominator; /* printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); */ - snprintf (val, maxlen, "%li mm", tmp); + snprintf (v, maxlen, "%li mm", tmp); } break; case MNOTE_OLYMPUS_TAG_SHARPNESS: - CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); vs = exif_get_short (entry->data, entry->order); switch (vs) { case 0: - strncpy (val, _("Normal"), maxlen); + strncpy (v, _("Normal"), maxlen); break; case 1: - strncpy (val, _("Hard"), maxlen); + strncpy (v, _("Hard"), maxlen); break; case 2: - strncpy (val, _("Soft"), maxlen); + strncpy (v, _("Soft"), maxlen); break; default: - snprintf (val, maxlen, _("%i"), vs); + snprintf (v, maxlen, _("%i"), vs); } break; case MNOTE_OLYMPUS_TAG_WBALANCE: - CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); - CC (entry->components, 2, val, maxlen); + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 2, v, maxlen); vs = exif_get_short (entry->data, entry->order); switch (vs) { case 1: - strncpy (val, _("Automatic"), maxlen); + strncpy (v, _("Automatic"), maxlen); break; case 2: { @@ -280,58 +426,58 @@ break; } if (colorTemp) { - snprintf (val, maxlen, "Manual: %liK", colorTemp); + snprintf (v, maxlen, "Manual: %liK", colorTemp); } else { - strncpy (val, _("Manual: Unknown"), maxlen); + strncpy (v, _("Manual: Unknown"), maxlen); } } break; case 3: - strncpy (val, _("One-touch"), maxlen); + strncpy (v, _("One-touch"), maxlen); break; default: - strncpy (val, _("Unknown"), maxlen); + strncpy (v, _("Unknown"), maxlen); break; } break; case MNOTE_OLYMPUS_TAG_CONTRAST: - CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); vs = exif_get_short (entry->data, entry->order); switch (vs) { case 0: - strncpy (val, _("Hard"), maxlen); + strncpy (v, _("Hard"), maxlen); break; case 1: - strncpy (val, _("Normal"), maxlen); + strncpy (v, _("Normal"), maxlen); break; case 2: - strncpy (val, _("Soft"), maxlen); + strncpy (v, _("Soft"), maxlen); break; default: - snprintf (val, maxlen, "%i", vs); + snprintf (v, maxlen, "%i", vs); } break; case MNOTE_OLYMPUS_TAG_MANFOCUS: - CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); - CC (entry->components, 1, val, maxlen); + CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen); + CC (entry->components, 1, v, maxlen); vs = exif_get_short (entry->data, entry->order); switch (vs) { case 0: - strncpy (val, _("No"), maxlen); + strncpy (v, _("No"), maxlen); break; case 1: - strncpy (val, _("Yes"), maxlen); + strncpy (v, _("Yes"), maxlen); break; default: - snprintf (val, maxlen, _("%i"), vs); + snprintf (v, maxlen, _("%i"), vs); } break; default: break; } - return (val); + return (v); } Index: mnote-olympus-tag.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/mnote-olympus-tag.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- mnote-olympus-tag.h 26 Oct 2003 10:06:17 -0000 1.1 +++ mnote-olympus-tag.h 4 May 2004 21:27:01 -0000 1.2 @@ -26,6 +26,58 @@ #endif /* __cplusplus */ enum _MnoteOlympusTag { + + /* Nikon */ + MNOTE_NIKON_TAG_FIRMWARE = 0x0001, + MNOTE_NIKON_TAG_ISO = 0x0002, + MNOTE_NIKON_TAG_COLORMODE1 = 0x0003, + MNOTE_NIKON_TAG_QUALITY = 0x0004, + MNOTE_NIKON_TAG_WHITEBALANCE = 0x0005, + MNOTE_NIKON_TAG_SHARPENING = 0x0006, + MNOTE_NIKON_TAG_FOCUSMODE = 0x0007, + MNOTE_NIKON_TAG_FLASHSETTING = 0x0008, + MNOTE_NIKON_TAG_FLASHMODE = 0x0009, + MNOTE_NIKON_TAG_WHITEBALANCEFINE = 0x000b, + MNOTE_NIKON_TAG_WHITEBALANCERB = 0x000c, + MNOTE_NIKON_TAG_UNKNOWN_0X000D = 0x000d, + MNOTE_NIKON_TAG_EXPOSUREDIFF = 0x000e, + MNOTE_NIKON_TAG_ISOSELECTION = 0x000f, + MNOTE_NIKON_TAG_UNKNOWN_0X0011 = 0x0011, + MNOTE_NIKON_TAG_FLASHCOMPENSATION = 0x0012, + MNOTE_NIKON_TAG_ISO2 = 0x0013, + MNOTE_NIKON_TAG_UNKNOWN_0X0016 = 0x0016, + MNOTE_NIKON_TAG_UNKNOWN_0X0017 = 0x0017, + MNOTE_NIKON_TAG_UNKNOWN_0X0018 = 0x0018, + MNOTE_NIKON_TAG_UNKNOWN_0X0019 = 0x0019, + MNOTE_NIKON_TAG_TONECOMPENSATION = 0x0081, + MNOTE_NIKON_TAG_LENSTYPE = 0x0083, + MNOTE_NIKON_TAG_LENS = 0x0084, + MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE = 0x0085, + MNOTE_NIKON_TAG_FLASHUSED = 0x0087, + MNOTE_NIKON_TAG_AFFOCUSPOSITION = 0x0088, + MNOTE_NIKON_TAG_BRACKETING = 0x0089, + MNOTE_NIKON_TAG_UNKNOWN_0X008A = 0x008a, + MNOTE_NIKON_TAG_UNKNOWN_0X008B = 0x008b, + MNOTE_NIKON_TAG_CURVE = 0x008c, + MNOTE_NIKON_TAG_COLORMODE = 0x008d, + MNOTE_NIKON_TAG_LIGHTYPE = 0x0090, + MNOTE_NIKON_TAG_UNKNOWN_0X0091 = 0x0091, + MNOTE_NIKON_TAG_HUE = 0x0092, + MNOTE_NIKON_TAG_NOISEREDUCTION = 0x0095, + MNOTE_NIKON_TAG_UNKNOWN_0X0097 = 0x0097, + MNOTE_NIKON_TAG_UNKNOWN_0X0098 = 0x0098, + MNOTE_NIKON_TAG_UNKNOWN_0X009A = 0x009a, + MNOTE_NIKON_TAG_UNKNOWN_0X00A0 = 0x00a0, + MNOTE_NIKON_TAG_UNKNOWN_0X00A2 = 0x00a2, + MNOTE_NIKON_TAG_UNKNOWN_0X00A3 = 0x00a3, + MNOTE_NIKON_TAG_TOTALPICTURES = 0x00a7, + MNOTE_NIKON_TAG_UNKNOWN_0X00A8 = 0x00a8, + MNOTE_NIKON_TAG_OPTIMIZATION = 0x00a9, + MNOTE_NIKON_TAG_UNKNOWN_0X00AA = 0x00aa, + MNOTE_NIKON_TAG_UNKNOWN_0X00AB = 0x00ab, + MNOTE_NIKON_TAG_CAPTUREEDITORDATA = 0x0e01, + + /* Olympus */ MNOTE_OLYMPUS_TAG_MODE = 0x0200, MNOTE_OLYMPUS_TAG_QUALITY = 0x0201, MNOTE_OLYMPUS_TAG_MACRO = 0x0202, Index: mnote-olympus-tag.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/mnote-olympus-tag.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- mnote-olympus-tag.c 26 Oct 2003 10:06:17 -0000 1.1 +++ mnote-olympus-tag.c 4 May 2004 21:27:01 -0000 1.2 @@ -31,6 +31,57 @@ const char *title; const char *description; } table[] = { + + /* Nikon */ + {MNOTE_NIKON_TAG_FIRMWARE, "Firmware", N_("Firmware Version"), ""}, + {MNOTE_NIKON_TAG_ISO, "ISO", N_("ISO Setting"), ""}, + {MNOTE_NIKON_TAG_COLORMODE1, "COLORMODE1", N_("Colormode (?)"), ""}, + {MNOTE_NIKON_TAG_QUALITY, "QUALITY", N_("Quality"), ""}, + {MNOTE_NIKON_TAG_WHITEBALANCE, "WHITEBALANCE", N_("Whitebalance"), ""}, + {MNOTE_NIKON_TAG_SHARPENING, "SHARPENING", N_("Image Sharpening"), ""}, + {MNOTE_NIKON_TAG_FOCUSMODE, "FOCUSMODE", N_("Focus Mode"), ""}, + {MNOTE_NIKON_TAG_FLASHSETTING, "FLASHSETTING", N_("Flash Setting"), ""}, + {MNOTE_NIKON_TAG_FLASHMODE, "FLASHMODE", N_("Flash Mode"), ""}, + {MNOTE_NIKON_TAG_WHITEBALANCEFINE,"WHITEBALANCEFINE",N_("Whitebalance fine ajustment"), ""}, + {MNOTE_NIKON_TAG_WHITEBALANCERB, "WHITEBALANCERB", N_("Whitebalance RB"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X000D, "UNKNOWN_0X000D", N_("Unknown tag 0x000d"), ""}, + {MNOTE_NIKON_TAG_ISOSELECTION, "ISOSELECTION", N_("Isoselection"), ""}, {MNOTE_NIKON_TAG_UNKNOWN_0X0011, "UNKNOWN_0X0011", N_("Unknown tag 0x0011"), ""}, + {MNOTE_NIKON_TAG_EXPOSUREDIFF, "EXPOSUREDIFF", N_("Exposurediff ?"), ""}, + {MNOTE_NIKON_TAG_FLASHCOMPENSATION, "FLASHCOMPENSATION", N_("Flashcompensation ?"), ""}, + {MNOTE_NIKON_TAG_ISO2, "ISO", N_("ISO Setting"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0016, "UNKNOWN_0X0016", N_("Unknown tag 0x0016"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0017, "UNKNOWN_0X0017", N_("Unknown tag 0x0017"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0018, "UNKNOWN_0X0018", N_("Unknown tag 0x0018"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0019, "UNKNOWN_0X0019", N_("Unknown tag 0x0019"), ""}, + {MNOTE_NIKON_TAG_TONECOMPENSATION, "TONECOMPENSATION", N_("Tonecompensation"), ""}, + {MNOTE_NIKON_TAG_LENSTYPE, "LENSTYPE", N_("Lenstype"), ""}, + {MNOTE_NIKON_TAG_LENS, "LENS", N_("Lens"), ""}, + {MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE, "MANUALFOCUSDISTANCE", N_("Manual Focus Distance"), ""}, + {MNOTE_NIKON_TAG_FLASHUSED, "FLASHUSED", N_("Flash used"), ""}, + {MNOTE_NIKON_TAG_AFFOCUSPOSITION, "AFFOCUSPOSITION", N_("AF Focus position"), ""}, + {MNOTE_NIKON_TAG_BRACKETING, "BRACKETING", N_("Bracketing"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X008A, "UNKNOWN_0X008A", N_("Unknown tag 0x008a"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X008B, "UNKNOWN_0X008B", N_("Unknown tag 0x008b"), ""}, + {MNOTE_NIKON_TAG_CURVE, "CURVE,", N_("Contrast curve"), ""}, + {MNOTE_NIKON_TAG_COLORMODE, "COLORMODE,", N_("Colormode"), ""}, + {MNOTE_NIKON_TAG_LIGHTYPE, "LIGHTYPE,", N_("Lightype"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0091, "UNKNOWN_0X0091", N_("Unknown tag 0x0091"), ""}, + {MNOTE_NIKON_TAG_HUE, "Hue,", N_("Hue Adjustment"), ""}, + {MNOTE_NIKON_TAG_NOISEREDUCTION , "NOISEREDUCTION,", N_("Noisereduction"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0097, "UNKNOWN_0X0097", N_("Unknown tag 0x0097"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X0098, "UNKNOWN_0X0098", N_("Unknown tag 0x0098"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X009A, "UNKNOWN_0X009A", N_("Unknown tag 0x009a"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00A0, "UNKNOWN_0X00A0", N_("Unknown tag 0x00a0"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00A2, "UNKNOWN_0X00A2", N_("Unknown tag 0x00a2"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00A3, "UNKNOWN_0X00A3", N_("Unknown tag 0x00a3"), ""}, + {MNOTE_NIKON_TAG_TOTALPICTURES , "TOTALPICTURES,", N_("Total number of pictures taken"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00A8, "UNKNOWN_0X00A8", N_("Unknown tag 0x00a8"), ""}, + {MNOTE_NIKON_TAG_OPTIMIZATION , "OPTIMIZATION,", N_("Optimize Image"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00AA, "UNKNOWN_0X00AA", N_("Unknown tag 0x00aa"), ""}, + {MNOTE_NIKON_TAG_UNKNOWN_0X00AB, "UNKNOWN_0X00AB", N_("Unknown tag 0x00ab"), ""}, + {MNOTE_NIKON_TAG_CAPTUREEDITORDATA, "CAPTUREEDITORDATA,", N_("Capture Editor Data"), ""}, + + /* Olympus */ {MNOTE_OLYMPUS_TAG_MODE, "Mode", N_("Speed/Sequence/Panorama direction"), ""}, {MNOTE_OLYMPUS_TAG_QUALITY, "Quality", N_("Quality"), ""}, {MNOTE_OLYMPUS_TAG_MACRO, "Macro", N_("Macro"), ""}, Index: exif-mnote-data-olympus.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/exif-mnote-data-olympus.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- exif-mnote-data-olympus.c 2 Apr 2004 16:10:30 -0000 1.8 +++ exif-mnote-data-olympus.c 4 May 2004 21:27:01 -0000 1.9 @@ -128,9 +128,13 @@ * Olympus headers start with "OLYMP" and need to have at least * a size of 22 bytes (6 for 'OLYMP', 2 other bytes, 2 for the * number of entries, and 12 for one entry. + * + * Nikon headers start with "Nikon". */ + if (buf_size - n->offset - 6 < 5) return; + if (memcmp (buf + 6 + n->offset, "Nikon", 5) || + memcmp (buf + 6 + n->offset, "OLYMP", 5)) return; if (buf_size - n->offset < 22) return; - if (memcmp (buf + 6 + n->offset, "OLYMP", 5)) return; /* Read the number of entries and remove old ones. */ c = exif_get_short (buf + 6 + n->offset + 8, n->order); |
From: Lutz M?l. <lu...@us...> - 2004-05-04 21:27:10
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30169/libexif Modified Files: exif-data.c Log Message: 2004-05-04 Lutz Mueller <lu...@us...> * libexif/olympus: Make it support Nikon maker notes, too. Code based on work by Serge Droz <ser...@ps...>. Index: exif-data.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-data.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- exif-data.c 4 Apr 2004 09:01:01 -0000 1.36 +++ exif-data.c 4 May 2004 21:27:01 -0000 1.37 @@ -660,7 +660,8 @@ if (e) { /* Olympus */ - if ((e->size >= 5) && (!memcmp (e->data, "OLYMP", 5))) + if ((e->size >= 5) && (!memcmp (e->data, "OLYMP", 5) || + !memcmp (e->data, "Nikon", 5))) data->priv->md = exif_mnote_data_olympus_new (); /* Pentax */ |
From: Lutz M?l. <lu...@us...> - 2004-05-03 20:07:34
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19250/libexif Modified Files: exif-entry.c Log Message: 2004-05-03 Lutz Mueller <lu...@us...> * libexif/exif-entry.c (exif_entry_initialize): Added EXIF_TAG_PIXEL_[X,Y]_DIMENSION (thanks to Antonio Scuri <sc...@te...>). Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- exif-entry.c 2 Apr 2004 16:09:12 -0000 1.49 +++ exif-entry.c 3 May 2004 20:07:26 -0000 1.50 @@ -778,6 +778,8 @@ switch (tag) { /* LONG, 1 component, no default */ + case EXIF_TAG_PIXEL_X_DIMENSION: + case EXIF_TAG_PIXEL_Y_DIMENSION: case EXIF_TAG_EXIF_IFD_POINTER: case EXIF_TAG_GPS_INFO_IFD_POINTER: case EXIF_TAG_INTEROPERABILITY_IFD_POINTER: |
From: Lutz M?l. <lu...@us...> - 2004-05-03 20:07:34
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19250 Modified Files: ChangeLog Log Message: 2004-05-03 Lutz Mueller <lu...@us...> * libexif/exif-entry.c (exif_entry_initialize): Added EXIF_TAG_PIXEL_[X,Y]_DIMENSION (thanks to Antonio Scuri <sc...@te...>). Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.108 retrieving revision 1.109 diff -u -d -r1.108 -r1.109 --- ChangeLog 3 May 2004 19:01:18 -0000 1.108 +++ ChangeLog 3 May 2004 20:07:26 -0000 1.109 @@ -1,5 +1,11 @@ 2004-05-03 Lutz Mueller <lu...@us...> + * libexif/exif-entry.c (exif_entry_initialize): + Added EXIF_TAG_PIXEL_[X,Y]_DIMENSION (thanks to Antonio Scuri + <sc...@te...>). + +2004-05-03 Lutz Mueller <lu...@us...> + * libexif/exif-tag.c: Hide some functions there that have been requested by Antonio Scuri <sc...@te...>. |
From: Lutz M?l. <lu...@us...> - 2004-05-03 19:02:12
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5071/libexif Modified Files: exif-tag.c Log Message: 2004-05-03 Lutz Mueller <lu...@us...> * libexif/exif-tag.c: Hide some functions there that have been requested by Antonio Scuri <sc...@te...>. Index: exif-tag.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-tag.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- exif-tag.c 6 Aug 2003 19:47:53 -0000 1.14 +++ exif-tag.c 3 May 2004 19:01:18 -0000 1.15 @@ -571,6 +571,29 @@ {0, NULL, NULL, NULL} }; +/* For now, do not use these functions. */ +ExifTag exif_tag_table_get_tag (unsigned int n); +const char *exif_tag_table_get_name (unsigned int n); +unsigned int exif_tag_table_count (void); + +ExifTag +exif_tag_table_get_tag (unsigned int n) +{ + return (n < exif_tag_table_count ()) ? ExifTagTable[n].tag : 0; +} + +const char * +exif_tag_table_get_name (unsigned int n) +{ + return (n < exif_tag_table_count ()) ? ExifTagTable[n].name : NULL; +} + +unsigned int +exif_tag_table_count (void) +{ + return sizeof (ExifTagTable) / sizeof (ExifTagTable[0]); +} + const char * exif_tag_get_name (ExifTag tag) { |
From: Lutz M?l. <lu...@us...> - 2004-05-03 19:01:29
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5071 Modified Files: ChangeLog Log Message: 2004-05-03 Lutz Mueller <lu...@us...> * libexif/exif-tag.c: Hide some functions there that have been requested by Antonio Scuri <sc...@te...>. Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.107 retrieving revision 1.108 diff -u -d -r1.107 -r1.108 --- ChangeLog 2 May 2004 20:59:23 -0000 1.107 +++ ChangeLog 3 May 2004 19:01:18 -0000 1.108 @@ -1,3 +1,8 @@ +2004-05-03 Lutz Mueller <lu...@us...> + + * libexif/exif-tag.c: Hide some functions there that have been + requested by Antonio Scuri <sc...@te...>. + 2004-05-02 Lutz Mueller <lu...@us...> * configure.in: GETTEXT_PACKAGE=${PACKAGE}-${LIBEXIF_CURRENT} |
From: Lutz M?l. <lu...@us...> - 2004-05-02 20:59:32
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7413 Modified Files: ChangeLog configure.in Log Message: 2004-05-02 Lutz Mueller <lu...@us...> * configure.in: GETTEXT_PACKAGE=${PACKAGE}-${LIBEXIF_CURRENT} on request of Ilya Konstantinov <fu...@sh...> (Debian needs it). Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.106 retrieving revision 1.107 diff -u -d -r1.106 -r1.107 --- ChangeLog 2 May 2004 20:39:20 -0000 1.106 +++ ChangeLog 2 May 2004 20:59:23 -0000 1.107 @@ -1,5 +1,11 @@ 2004-05-02 Lutz Mueller <lu...@us...> + * configure.in: GETTEXT_PACKAGE=${PACKAGE}-${LIBEXIF_CURRENT} + on request of Ilya Konstantinov <fu...@sh...> + (Debian needs it). + +2004-05-02 Lutz Mueller <lu...@us...> + * libjpeg/jpeg-marker.h: No implicit enum declaration. Seen by Antonio Scuri <sc...@te...>. Index: configure.in =================================================================== RCS file: /cvsroot/libexif/libexif/configure.in,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- configure.in 6 Apr 2004 19:31:53 -0000 1.63 +++ configure.in 2 May 2004 20:59:23 -0000 1.64 @@ -36,7 +36,7 @@ ALL_LINGUAS="de es fr" # EVIL HACKS AC_MSG_CHECKING([for po/Makevars requiring evil hack]) -GETTEXT_PACKAGE="${PACKAGE}" +GETTEXT_PACKAGE=${PACKAGE}-${LIBEXIF_CURRENT} AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The gettext domain we're using]) AC_SUBST(GETTEXT_PACKAGE) if test -f po/Makevars.template |
From: Lutz M?l. <lu...@us...> - 2004-05-02 20:39:28
|
Update of /cvsroot/libexif/libexif/libjpeg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2469/libjpeg Modified Files: jpeg-marker.h Log Message: 2004-05-02 Lutz Mueller <lu...@us...> * libjpeg/jpeg-marker.h: No implicit enum declaration. Seen by Antonio Scuri <sc...@te...>. Index: jpeg-marker.h =================================================================== RCS file: /cvsroot/libexif/libexif/libjpeg/jpeg-marker.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- jpeg-marker.h 15 Dec 2002 11:41:11 -0000 1.3 +++ jpeg-marker.h 2 May 2004 20:39:20 -0000 1.4 @@ -24,8 +24,7 @@ extern "C" { #endif /* __cplusplus */ -typedef enum _JPEGMarker JPEGMarker; -enum _JPEGMarker { +typedef enum { JPEG_MARKER_SOF0 = 0xc0, JPEG_MARKER_SOF1 = 0xc1, JPEG_MARKER_SOF2 = 0xc2, @@ -89,7 +88,7 @@ JPEG_MARKER_JPG12 = 0xfc, JPEG_MARKER_JPG13 = 0xfd, JPEG_MARKER_COM = 0xfe -}; +} JPEGMarker; #define JPEG_IS_MARKER(m) (((m) >= JPEG_MARKER_SOF0) && \ ((m) <= JPEG_MARKER_COM)) |
From: Lutz M?l. <lu...@us...> - 2004-05-02 20:39:28
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2469 Modified Files: ChangeLog Log Message: 2004-05-02 Lutz Mueller <lu...@us...> * libjpeg/jpeg-marker.h: No implicit enum declaration. Seen by Antonio Scuri <sc...@te...>. Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.105 retrieving revision 1.106 diff -u -d -r1.105 -r1.106 --- ChangeLog 4 Apr 2004 09:01:01 -0000 1.105 +++ ChangeLog 2 May 2004 20:39:20 -0000 1.106 @@ -1,3 +1,8 @@ +2004-05-02 Lutz Mueller <lu...@us...> + + * libjpeg/jpeg-marker.h: No implicit enum declaration. Seen by + Antonio Scuri <sc...@te...>. + 2004-04-04 Lutz Mueller lu...@us... * libexif/exif-data.c: If we don't know a tag we are going to parse, |
From: Hans U. N. <hu...@us...> - 2004-04-07 00:52:04
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24962/libexif Modified Files: Makefile.am exif-utils.h Log Message: actually ship our _stdint.h Index: exif-utils.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-utils.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- exif-utils.h 6 Apr 2004 19:31:54 -0000 1.9 +++ exif-utils.h 7 Apr 2004 00:39:10 -0000 1.10 @@ -25,8 +25,8 @@ extern "C" { #endif /* __cplusplus */ -#include "libexif/exif-byte-order.h" -#include "libexif/_stdint.h" +#include <libexif/exif-byte-order.h> +#include <libexif/_stdint.h> /* If these definitions don't work for you, please let us fix the Index: Makefile.am =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/Makefile.am,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- Makefile.am 6 Apr 2004 19:31:54 -0000 1.24 +++ Makefile.am 7 Apr 2004 00:39:10 -0000 1.25 @@ -39,11 +39,12 @@ exif-mnote-data.h \ exif-result.h \ exif-tag.h \ - exif-utils.h + exif-utils.h \ + _stdint.h pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libexif.pc EXTRA_DIST = libexif.pc.in -clean-generic: - rm -f _stdint.h +DISTCLEANFILES = _stdint.h + |
From: Hans U. N. <hu...@us...> - 2004-04-06 19:44:49
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25571 Modified Files: Makefile.am autogen.sh configure.in Log Message: Create and use _stdint.h Index: Makefile.am =================================================================== RCS file: /cvsroot/libexif/libexif/Makefile.am,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- Makefile.am 10 Jan 2004 19:24:33 -0000 1.27 +++ Makefile.am 6 Apr 2004 19:31:53 -0000 1.28 @@ -1,3 +1,15 @@ -SUBDIRS = libexif libjpeg test po +SUBDIRS = libexif libjpeg test po m4 EXTRA_DIST = @PACKAGE@.spec + +######################################################################## +# The following default options for aclocal and automake +# are required in the top level Makefile.am for the automatic +# re-building of the build system files (only if configured with +# --enable-maintainer-mode). +# +# It is not sufficient to have these options somewhere in autogen.sh! + +ACLOCAL_AMFLAGS = -I m4 +AUTOMAKE_OPTIONS = gnu + Index: autogen.sh =================================================================== RCS file: /cvsroot/libexif/libexif/autogen.sh,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- autogen.sh 22 Mar 2003 21:09:56 -0000 1.15 +++ autogen.sh 6 Apr 2004 19:31:53 -0000 1.16 @@ -83,6 +83,8 @@ *xlc | *xlc\ * | *lcc | *lcc\ *) am_opt=--include-deps;; esac +ACLOCAL_FLAGS="-I ${srcdir}/m4 ${ACLOCAL_FLAGS}" + gettext_version=`gettextize --version 2>&1 | sed -n 's/^.*GNU gettext.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $gettext_version in 0.10.*) Index: configure.in =================================================================== RCS file: /cvsroot/libexif/libexif/configure.in,v retrieving revision 1.62 retrieving revision 1.63 diff -u -d -r1.62 -r1.63 --- configure.in 6 Apr 2004 13:16:19 -0000 1.62 +++ configure.in 6 Apr 2004 19:31:53 -0000 1.63 @@ -25,6 +25,11 @@ AM_PROG_LIBTOOL +dnl Create a stdint.h-like file containing size-specific integer definitions +dnl that will always be available +AC_NEED_STDINT_H(libexif/_stdint.h) + + dnl --------------------------------------------------------------------------- dnl i18n support dnl --------------------------------------------------------------------------- @@ -43,6 +48,7 @@ fi AM_GNU_GETTEXT + dnl --------------------------------------------------------------------------- dnl Warnings dnl --------------------------------------------------------------------------- @@ -62,6 +68,7 @@ libexif/pentax/Makefile libjpeg/Makefile test/Makefile + m4/Makefile libexif/libexif.pc ]) |
From: Hans U. N. <hu...@us...> - 2004-04-06 19:44:49
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25571/libexif Modified Files: Makefile.am exif-utils.h Log Message: Create and use _stdint.h Index: exif-utils.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-utils.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- exif-utils.h 1 Apr 2004 20:37:39 -0000 1.8 +++ exif-utils.h 6 Apr 2004 19:31:54 -0000 1.9 @@ -25,13 +25,13 @@ extern "C" { #endif /* __cplusplus */ -#include <libexif/exif-byte-order.h> +#include "libexif/exif-byte-order.h" +#include "libexif/_stdint.h" -/* Works correct only on machines with a stdint.h, otherwise it assumes - * sizeof(long) == 4 */ - -#ifdef HAVE_INTTYPES_H -#include <inttypes.h> + +/* If these definitions don't work for you, please let us fix the + * macro generating _stdint.h */ + typedef char ExifByte; /* 1 byte */ typedef char * ExifAscii; typedef uint16_t ExifShort; /* 2 bytes */ @@ -41,16 +41,6 @@ typedef int32_t ExifSLong; /* 4 bytes */ typedef struct {ExifSLong numerator; ExifSLong denominator;} ExifSRational; -#else -typedef char ExifByte; /* 1 byte */ -typedef char * ExifAscii; -typedef unsigned short ExifShort; /* 2 bytes */ -typedef unsigned long ExifLong; /* 4 bytes */ -typedef struct {ExifLong numerator; ExifLong denominator;} ExifRational; -typedef char ExifUndefined; /* 1 byte */ -typedef signed long ExifSLong; /* 4 bytes */ -typedef struct {ExifSLong numerator; ExifSLong denominator;} ExifSRational; -#endif ExifShort exif_get_short (const unsigned char *b, ExifByteOrder order); ExifLong exif_get_long (const unsigned char *b, ExifByteOrder order); Index: Makefile.am =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/Makefile.am,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- Makefile.am 26 Oct 2003 22:30:26 -0000 1.23 +++ Makefile.am 6 Apr 2004 19:31:54 -0000 1.24 @@ -45,3 +45,5 @@ pkgconfig_DATA = libexif.pc EXTRA_DIST = libexif.pc.in +clean-generic: + rm -f _stdint.h |
From: Hans U. N. <hu...@us...> - 2004-04-06 19:44:49
|
Update of /cvsroot/libexif/libexif/m4 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25571/m4 Added Files: Makefile.am stdint.m4 Log Message: Create and use _stdint.h --- NEW FILE: Makefile.am --- EXTRA_DIST = stdint.m4 --- NEW FILE: stdint.m4 --- dnl AC_NEED_STDINT_H ( HEADER-TO-GENERATE ) dnl $Id: stdint.m4,v 1.1 2004/04/06 19:31:55 hun Exp $ dnl Copyright 2001-2002 by Dan Fandrich <da...@co...> dnl This file may be copied and used freely without restrictions. No warranty dnl is expressed or implied. dnl dnl Look for a header file that defines size-specific integer types like the dnl ones recommended to be in stdint.h in the C99 standard (e.g. uint32_t). dnl This is a dumbed-down version of the macro of the same name in the file dnl ac_need_stdint_h.m4 which is part of the ac-archive, available at dnl <URL:http://ac-archive.sourceforge.net/> (also, another macro dnl AC_CREATE_STDINT_H by the same author). This version is not as smart, dnl but works on older autoconf versions and has a different license. dnl AC_CHECK_DEFINED_TYPE ( TYPE, FILE, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND ) dnl This is similar to _AC_CHECK_TYPE_NEW (a.k.a. new syntax version of dnl AC_CHECK_TYPE) in autoconf 2.50 but works on older versions AC_DEFUN(AC_CHECK_DEFINED_TYPE, [AC_MSG_CHECKING([for $1 in $2]) AC_EGREP_CPP(changequote(<<,>>)dnl <<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl changequote([,]), [#include <$2>], ac_cv_type_$1=yes, ac_cv_type_$1=no)dnl AC_MSG_RESULT($ac_cv_type_$1) if test $ac_cv_type_$1 = yes; then $3 else $4 fi ]) dnl Look for a header file that defines size-specific integer types AC_DEFUN(AC_NEED_STDINT_H, [ changequote(, )dnl ac_dir=`echo "$1"|sed 's%/[^/][^/]*$%%'` changequote([, ])dnl if test "$ac_dir" != "$1" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" fi AC_CHECK_DEFINED_TYPE(uint8_t, stdint.h, [ cat > "$1" <<EOF /* This file is generated automatically by configure */ #include <stdint.h> EOF], [AC_CHECK_DEFINED_TYPE(uint8_t, inttypes.h, [cat > "$1" <<EOF /* This file is generated automatically by configure */ #include <inttypes.h> EOF], [AC_CHECK_DEFINED_TYPE(uint8_t, sys/types.h, [cat > "$1" <<EOF /* This file is generated automatically by configure */ #include <sys/types.h> EOF], [AC_CHECK_DEFINED_TYPE(u_int8_t, sys/types.h, [cat > "$1" <<EOF /* This file is generated automatically by configure */ #ifndef __STDINT_H #define __STDINT_H #include <sys/types.h> typedef u_int8_t uint8_t; typedef u_int16_t uint16_t; typedef u_int32_t uint32_t; EOF AC_CHECK_DEFINED_TYPE(u_int64_t, sys/types.h, [cat >> "$1" <<EOF typedef u_int64_t uint64_t; #endif /*!__STDINT_H*/ EOF], [cat >> "$1" <<EOF /* 64-bit types are not available on this system */ /* typedef u_int64_t uint64_t; */ #endif /*!__STDINT_H*/ EOF]) ], [AC_MSG_WARN([I can't find size-specific integer definitions on this system]) if test -e "$1" ; then rm -f "$1" fi ])])])])dnl ]) |
From: Hans U. N. <hu...@us...> - 2004-04-06 14:21:25
|
Update of /cvsroot/libexif/libexif/m4 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25621/m4 Log Message: Directory /cvsroot/libexif/libexif/m4 added to the repository |