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: Marcus M. <mar...@us...> - 2006-09-27 09:34:01
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv4168 Modified Files: exif-loader.c Log Message: min -> MAX, max -> MAX Index: exif-loader.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -p -d -r1.22 -r1.23 --- exif-loader.c 19 Sep 2006 05:39:10 -0000 1.22 +++ exif-loader.c 27 Sep 2006 09:33:58 -0000 1.23 @@ -40,6 +40,9 @@ #undef JPEG_MARKER_COM #define JPEG_MARKER_COM 0xfe +#undef MAX +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) + typedef enum { EL_READ = 0, EL_READ_SIZE_BYTE_24, @@ -262,7 +265,7 @@ exif_loader_write (ExifLoader *eld, unsi default: switch (eld->b[i]) { case JPEG_MARKER_APP1: - if (!memcmp (eld->b + i + 3, ExifHeader, min(sizeof (ExifHeader), max(0, sizeof (eld->b) - i - 3)))) { + if (!memcmp (eld->b + i + 3, ExifHeader, MIN(sizeof (ExifHeader), MAX(0, sizeof (eld->b) - i - 3)))) { eld->data_format = EL_DATA_FORMAT_EXIF; } else { eld->data_format = EL_DATA_FORMAT_JPEG; /* Probably JFIF - keep searching for APP1 EXIF*/ |
From: Jan P. <pa...@us...> - 2006-09-21 05:45:20
|
Update of /cvsroot/libexif/libexif/libexif/canon In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv5911 Modified Files: mnote-canon-entry.c Log Message: Cleanup of long existing mess: 1) snprintf(buf, sizeof(buf), xx); strncpy(val, buf, maxlen-strlen(val)) -> snprintf(val, maxlen, xx) 2) strncpy(val, xx, maxlen - strlen(val)) -> strncpy(val, xx, maxlen) Index: mnote-canon-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/canon/mnote-canon-entry.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -p -d -r1.18 -r1.19 --- mnote-canon-entry.c 17 Sep 2006 10:18:29 -0000 1.18 +++ mnote-canon-entry.c 21 Sep 2006 05:45:14 -0000 1.19 @@ -351,10 +351,10 @@ canon_search_table_value (struct canon_e } if ((table[j].subtag == t) && (table[j].value == vs) && table[j].name) { /* Matching subtag and value found. */ - strncpy (val, table[j].name, maxlen - strlen (val)); + strncpy (val, table[j].name, maxlen); } else { /* No matching subtag and/or value found. */ - snprintf (val, maxlen - strlen (val), "0x%04x", vs); + snprintf (val, maxlen, "0x%04x", vs); } } @@ -394,7 +394,7 @@ canon_search_table_bitfield (struct cano } } else { /* No matching subtag found. */ - snprintf (val, maxlen - strlen (val), "0x%04x", vs); + snprintf (val, maxlen, "0x%04x", vs); } } @@ -468,31 +468,26 @@ mnote_canon_entry_get_value (const Mnote switch (t) { case 1: if (!vs) break; - snprintf (buf, sizeof (buf), _("%i (ms)"), vs * 100); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, _("%i (ms)"), vs * 100); break; case 22: case 23: case 24: - snprintf (buf, sizeof (buf), "%u", vs); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, "%u", vs); break; case 25: case 26: - snprintf (buf, sizeof (buf), "%.2f", apex_value_to_aperture (vs / 32.0)); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, "%.2f", apex_value_to_aperture (vs / 32.0)); break; case 28: canon_search_table_bitfield(entries_settings_1, t, vs, val, maxlen); break; case 34: - snprintf (buf, sizeof (buf), "%.2f", vs / 10.0); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, "%.2f", vs / 10.0); break; case 35: case 36: - snprintf (buf, sizeof (buf), "%u", vs); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, "%u", vs); break; default: canon_search_table_value (entries_settings_1, t, vs, val, maxlen); @@ -504,13 +499,11 @@ mnote_canon_entry_get_value (const Mnote vs = exif_get_short (entry->data + t * 2, entry->order); switch (t) { case 1: - snprintf (buf, sizeof (buf), "%u", vs); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, "%u", vs); break; case 2: case 3: - snprintf (buf, sizeof (buf), _("%.2f mm"), vs * 25.4 / 1000); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, _("%.2f mm"), vs * 25.4 / 1000); break; default: canon_search_table_value (entries_focal_length, t, vs, val, maxlen); @@ -526,47 +519,39 @@ mnote_canon_entry_get_value (const Mnote switch (t) { case 0: case 1: - snprintf (buf, sizeof (buf), "%.0f", apex_value_to_iso_speed(vs / 32.0)); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, "%.0f", apex_value_to_iso_speed(vs / 32.0)); break; case 2: case 5: case 14: case 16: - snprintf (buf, sizeof (buf), _("%.2f EV"), vs / 32.0); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, _("%.2f EV"), vs / 32.0); break; case 3: case 20: - snprintf (buf, sizeof (buf), "%.2f", apex_value_to_aperture (vs / 32.0)); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, "%.2f", apex_value_to_aperture (vs / 32.0)); break; case 4: case 21: d = apex_value_to_shutter_speed(vs / 32.0); if (d < 1) - snprintf (buf, sizeof (buf), _("1/%d"),(int)(1.0 / d)); + snprintf (val, maxlen, _("1/%d"),(int)(1.0 / d)); else - snprintf (buf, sizeof (buf), _("%d"), (int) d); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, _("%d"), (int) d); break; case 8: - snprintf (buf, sizeof (buf), "%u", vs); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, "%u", vs); break; case 12: - snprintf (buf, sizeof (buf), "%.2f", vs / 32.0); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, "%.2f", vs / 32.0); break; case 18: case 19: - snprintf (buf, sizeof (buf), _("%u mm"), vs); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, _("%u mm"), vs); break; case 28: if (!vs) break; - snprintf (buf, sizeof (buf), _("%i (ms)"), vs * 100); - strncpy (val, buf, maxlen - strlen (val)); + snprintf (val, maxlen, _("%i (ms)"), vs * 100); break; default: canon_search_table_value (entries_settings_2, t, vs, val, maxlen); |
From: Jan P. <pa...@us...> - 2006-09-19 05:39:16
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv27384/libexif Modified Files: exif-loader.c Log Message: libexif/exif_loader.c: exif_loader_write() skips non-EXIF APP1 markers. Adobe Photoshop & Elements tend to create JPEG's with sequence of APP1 JFIF, APP13, and APP1 EXIF Index: exif-loader.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -p -d -r1.21 -r1.22 --- exif-loader.c 15 Apr 2006 19:15:30 -0000 1.21 +++ exif-loader.c 19 Sep 2006 05:39:10 -0000 1.22 @@ -262,7 +262,11 @@ exif_loader_write (ExifLoader *eld, unsi default: switch (eld->b[i]) { case JPEG_MARKER_APP1: - eld->data_format = EL_DATA_FORMAT_EXIF; + if (!memcmp (eld->b + i + 3, ExifHeader, min(sizeof (ExifHeader), max(0, sizeof (eld->b) - i - 3)))) { + eld->data_format = EL_DATA_FORMAT_EXIF; + } else { + eld->data_format = EL_DATA_FORMAT_JPEG; /* Probably JFIF - keep searching for APP1 EXIF*/ + } eld->size = 0; eld->state = EL_READ_SIZE_BYTE_08; break; |
From: Lutz M. <lu...@us...> - 2006-09-17 10:18:36
|
Update of /cvsroot/libexif/libexif/libexif/canon In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24206/libexif/canon Modified Files: mnote-canon-entry.c mnote-canon-tag.c mnote-canon-tag.h Log Message: 2006-09-17 Lutz Mueller <lu...@us...> Patch by Jef Driesen <jef...@ho...>: * libexif/canon/*: Improve support for canon maker notes. Index: mnote-canon-tag.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/canon/mnote-canon-tag.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -p -d -r1.8 -r1.9 --- mnote-canon-tag.c 27 Aug 2005 10:30:10 -0000 1.8 +++ mnote-canon-tag.c 17 Sep 2006 10:18:29 -0000 1.9 @@ -32,7 +32,9 @@ static struct { const char *description; } table[] = { {MNOTE_CANON_TAG_SETTINGS_1, "Settings1", N_("Settings (first part)"), ""}, + {MNOTE_CANON_TAG_FOCAL_LENGTH, "FocalLength", N_("Focal length"), ""}, {MNOTE_CANON_TAG_SETTINGS_2, "Settings2", N_("Settings (second part)"), ""}, + {MNOTE_CANON_TAG_PANORAMA, "Panorama", N_("Panorama"), ""}, {MNOTE_CANON_TAG_IMAGE_TYPE, "ImageType", N_("Image type"), ""}, {MNOTE_CANON_TAG_FIRMWARE, "FirmwareVersion", N_("Firmware version"), ""}, {MNOTE_CANON_TAG_IMAGE_NUMBER, "ImageNumber", N_("Image number"), ""}, @@ -48,37 +50,69 @@ static struct { const char *name; } table_sub[] = { {MNOTE_CANON_TAG_SETTINGS_1, 0, N_("Macro mode")}, - {MNOTE_CANON_TAG_SETTINGS_1, 1, N_("Self time")}, + {MNOTE_CANON_TAG_SETTINGS_1, 1, N_("Self-timer")}, {MNOTE_CANON_TAG_SETTINGS_1, 2, N_("Quality")}, {MNOTE_CANON_TAG_SETTINGS_1, 3, N_("Flash mode")}, - {MNOTE_CANON_TAG_SETTINGS_1, 4, N_("Continuous drive mode")}, + {MNOTE_CANON_TAG_SETTINGS_1, 4, N_("Drive mode")}, {MNOTE_CANON_TAG_SETTINGS_1, 6, N_("Focus mode")}, {MNOTE_CANON_TAG_SETTINGS_1, 9, N_("Image size")}, {MNOTE_CANON_TAG_SETTINGS_1, 10, N_("Easy shooting mode")}, + {MNOTE_CANON_TAG_SETTINGS_1, 11, N_("Digital zoom")}, {MNOTE_CANON_TAG_SETTINGS_1, 12, N_("Contrast")}, {MNOTE_CANON_TAG_SETTINGS_1, 13, N_("Saturation")}, {MNOTE_CANON_TAG_SETTINGS_1, 14, N_("Sharpness")}, {MNOTE_CANON_TAG_SETTINGS_1, 15, N_("ISO")}, {MNOTE_CANON_TAG_SETTINGS_1, 16, N_("Metering mode")}, - {MNOTE_CANON_TAG_SETTINGS_1, 17, N_("Focus type")}, - {MNOTE_CANON_TAG_SETTINGS_1, 18, N_("AF point selected")}, + {MNOTE_CANON_TAG_SETTINGS_1, 17, N_("Focus range")}, + {MNOTE_CANON_TAG_SETTINGS_1, 18, N_("AF point")}, {MNOTE_CANON_TAG_SETTINGS_1, 19, N_("Exposure mode")}, {MNOTE_CANON_TAG_SETTINGS_1, 21, N_("Lens type")}, {MNOTE_CANON_TAG_SETTINGS_1, 22, N_("Long focal length of lens")}, {MNOTE_CANON_TAG_SETTINGS_1, 23, N_("Short focal length of lens")}, {MNOTE_CANON_TAG_SETTINGS_1, 24, N_("Focal units per mm")}, {MNOTE_CANON_TAG_SETTINGS_1, 25, N_("Maximal aperture")}, + {MNOTE_CANON_TAG_SETTINGS_1, 26, N_("Minimal aperture")}, {MNOTE_CANON_TAG_SETTINGS_1, 27, N_("Flash activity")}, {MNOTE_CANON_TAG_SETTINGS_1, 28, N_("Flash details")}, {MNOTE_CANON_TAG_SETTINGS_1, 31, N_("Focus mode")}, - {MNOTE_CANON_TAG_SETTINGS_1, 35, N_("Zoomed resolution")}, - {MNOTE_CANON_TAG_SETTINGS_1, 36, N_("Zoomed resolution base")}, + {MNOTE_CANON_TAG_SETTINGS_1, 32, N_("AE setting")}, + {MNOTE_CANON_TAG_SETTINGS_1, 33, N_("Image stabilization")}, + {MNOTE_CANON_TAG_SETTINGS_1, 34, N_("Display aperture")}, + {MNOTE_CANON_TAG_SETTINGS_1, 35, N_("Zoom source width")}, + {MNOTE_CANON_TAG_SETTINGS_1, 36, N_("Zoom target width")}, + {MNOTE_CANON_TAG_SETTINGS_1, 39, N_("Photo effect")}, + {MNOTE_CANON_TAG_SETTINGS_1, 40, N_("Manual flash output")}, {MNOTE_CANON_TAG_SETTINGS_1, 41, N_("Color tone")}, - {MNOTE_CANON_TAG_SETTINGS_2, 6, N_("White balance")}, - {MNOTE_CANON_TAG_SETTINGS_2, 8, N_("Sequence number")}, - {MNOTE_CANON_TAG_SETTINGS_2, 13, N_("AF point used")}, - {MNOTE_CANON_TAG_SETTINGS_2, 14, N_("Flash bias")}, - {MNOTE_CANON_TAG_SETTINGS_2, 18, N_("Subject distance")}, + {MNOTE_CANON_TAG_FOCAL_LENGTH, 0, N_("Focal type")}, + {MNOTE_CANON_TAG_FOCAL_LENGTH, 1, N_("Focal length")}, + {MNOTE_CANON_TAG_FOCAL_LENGTH, 2, N_("Focal plane x size")}, + {MNOTE_CANON_TAG_FOCAL_LENGTH, 3, N_("Focal plane y size")}, + {MNOTE_CANON_TAG_SETTINGS_2, 0, N_("Auto ISO")}, + {MNOTE_CANON_TAG_SETTINGS_2, 1, N_("Shot ISO")}, + {MNOTE_CANON_TAG_SETTINGS_2, 2, N_("Measured EV")}, + {MNOTE_CANON_TAG_SETTINGS_2, 3, N_("Target aperture")}, + {MNOTE_CANON_TAG_SETTINGS_2, 4, N_("Target exposure time")}, + {MNOTE_CANON_TAG_SETTINGS_2, 5, N_("Exposure compensation")}, + {MNOTE_CANON_TAG_SETTINGS_2, 6, N_("White balance")}, + {MNOTE_CANON_TAG_SETTINGS_2, 7, N_("Slow shutter")}, + {MNOTE_CANON_TAG_SETTINGS_2, 8, N_("Sequence number")}, + {MNOTE_CANON_TAG_SETTINGS_2, 12, N_("Flash guide number")}, + {MNOTE_CANON_TAG_SETTINGS_2, 13, N_("AF point")}, + {MNOTE_CANON_TAG_SETTINGS_2, 14, N_("Flash exposure compensation")}, + {MNOTE_CANON_TAG_SETTINGS_2, 15, N_("AE bracketing")}, + {MNOTE_CANON_TAG_SETTINGS_2, 16, N_("AE bracket value")}, + {MNOTE_CANON_TAG_SETTINGS_2, 18, N_("Focus distance upper")}, + {MNOTE_CANON_TAG_SETTINGS_2, 19, N_("Focus distance lower")}, + {MNOTE_CANON_TAG_SETTINGS_2, 20, N_("FNumber")}, + {MNOTE_CANON_TAG_SETTINGS_2, 21, N_("Exposure time")}, + {MNOTE_CANON_TAG_SETTINGS_2, 23, N_("Bulb duration")}, + {MNOTE_CANON_TAG_SETTINGS_2, 25, N_("Camera type")}, + {MNOTE_CANON_TAG_SETTINGS_2, 26, N_("Auto rotate")}, + {MNOTE_CANON_TAG_SETTINGS_2, 27, N_("ND filter")}, + {MNOTE_CANON_TAG_SETTINGS_2, 28, N_("Self-timer")}, + {MNOTE_CANON_TAG_SETTINGS_2, 32, N_("Manual flash output")}, + {MNOTE_CANON_TAG_PANORAMA, 2, N_("Panorama frame")}, + {MNOTE_CANON_TAG_PANORAMA, 5, N_("Panorama direction")}, {0, 0, NULL} }; Index: mnote-canon-tag.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/canon/mnote-canon-tag.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -d -r1.2 -r1.3 --- mnote-canon-tag.h 22 Aug 2005 22:17:31 -0000 1.2 +++ mnote-canon-tag.h 17 Sep 2006 10:18:29 -0000 1.3 @@ -28,8 +28,10 @@ extern "C" { enum _MnoteCanonTag { MNOTE_CANON_TAG_UNKNOWN_0 = 0x0, MNOTE_CANON_TAG_SETTINGS_1 = 0x1, + MNOTE_CANON_TAG_FOCAL_LENGTH = 0x2, MNOTE_CANON_TAG_UNKNOWN_3 = 0x3, MNOTE_CANON_TAG_SETTINGS_2 = 0x4, + MNOTE_CANON_TAG_PANORAMA = 0x5, MNOTE_CANON_TAG_IMAGE_TYPE = 0x6, MNOTE_CANON_TAG_FIRMWARE = 0x7, MNOTE_CANON_TAG_IMAGE_NUMBER = 0x8, Index: mnote-canon-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/canon/mnote-canon-entry.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -p -d -r1.17 -r1.18 --- mnote-canon-entry.c 13 Feb 2006 07:31:49 -0000 1.17 +++ mnote-canon-entry.c 17 Sep 2006 10:18:29 -0000 1.18 @@ -25,6 +25,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <math.h> #include <libexif/exif-format.h> #include <libexif/exif-utils.h> @@ -66,73 +67,126 @@ #define UNDEFINED 0xFF -static struct { +static struct canon_entry_table_t { unsigned int subtag; ExifShort value; char *name; -} entries [] = { - { 0, 1, N_("macro")}, - { 0, 2, N_("normal")}, - { 3, 0, N_("flash did not fire")}, - { 3, 1, N_("auto")}, - { 3, 2, N_("on")}, - { 3, 3, N_("red eyes reduction")}, - { 3, 4, N_("slow synchro")}, - { 3, 5, N_("auto + red eyes reduction")}, - { 3, 6, N_("on + red eyes reduction")}, - { 3, 16, N_("external")}, - { 4, 0, N_("single or timer")}, - { 4, 1, N_("continuous")}, - { 6, 0, N_("one-Shot")}, - { 6, 1, N_("AI Servo")}, - { 6, 2, N_("AI Focus")}, - { 6, 3, N_("MF")}, +} entries_settings_1 [] = { + { 0, 1, N_("Macro")}, + { 0, 2, N_("Normal")}, + { 2, 1, N_("Economy")}, + { 2, 2, N_("Normal")}, + { 2, 3, N_("Fine")}, + { 2, 4, N_("RAW")}, + { 2, 5, N_("Superfine")}, + { 3, 0, N_("Off")}, + { 3, 1, N_("Auto")}, + { 3, 2, N_("On")}, + { 3, 3, N_("Red-eye reduction")}, + { 3, 4, N_("Slow synchro")}, + { 3, 5, N_("Auto + Red-eye reduction")}, + { 3, 6, N_("On + Red-eye reduction")}, + { 3, 16, N_("External flash")}, + { 4, 0, N_("Single")}, + { 4, 1, N_("Continuous")}, + { 4, 2, N_("Movie")}, + { 4, 3, N_("Continuous, speed priority")}, + { 4, 4, N_("Continuous, low")}, + { 4, 5, N_("Continuous, high")}, + { 6, 0, N_("One-shot AF")}, + { 6, 1, N_("AI servo AF")}, + { 6, 2, N_("AI focus AF")}, + { 6, 3, N_("Manual focus")}, { 6, 4, N_("Single")}, { 6, 5, N_("Continuous")}, - { 6, 6, N_("MF")}, - { 9, 0, N_("large")}, - { 9, 1, N_("medium")}, - { 9, 2, N_("small")}, - {10, 0, N_("full auto")}, - {10, 1, N_("manual")}, - {10, 2, N_("landscape")}, - {10, 3, N_("fast shutter")}, - {10, 4, N_("slow shutter")}, - {10, 5, N_("night")}, - {10, 6, N_("Black & White")}, + { 6, 6, N_("Manual focus")}, + { 6, 16, N_("Pan focus")}, + { 9, 0, N_("Large")}, + { 9, 1, N_("Medium")}, + { 9, 2, N_("Small")}, + { 9, 5, N_("Medium 1")}, + { 9, 6, N_("Medium 2")}, + { 9, 7, N_("Medium 3")}, + {10, 0, N_("Full auto")}, + {10, 1, N_("Manual")}, + {10, 2, N_("Landscape")}, + {10, 3, N_("Fast shutter")}, + {10, 4, N_("Slow shutter")}, + {10, 5, N_("Night")}, + {10, 6, N_("Grayscale")}, {10, 7, N_("Sepia")}, {10, 8, N_("Portrait")}, {10, 9, N_("Sports")}, - {10, 10, N_("Macro / Close-Up")}, - {10, 11, N_("Pan Focus")}, - {12, 0x0000, N_("normal")}, - {12, 0x0001, N_("high")}, - {12, 0xffff, N_("low")}, - {13, 0x0000, N_("normal")}, - {13, 0x0001, N_("high")}, - {13, 0xffff, N_("low")}, - {14, 0x0000, N_("normal")}, - {14, 0x0001, N_("high")}, - {14, 0xffff, N_("low")}, - {15, 15, N_("auto")}, + {10, 10, N_("Macro")}, + {10, 11, N_("Black & white")}, + {10, 12, N_("Pan focus")}, + {10, 13, N_("Vivid")}, + {10, 14, N_("Neutral")}, + {10, 15, N_("Flash off")}, + {10, 16, N_("Long shutter")}, + {10, 17, N_("Super macro")}, + {10, 18, N_("Foliage")}, + {10, 19, N_("Indoor")}, + {10, 20, N_("Fireworks")}, + {10, 21, N_("Beach")}, + {10, 22, N_("Underwater")}, + {10, 23, N_("Snow")}, + {10, 24, N_("Kids & pets")}, + {10, 25, N_("Night snapshot")}, + {10, 26, N_("Digital macro")}, + {10, 27, N_("My colors")}, + {10, 28, N_("Still image")}, + {11, 0, N_("None")}, + {11, 1, N_("2x")}, + {11, 2, N_("4x")}, + {11, 3, N_("Other")}, + {12, 0x0000, N_("Normal")}, + {12, 0x0001, N_("High")}, + {12, 0xffff, N_("Low")}, + {13, 0x0000, N_("Normal")}, + {13, 0x0001, N_("High")}, + {13, 0xffff, N_("Low")}, + {14, 0x0000, N_("Normal")}, + {14, 0x0001, N_("High")}, + {14, 0xffff, N_("Low")}, + {15, 14, N_("Auto high")}, + {15, 15, N_("Auto")}, {15, 16, N_("50")}, {15, 17, N_("100")}, {15, 18, N_("200")}, {15, 19, N_("400")}, - {16, 3, N_("evaluative")}, - {16, 4, N_("partial")}, - {16, 5, N_("center-weighted")}, - {18, 0x3000, N_("none (manual focus)")}, - {18, 0x3001, N_("auto-selected")}, - {18, 0x3002, N_("right")}, - {18, 0x3003, N_("center")}, - {18, 0x3004, N_("left")}, - {19, 0, N_("easy shooting")}, - {19, 1, N_("program")}, + {15, 20, N_("800")}, + {16, 0, N_("Default")}, + {16, 1, N_("Spot")}, + {16, 2, N_("Average")}, + {16, 3, N_("Evaluative")}, + {16, 4, N_("Partial")}, + {16, 5, N_("Center-weighted average")}, + {17, 0, N_("Manual")}, + {17, 1, N_("Auto")}, + {17, 2, N_("Not known")}, + {17, 3, N_("Macro")}, + {17, 4, N_("Very close")}, + {17, 5, N_("Close")}, + {17, 6, N_("Middle range")}, + {17, 7, N_("Far range")}, + {17, 8, N_("Pan focus")}, + {17, 9, N_("Super macro")}, + {17, 10, N_("Infinity")}, + {18, 0x2005, N_("Manual AF point selection")}, + {18, 0x3000, N_("None (MF)")}, + {18, 0x3001, N_("Auto-selected")}, + {18, 0x3002, N_("Right")}, + {18, 0x3003, N_("Center")}, + {18, 0x3004, N_("Left")}, + {18, 0x4001, N_("Auto AF point selection")}, + {19, 0, N_("Easy shooting")}, + {19, 1, N_("Program")}, {19, 2, N_("Tv-priority")}, {19, 3, N_("Av-priority")}, - {19, 4, N_("manual")}, + {19, 4, N_("Manual")}, {19, 5, N_("A-DEP")}, + {19, 6, N_("M-DEP")}, {21, 0x001, N_("Canon EF 50mm f/1.8")}, {21, 0x002, N_("Canon EF 28mm f/2.8")}, {21, 0x004, N_("Sigma UC Zoom 35-135mm f/4-5.6")}, @@ -184,11 +238,166 @@ static struct { {21, 0x229, N_("Canon EF 16-35mm f/2.8L")}, {21, 0x230, N_("Canon EF 24-70mm f/2.8L")}, {21, 0x231, N_("Canon EF 17-40mm f/4L")}, - {31, 0, N_("single")}, - {31, 1, N_("continuous")}, + {28, 0, N_("Manual")}, + {28, 1, N_("TTL")}, + {28, 2, N_("A-TTL")}, + {28, 3, N_("E-TTL")}, + {28, 4, N_("FP sync enabled")}, + {28, 7, N_("2nd-curtain sync used")}, + {28, 11, N_("FP sync used")}, + {28, 13, N_("Internal")}, + {28, 14, N_("External")}, + {31, 0, N_("Single")}, + {31, 1, N_("Continuous")}, + {32, 0, N_("Normal AE")}, + {32, 1, N_("Exposure compensation")}, + {32, 2, N_("AE lock")}, + {32, 3, N_("AE lock + Exposure compensation")}, + {32, 4, N_("No AE")}, + {33, 0, N_("Off")}, + {33, 1, N_("On")}, + {33, 2, N_("On, shot only")}, + {39, 0, N_("Off")}, + {39, 1, N_("Vivid")}, + {39, 2, N_("Neutral")}, + {39, 3, N_("Smooth")}, + {39, 4, N_("Sepia")}, + {39, 5, N_("Black & white")}, + {39, 6, N_("Custom")}, + {39, 100, N_("My color data")}, + {40, 0, N_("Off")}, + {40, 0x0500, N_("Full")}, + {40, 0x0502, N_("2/3")}, + {40, 0x0504, N_("1/3")}, { 0, 0, NULL} +}, +entries_focal_length [] = { + {0, 1, N_("Fixed")}, + {0, 2, N_("Zoom")}, + {0, 0, NULL} +}, +entries_settings_2 [] = { + { 6, 0, N_("Auto")}, + { 6, 1, N_("Sunny")}, + { 6, 2, N_("Cloudy")}, + { 6, 3, N_("Tungsten")}, + { 6, 4, N_("Fluorescent")}, + { 6, 5, N_("Flash")}, + { 6, 6, N_("Custom")}, + { 6, 7, N_("Black & white")}, + { 6, 8, N_("Shade")}, + { 6, 9, N_("Manual temperature (Kelvin)")}, + { 6, 10, N_("PC set 1")}, + { 6, 11, N_("PC set 2")}, + { 6, 12, N_("PC set 3")}, + { 6, 14, N_("Daylight fluorescent")}, + { 6, 15, N_("Custom 1")}, + { 6, 16, N_("Custom 2")}, + { 6, 17, N_("Underwater")}, + { 7, 0, N_("Off")}, + { 7, 1, N_("Night scene")}, + { 7, 2, N_("On")}, + { 7, 3, N_("None")}, + { 13, 0x3000, N_("None (MF)")}, + { 13, 0x3001, N_("Right")}, + { 13, 0x3002, N_("Center")}, + { 13, 0x3003, N_("Center + Right")}, + { 13, 0x3004, N_("Left")}, + { 13, 0x3005, N_("Left + Right")}, + { 13, 0x3006, N_("Left + Center")}, + { 13, 0x3007, N_("All")}, + { 15, 0, N_("Off")}, + { 15, 1, N_("On (shot 1)")}, + { 15, 2, N_("On (shot 2)")}, + { 15, 3, N_("On (shot 3)")}, + { 15, 0xffff, N_("On")}, + { 25, 248, N_("EOS high-end")}, + { 25, 250, N_("Compact")}, + { 25, 252, N_("EOS mid-range")}, + { 26, 0, N_("None")}, + { 26, 1, N_("Rotate 90 CW")}, + { 26, 2, N_("Rotate 180")}, + { 26, 3, N_("Rotate 270 CW")}, + { 26, 0xffff, N_("Rotated by software")}, + { 27, 0, N_("Off")}, + { 27, 1, N_("On")}, + {32, 0, N_("Off")}, + {32, 0x0014, N_("1/3")}, + {32, 0x008c, N_("2/3")}, + {32, 0x07d0, N_("Full")}, + {0, 0, NULL} +}, +entries_panorama [] = { + {0, 0, N_("Left to right")}, + {0, 1, N_("Right to left")}, + {0, 2, N_("Bottom to top")}, + {0, 3, N_("Top to bottom")}, + {0, 4, N_("2x2 matrix (clockwise)")}, + {0, 0, NULL} }; +static void +canon_search_table_value (struct canon_entry_table_t table[], + unsigned int t, ExifShort vs, char *val, unsigned int maxlen) +{ + unsigned int j; + + /* Search the table for the first matching subtag and value. */ + for (j = 0; table[j].name && ((table[j].subtag < t) || + ((table[j].subtag == t) && table[j].value <= vs)); j++) { + if ((table[j].subtag == t) && (table[j].value == vs)) { + break; + } + } + if ((table[j].subtag == t) && (table[j].value == vs) && table[j].name) { + /* Matching subtag and value found. */ + strncpy (val, table[j].name, maxlen - strlen (val)); + } else { + /* No matching subtag and/or value found. */ + snprintf (val, maxlen - strlen (val), "0x%04x", vs); + } +} + +static void +canon_search_table_bitfield (struct canon_entry_table_t table[], + unsigned int t, ExifShort vs, char *val, unsigned int maxlen) +{ + unsigned int j; + + /* Search the table for the first matching subtag. */ + for (j = 0; table[j].name && (table[j].subtag <= t); j++) { + if (table[j].subtag == t) { + break; + } + } + if ((table[j].subtag == t) && table[j].name) { + unsigned int i, bit, lastbit = 0; + + /* + * Search the table for the last matching bit, because + * that one needs no additional comma appended. + */ + for (i = j; table[i].name && (table[i].subtag == t); i++) { + bit = table[i].value; + if ((vs >> bit) & 1) { + lastbit = bit; + } + } + /* Search the table for all matching bits. */ + for (i = j; table[i].name && (table[i].subtag == t); i++) { + bit = table[i].value; + if ((vs >> bit) & 1) { + strncat(val, table[i].name, maxlen - strlen (val)); + if (bit != lastbit) + strncat (val, N_(", "), maxlen - strlen (val)); + } + } + } else { + /* No matching subtag found. */ + snprintf (val, maxlen - strlen (val), "0x%04x", vs); + } +} + unsigned int mnote_canon_entry_count_values (const MnoteCanonEntry *entry) { @@ -197,6 +406,9 @@ mnote_canon_entry_count_values (const Mn if (!entry) return 0; switch (entry->tag) { + case MNOTE_CANON_TAG_FOCAL_LENGTH: + case MNOTE_CANON_TAG_PANORAMA: + return entry->components; case MNOTE_CANON_TAG_SETTINGS_1: case MNOTE_CANON_TAG_SETTINGS_2: case MNOTE_CANON_TAG_CUSTOM_FUNCS: @@ -210,14 +422,36 @@ mnote_canon_entry_count_values (const Mn } } +/* + * For reference, see Exif 2.1 specification (Appendix C), + * or http://en.wikipedia.org/wiki/APEX_system + */ +static double +apex_value_to_aperture (double x) +{ + return pow (2, x / 2.); +} + +static double +apex_value_to_shutter_speed(double x) +{ + return 1.0 / pow (2, x); +} + +static double +apex_value_to_iso_speed (double x) +{ + return 3.125 * pow (2, x); +} + char * mnote_canon_entry_get_value (const MnoteCanonEntry *entry, unsigned int t, char *val, unsigned int maxlen) { char buf[128]; ExifLong vl; ExifShort vs, n; - unsigned int j; unsigned char *data = entry->data; + double d; if (!entry) return NULL; @@ -239,35 +473,47 @@ mnote_canon_entry_get_value (const Mnote break; case 22: case 23: + case 24: snprintf (buf, sizeof (buf), "%u", vs); strncpy (val, buf, maxlen - strlen (val)); break; - case 24: - snprintf (buf, sizeof (buf), _("%u mm"), vs); - strncpy (val, buf, maxlen - strlen(val)); + case 25: + case 26: + snprintf (buf, sizeof (buf), "%.2f", apex_value_to_aperture (vs / 32.0)); + strncpy (val, buf, maxlen - strlen (val)); break; case 28: - if ((vs >> 14) & 1) - strncpy (val, _("External E-TTL"), maxlen - strlen (val)); - if ((vs >> 13) & 1) - strncpy (val, _("Internal flash"), maxlen - strlen (val)); - if ((vs >> 11) & 1) - strncpy (val, _("FP sync used"), maxlen - strlen (val)); - if ((vs >> 4) & 1) - strncpy (val, _("FP sync enabled"), maxlen - strlen (val)); + canon_search_table_bitfield(entries_settings_1, t, vs, val, maxlen); + break; + case 34: + snprintf (buf, sizeof (buf), "%.2f", vs / 10.0); + strncpy (val, buf, maxlen - strlen (val)); break; + case 35: + case 36: + snprintf (buf, sizeof (buf), "%u", vs); + strncpy (val, buf, maxlen - strlen (val)); + break; + default: + canon_search_table_value (entries_settings_1, t, vs, val, maxlen); + } + break; + case MNOTE_CANON_TAG_FOCAL_LENGTH: + CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); + vs = exif_get_short (entry->data + t * 2, entry->order); + switch (t) { + case 1: + snprintf (buf, sizeof (buf), "%u", vs); + strncpy (val, buf, maxlen - strlen (val)); + break; + case 2: + case 3: + snprintf (buf, sizeof (buf), _("%.2f mm"), vs * 25.4 / 1000); + strncpy (val, buf, maxlen - strlen (val)); + break; default: - for (j = 0; entries[j].name && ((entries[j].subtag < t) || - ((entries[j].subtag == t) && entries[j].value <= vs)); j++) - if ((entries[j].subtag == t) && (entries[j].value == vs)) break; - if ((entries[j].subtag == t) && - (entries[j].value == vs) && entries[j].name) - strncpy (val, entries[j]. name, maxlen - strlen (val)); - else { - snprintf (buf, sizeof (buf), "0x%04x", vs); - strncpy (val, buf, maxlen - strlen (val)); - } + canon_search_table_value (entries_focal_length, t, vs, val, maxlen); } break; @@ -278,65 +524,61 @@ mnote_canon_entry_get_value (const Mnote CC (entry->components, n, val, maxlen); vs = exif_get_short (entry->data + 2 + t * 2, entry->order); switch (t) { - case 6: - switch (vs) { - case 0: - strncpy (val, _("Auto"), maxlen - strlen (val)); - break; - case 1: - strncpy (val, _("Sunny"), maxlen - strlen (val)); - break; - case 2: - strncpy (val, _("Cloudy"), maxlen - strlen (val)); - break; - case 3: - strncpy (val, _("Tungsten"), maxlen - strlen (val)); - break; - case 4: - strncpy (val, _("Fluorescent"), maxlen - strlen (val)); - break; - case 5: - strncpy (val, _("Flash"), maxlen - strlen (val)); - break; - case 6: - strncpy (val, _("Custom"), maxlen - strlen (val)); - break; - default: - snprintf (buf, sizeof (buf), "%i", vs); - strncpy (val, buf, maxlen - strlen (val)); - } + case 0: + case 1: + snprintf (buf, sizeof (buf), "%.0f", apex_value_to_iso_speed(vs / 32.0)); + strncpy (val, buf, maxlen - strlen (val)); + break; + case 2: + case 5: + case 14: + case 16: + snprintf (buf, sizeof (buf), _("%.2f EV"), vs / 32.0); + strncpy (val, buf, maxlen - strlen (val)); + break; + case 3: + case 20: + snprintf (buf, sizeof (buf), "%.2f", apex_value_to_aperture (vs / 32.0)); + strncpy (val, buf, maxlen - strlen (val)); + break; + case 4: + case 21: + d = apex_value_to_shutter_speed(vs / 32.0); + if (d < 1) + snprintf (buf, sizeof (buf), _("1/%d"),(int)(1.0 / d)); + else + snprintf (buf, sizeof (buf), _("%d"), (int) d); + strncpy (val, buf, maxlen - strlen (val)); break; case 8: snprintf (buf, sizeof (buf), "%u", vs); strncpy (val, buf, maxlen - strlen (val)); break; - case 13: - if (vs >> 12) { - if (vs & 1) - strncpy (val, _("right"), maxlen - strlen (val)); - if ((vs >> 1) & 1) - strncpy (val, _("center"), maxlen - strlen (val)); - if ((vs >> 2) & 1) - strncpy (val, _("left"), maxlen - strlen (val)); - snprintf (buf, sizeof (buf), ngettext(" (1 available focus point)"," (%u available focus points)",(vs>>12)), (vs>>12)); - strncat (val, buf, maxlen - strlen (val)); - } - break; - case 14: - snprintf (buf, sizeof (buf), _("%.2f EV"), vs / 32.); + case 12: + snprintf (buf, sizeof (buf), "%.2f", vs / 32.0); strncpy (val, buf, maxlen - strlen (val)); break; case 18: + case 19: snprintf (buf, sizeof (buf), _("%u mm"), vs); strncpy (val, buf, maxlen - strlen (val)); break; - default: - snprintf (buf, sizeof (buf), "0x%04x", vs); + case 28: + if (!vs) break; + snprintf (buf, sizeof (buf), _("%i (ms)"), vs * 100); strncpy (val, buf, maxlen - strlen (val)); break; + default: + canon_search_table_value (entries_settings_2, t, vs, val, maxlen); } break; + case MNOTE_CANON_TAG_PANORAMA: + CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen); + vs = exif_get_short (entry->data + t * 2, entry->order); + canon_search_table_value (entries_panorama, t, vs, val, maxlen); + break; + case MNOTE_CANON_TAG_OWNER: CC (entry->components, 32, val, maxlen); /* Fall through; ImageType can have many sizes */ |
From: Lutz M. <lu...@us...> - 2006-09-17 10:18:34
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24206 Modified Files: ChangeLog Log Message: 2006-09-17 Lutz Mueller <lu...@us...> Patch by Jef Driesen <jef...@ho...>: * libexif/canon/*: Improve support for canon maker notes. Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.236 retrieving revision 1.237 diff -u -p -d -r1.236 -r1.237 --- ChangeLog 5 May 2006 05:25:49 -0000 1.236 +++ ChangeLog 17 Sep 2006 10:18:27 -0000 1.237 @@ -1,3 +1,9 @@ +2006-09-17 Lutz Mueller <lu...@us...> + + Patch by Jef Driesen <jef...@ho...>: + + * libexif/canon/*: Improve support for canon maker notes. + 2006-05-05 Jan Patera <pa...@us...> * libexif/exif-content.c: fixed bug #1471060: wasted space in exif_content_add_entry() & exif_content_remove_entry(); also safe |
From: Hans U. N. <hu...@us...> - 2006-09-16 23:26:58
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv20027/libexif Modified Files: exif-loader.h Log Message: nicer comments and parameter names Index: exif-loader.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -d -r1.4 -r1.5 --- exif-loader.h 17 Jan 2006 03:32:15 -0000 1.4 +++ exif-loader.h 16 Sep 2006 23:26:54 -0000 1.5 @@ -39,43 +39,43 @@ typedef struct _ExifLoader ExifLoader; */ ExifLoader *exif_loader_new (void); /*! Allocate a new ExifLoader using an ExifMem - * \param[in] m the ExifMem + * \param[in] mem the ExifMem * \returns the allocated ExifLoader */ -ExifLoader *exif_loader_new_mem (ExifMem *); +ExifLoader *exif_loader_new_mem (ExifMem *mem); /*! Increase the refcount of the ExifLoader - * \param[in] l the ExifLoader to increase the refcount of. + * \param[in] loader the ExifLoader to increase the refcount of. */ -void exif_loader_ref (ExifLoader *); +void exif_loader_ref (ExifLoader *loader); /*! Decrease the refcount of the ExifLoader - * \param[in] l the ExifLoader to decrease the refcount of. + * \param[in] loader the ExifLoader to decrease the refcount of. * If the refcount reaches 0, the ExifLoader is freeed. */ -void exif_loader_unref (ExifLoader *); +void exif_loader_unref (ExifLoader *loader); /*! Write a file to the ExifLoader - * \param[in] l the loader + * \param[in] loader the loader * \param[in] fname the path to the file to read */ -void exif_loader_write_file (ExifLoader *, const char *fname); +void exif_loader_write_file (ExifLoader *loader, const char *fname); /*! Write a buffer to the ExifLoader - * \param[in] l the loader to write too - * \param[in] b the buffer to read from - * \param[in] s the size of the buffer + * \param[in] loader the loader to write too + * \param[in] buf the buffer to read from + * \param[in] sz the size of the buffer * \returns 1 while EXIF data is read (or while there is still hope that there will be EXIF data later on), 0 otherwise. */ -unsigned char exif_loader_write (ExifLoader *l, unsigned char *b, unsigned int s); +unsigned char exif_loader_write (ExifLoader *loader, unsigned char *buf, unsigned int sz); /*! Reset the ExifLoader - * \param[in] l the loader + * \param[in] loader the loader */ -void exif_loader_reset (ExifLoader *); +void exif_loader_reset (ExifLoader *loader); /*! Get an ExifData out of an ExifLoader - * \param[in] l the loader + * \param[in] loader the loader * \returns and allocated ExifData */ -ExifData *exif_loader_get_data (ExifLoader *); +ExifData *exif_loader_get_data (ExifLoader *loader); void exif_loader_log (ExifLoader *, ExifLog *); |
From: Hans U. N. <hu...@us...> - 2006-09-16 23:25:37
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv19597/libexif Modified Files: Makefile.am Log Message: build libmnote-foo before libexif Index: Makefile.am =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/Makefile.am,v retrieving revision 1.36 retrieving revision 1.37 diff -u -p -d -r1.36 -r1.37 --- Makefile.am 3 Jan 2006 04:22:58 -0000 1.36 +++ Makefile.am 16 Sep 2006 23:25:30 -0000 1.37 @@ -24,7 +24,11 @@ libexif_la_SOURCES = \ exif-tag.c \ exif-utils.c \ i18n.h -libexif_la_DEPENDENCIES = $(srcdir)/libexif.sym +libexif_la_DEPENDENCIES = \ + $(srcdir)/libexif.sym \ + canon/libmnote-canon.la \ + olympus/libmnote-olympus.la \ + pentax/libmnote-pentax.la libexif_la_LIBADD = \ $(MATHLIBS) \ $(LTLIBINTL) \ |
From: Lutz M. <lu...@us...> - 2006-07-28 19:12:46
|
Update of /cvsroot/libexif/exif/exif In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv4083/exif Modified Files: actions.c actions.h main.c Log Message: 2006-07-28 Lutz Mueller <lu...@us...> Patch by Marek 'marx' Grac <mg...@re...>: * exif/actions.c: (show_entry_xml, show_xml, action_tag_list_xml) New. * exif/actions.h: Remove cruft. * exif/main.c: Provide an 'xml-output' option. Index: main.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/main.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -p -d -r1.52 -r1.53 --- main.c 23 Mar 2006 18:05:48 -0000 1.52 +++ main.c 28 Jul 2006 19:12:32 -0000 1.53 @@ -306,6 +306,7 @@ struct _ExifOptions { * these variables belong into main (). */ static unsigned int list_tags = 0, show_description = 0, machine_readable = 0; +static unsigned int xml_output = 0; static unsigned int extract_thumbnail = 0, remove_thumbnail = 0; static unsigned int remove_tag = 0; static unsigned int list_mnote = 0, debug = 0; @@ -353,6 +354,9 @@ main (int argc, const char **argv) {"machine-readable", 'm', POPT_ARG_NONE, &machine_readable, 0, N_("Output in a machine-readable (tab delimited) format"), NULL}, + {"xml-output", 'x', POPT_ARG_NONE, &xml_output, 0, + N_("Output in a XML format"), + NULL}, {"debug", 'd', POPT_ARG_NONE, &debug, 0, N_("Show debugging messages"), NULL}, POPT_TABLEEND}; @@ -595,6 +599,8 @@ main (int argc, const char **argv) } else if (machine_readable) { action_tag_list_machine (*args, ed, eo.use_ids); + } else if (xml_output) { + action_tag_list_xml (*args, ed, eo.use_ids); } else if (list_mnote) { action_mnote_list (*args, ed, eo.use_ids); } else Index: actions.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/actions.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -p -d -r1.26 -r1.27 --- actions.c 27 Apr 2005 06:44:22 -0000 1.26 +++ actions.c 28 Jul 2006 19:12:32 -0000 1.27 @@ -217,3 +217,44 @@ action_tag_list_machine (const char *fil if (ed->size) fprintf (stdout, _("ThumbnailSize\t%i\n"), ed->size); } + +static void +show_entry_xml (ExifEntry *e, void *data) +{ + unsigned char *ids = data; + char v[1024], t[1024]; + + if (*ids) { + fprintf (stdout, "<0x%04x>", e->tag); + fprintf (stdout, "%s", exif_entry_get_value (e, v, sizeof (v))); + fprintf (stdout, "</0x%04x>", e->tag); + } else { + int x; + strncpy (t, exif_tag_get_title (e->tag), sizeof (t)); + + /* Remove invalid characters from tag eg. (, ), space */ + for (x = 0; x < strlen (t); x++) + if ((t[x] == '(') || (t[x] == ')') || (t[x] == ' ')) + t[x] = '_'; + + fprintf (stdout, "\t<%s>", t); + fprintf (stdout, "%s", exif_entry_get_value (e, v, sizeof (v))); + fprintf (stdout, "</%s>\n", t); + } +} + +static void +show_xml (ExifContent *content, void *data) +{ + exif_content_foreach_entry (content, show_entry_xml, data); +} + +void +action_tag_list_xml (const char *filename, ExifData *ed, unsigned char ids) +{ + if (!ed) return; + + fprintf(stdout, "<exif>\n"); + exif_data_foreach_content (ed, show_xml, &ids); + fprintf(stdout, "</exif>\n"); +} Index: actions.h =================================================================== RCS file: /cvsroot/libexif/exif/exif/actions.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -p -d -r1.7 -r1.8 --- actions.h 31 Aug 2004 13:33:29 -0000 1.7 +++ actions.h 28 Jul 2006 19:12:32 -0000 1.8 @@ -23,17 +23,15 @@ #include <libexif/exif-data.h> -#ifdef HAVE_MNOTE -#include <libmnote/mnote-data.h> -#endif - void action_tag_table (const char *filename, ExifData *); void action_tag_list (const char *filename, ExifData *, - unsigned char ids); + unsigned char ids); void action_tag_list_machine (const char *filename, ExifData *, - unsigned char ids); + unsigned char ids); +void action_tag_list_xml (const char *filename, ExifData *, + unsigned char ids); void action_mnote_list (const char *filename, ExifData *, - unsigned char ids); + unsigned char ids); #endif /* __ACTIONS_H__ */ |
From: Lutz M. <lu...@us...> - 2006-07-28 19:12:44
|
Update of /cvsroot/libexif/exif In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv4083 Modified Files: ChangeLog Log Message: 2006-07-28 Lutz Mueller <lu...@us...> Patch by Marek 'marx' Grac <mg...@re...>: * exif/actions.c: (show_entry_xml, show_xml, action_tag_list_xml) New. * exif/actions.h: Remove cruft. * exif/main.c: Provide an 'xml-output' option. Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/exif/ChangeLog,v retrieving revision 1.59 retrieving revision 1.60 diff -u -p -d -r1.59 -r1.60 --- ChangeLog 23 Mar 2006 18:05:47 -0000 1.59 +++ ChangeLog 28 Jul 2006 19:12:31 -0000 1.60 @@ -1,3 +1,11 @@ +2006-07-28 Lutz Mueller <lu...@us...> + + Patch by Marek 'marx' Grac <mg...@re...>: + + * exif/actions.c: (show_entry_xml, show_xml, action_tag_list_xml) New. + * exif/actions.h: Remove cruft. + * exif/main.c: Provide an 'xml-output' option. + 2006-03-23 Lutz Mueller <lu...@us...> * exif/main.c: Add the command line option '--version'/'-v'. |
From: Hans U. N. <hu...@us...> - 2006-06-30 13:44:05
|
Update of /cvsroot/libexif/gexif In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv18130 Modified Files: configure.ac Log Message: polish is pl, not po Index: configure.ac =================================================================== RCS file: /cvsroot/libexif/gexif/configure.ac,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -d -r1.4 -r1.5 --- configure.ac 15 Aug 2005 20:52:47 -0000 1.4 +++ configure.ac 30 Jun 2006 13:44:00 -0000 1.5 @@ -35,7 +35,7 @@ GP_PKG_CONFIG # i18n support # --------------------------------------------------------------------------- GP_GETTEXT_HACK([],[Lutz Müller and others]) -ALL_LINGUAS="de es fr po" +ALL_LINGUAS="de es fr pl" AM_GNU_GETTEXT_VERSION([0.14.1]) AM_GNU_GETTEXT([external]) AM_PO_SUBDIRS() |
From: Hans U. N. <hu...@us...> - 2006-06-30 13:13:27
|
Update of /cvsroot/libexif/libexif-website In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv6135 Modified Files: Makefile Log Message: add clean target Index: Makefile =================================================================== RCS file: /cvsroot/libexif/libexif-website/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -d -r1.4 -r1.5 --- Makefile 30 Jun 2006 12:47:35 -0000 1.4 +++ Makefile 30 Jun 2006 13:13:24 -0000 1.5 @@ -5,6 +5,10 @@ HTDOCS_DIR = /home/groups/l/li/libexif/h all: @echo "Nothing to build. Perhaps you want to upload now?" +.PHONY: clean +clean: + rm -f upload-static.stamp + .PHONY: upload upload: upload-static.stamp |
From: Hans U. N. <hu...@us...> - 2006-06-30 12:47:41
|
Update of /cvsroot/libexif/libexif-website/static In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv28485/static Modified Files: index.html Log Message: prepare libexif website for move to SVN Index: index.html =================================================================== RCS file: /cvsroot/libexif/libexif-website/static/index.html,v retrieving revision 1.11 retrieving revision 1.12 diff -u -p -d -r1.11 -r1.12 --- index.html 21 Jun 2005 00:12:33 -0000 1.11 +++ index.html 30 Jun 2006 12:47:36 -0000 1.12 @@ -30,15 +30,28 @@ div.banners { <li><a href="https://sourceforge.net/projects/libexif">SF.net project page</a></li> <li><a href="api/">libexif API documentation</a> (preliminary)</li> <li><a href="internals/">libexif code internals documentation</a> (preliminary)</li> -<li>Download <a href="https://sourceforge.net/project/showfiles.php?group_id=12272">libexif source tarballs</a> releases -or get the source code from CVS: +<li>Download libexif source code<ul> +<li>as <a href="https://sourceforge.net/project/showfiles.php?group_id=12272">release tarballs</a></li> +<li>from CVS (will be disabled some time in mid-2006): <pre> cvs -d:pserver:ano...@cv...:/cvsroot/libexif login cvs -z3 -d:pserver:ano...@cv...:/cvsroot/libexif co -P libexif cvs -z3 -d:pserver:ano...@cv...:/cvsroot/libexif co -P exif +cvs -z3 -d:pserver:ano...@cv...:/cvsroot/libexif co -P libexif-gtk +cvs -z3 -d:pserver:ano...@cv...:/cvsroot/libexif co -P gexif +</pre> +</li> +<li>from SVN (will be enabled some time in mid-2006): +<pre> +svn co https://svn.sourceforge.net/svnroot/libexif/trunk/libexif +svn co https://svn.sourceforge.net/svnroot/libexif/trunk/exif +svn co https://svn.sourceforge.net/svnroot/libexif/trunk/libexif-gtk +svn co https://svn.sourceforge.net/svnroot/libexif/trunk/gexif </pre> </li> </ul> +</li> +</ul> <h2>Feedback on libexif</h2> @@ -46,8 +59,9 @@ cvs -z3 -d:pserver:ano...@cv...urcef <li><a href="https://sourceforge.net/tracker/?group_id=12272&atid=112272">Bug Tracker</a> - <a href="https://sourceforge.net/tracker/?func=add&group_id=12272&atid=112272">submit your bugs here</a></li> <li><a href="https://sourceforge.net/mail/?group_id=12272">libexif mailing list</a></li> -<li><a href="irc://irc.freenode.net/#gphoto">IRC Channel</a> - #gphoto on irc.freenode.net (shared with the - <a href="http://gphoto.org/">gphoto project</a>)</li> +<li><a href="irc://irc.freenode.net/#libexif">libexif IRC Channel</a> - #libexif on irc.freenode.net</li> +<li><a href="irc://irc.freenode.net/#gphoto">gphoto IRC Channel</a> - #gphoto on irc.freenode.net +(channel of the related <a href="http://gphoto.org/">gphoto project</a>, more populated)</li> </ul> <h2>About EXIF</h2> |
From: Hans U. N. <hu...@us...> - 2006-06-30 12:47:41
|
Update of /cvsroot/libexif/libexif-website In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv28485 Modified Files: Makefile Log Message: prepare libexif website for move to SVN Index: Makefile =================================================================== RCS file: /cvsroot/libexif/libexif-website/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -d -r1.3 -r1.4 --- Makefile 21 Jun 2005 08:31:46 -0000 1.3 +++ Makefile 30 Jun 2006 12:47:35 -0000 1.4 @@ -1,9 +1,9 @@ SF_SSH_HOSTNAME = sf -HTDOCS_DIR = /home/users/h/hu/hun/libexif/htdocs +HTDOCS_DIR = /home/groups/l/li/libexif/htdocs .PHONY: all all: - @echo "Nothing to build." + @echo "Nothing to build. Perhaps you want to upload now?" .PHONY: upload upload: upload-static.stamp |
From: Jan P. <pa...@us...> - 2006-05-05 05:25:53
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32233 Modified Files: ChangeLog Log Message: 2006-05-05 Jan Patera <pa...@us...> * libexif/exif-content.c: fixed bug #1471060: wasted space in exif_content_add_entry() & exif_content_remove_entry(); also safe handling of failed realloc in exif_content_add_entry() Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.235 retrieving revision 1.236 diff -u -p -d -r1.235 -r1.236 --- ChangeLog 15 Apr 2006 19:15:30 -0000 1.235 +++ ChangeLog 5 May 2006 05:25:49 -0000 1.236 @@ -1,3 +1,8 @@ +2006-05-05 Jan Patera <pa...@us...> + * libexif/exif-content.c: fixed bug #1471060: wasted space in + exif_content_add_entry() & exif_content_remove_entry(); also safe + handling of failed realloc in exif_content_add_entry() + 2006-04-15 Jan Patera <pa...@us...> * libexif/exif-loader.c: exif_loader_write() correctly skips APP2 marker |
From: Jan P. <pa...@us...> - 2006-05-05 05:25:24
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32090 Modified Files: exif-content.c Log Message: fixed bug #1471060: wasted space in exif_content_add_entry() & exif_content_remove_entry(); also safe handling of failed realloc in exif_content_add_entry() Index: exif-content.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-content.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -p -d -r1.19 -r1.20 --- exif-content.c 19 Mar 2006 17:23:06 -0000 1.19 +++ exif-content.c 5 May 2006 05:25:20 -0000 1.20 @@ -131,6 +131,7 @@ exif_content_dump (ExifContent *content, void exif_content_add_entry (ExifContent *c, ExifEntry *entry) { + ExifEntry **entries; if (!c || !c->priv || !entry || entry->parent) return; /* One tag can only be added once to an IFD. */ @@ -142,13 +143,13 @@ exif_content_add_entry (ExifContent *c, return; } + entries = exif_mem_realloc (c->priv->mem, + c->entries, sizeof (ExifEntry*) * (c->count + 1)); + if (!entries) return; entry->parent = c; - c->entries = exif_mem_realloc (c->priv->mem, - c->entries, sizeof (ExifEntry) * (c->count + 1)); - if (!c->entries) return; - c->entries[c->count] = entry; + entries[c->count++] = entry; + c->entries = entries; exif_entry_ref (entry); - c->count++; } void @@ -164,12 +165,12 @@ exif_content_remove_entry (ExifContent * /* Remove the entry */ memmove (&c->entries[i], &c->entries[i + 1], - sizeof (ExifEntry) * (c->count - i - 1)); + sizeof (ExifEntry*) * (c->count - i - 1)); c->count--; e->parent = NULL; exif_entry_unref (e); c->entries = exif_mem_realloc (c->priv->mem, c->entries, - sizeof(ExifEntry) * c->count); + sizeof(ExifEntry*) * c->count); } ExifEntry * |
From: Jan P. <pa...@us...> - 2006-04-15 19:15:36
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27961 Modified Files: ChangeLog Log Message: exif_loader_write() correctly skips APP2 marker with ICC profile because ImageMagick flips order of APP1 EXIF and APP2 ICC markers. Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.234 retrieving revision 1.235 diff -u -p -d -r1.234 -r1.235 --- ChangeLog 19 Feb 2006 11:09:12 -0000 1.234 +++ ChangeLog 15 Apr 2006 19:15:30 -0000 1.235 @@ -1,3 +1,9 @@ +2006-04-15 Jan Patera <pa...@us...> + + * libexif/exif-loader.c: exif_loader_write() correctly skips APP2 marker + with ICC profile because ImageMagick flips order of APP1 EXIF and + APP2 ICC markers. + 2006-02-19 Jan Patera <pa...@us...> * libexif/exif-utils.h: ExifByte is now explicitly unsigned char, |
From: Jan P. <pa...@us...> - 2006-04-15 19:15:36
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27961/libexif Modified Files: exif-loader.c Log Message: exif_loader_write() correctly skips APP2 marker with ICC profile because ImageMagick flips order of APP1 EXIF and APP2 ICC markers. Index: exif-loader.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -p -d -r1.20 -r1.21 --- exif-loader.c 24 Jul 2005 23:34:41 -0000 1.20 +++ exif-loader.c 15 Apr 2006 19:15:30 -0000 1.21 @@ -33,6 +33,8 @@ #define JPEG_MARKER_APP0 0xe0 #undef JPEG_MARKER_APP1 #define JPEG_MARKER_APP1 0xe1 +#undef JPEG_MARKER_APP2 +#define JPEG_MARKER_APP2 0xe2 #undef JPEG_MARKER_APP13 #define JPEG_MARKER_APP13 0xed #undef JPEG_MARKER_COM @@ -265,6 +267,7 @@ exif_loader_write (ExifLoader *eld, unsi eld->state = EL_READ_SIZE_BYTE_08; break; case JPEG_MARKER_APP0: + case JPEG_MARKER_APP2: case JPEG_MARKER_APP13: case JPEG_MARKER_COM: eld->data_format = EL_DATA_FORMAT_JPEG; |
From: Lutz M. <lu...@us...> - 2006-03-23 18:06:03
|
Update of /cvsroot/libexif/exif/exif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12405/exif Modified Files: main.c Log Message: 2006-03-23 Lutz Mueller <lu...@us...> * exif/main.c: Add the command line option '--version'/'-v'. Index: main.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/main.c,v retrieving revision 1.51 retrieving revision 1.52 diff -u -p -d -r1.51 -r1.52 --- main.c 27 Apr 2005 06:44:22 -0000 1.51 +++ main.c 23 Mar 2006 18:05:48 -0000 1.52 @@ -113,7 +113,7 @@ convert_arg_to_entry (const char *set_va fputc ('\n', stderr); exit (1); } - strcpy (e->data, set_value); + strcpy ((char *) e->data, (char *) set_value); return; } @@ -136,7 +136,7 @@ convert_arg_to_entry (const char *set_va } else end = value_p++; buf = malloc ((end - begin + 1) * sizeof (char)); - strncpy (buf, begin, end - begin); + strncpy ((char *) buf, (char *) begin, end - begin); buf[end - begin] = '\0'; s = exif_format_get_size (e->format); @@ -145,13 +145,13 @@ convert_arg_to_entry (const char *set_va internal_error (); /* Previously handled */ break; case EXIF_FORMAT_SHORT: - exif_set_short (e->data + (s * i), o, atoi (buf)); + exif_set_short (e->data + (s * i), o, atoi ((char *) buf)); break; case EXIF_FORMAT_LONG: - exif_set_long (e->data + (s * i), o, atol (buf)); + exif_set_long (e->data + (s * i), o, atol ((char *) buf)); break; case EXIF_FORMAT_SLONG: - exif_set_slong (e->data + (s * i), o, atol (buf)); + exif_set_slong (e->data + (s * i), o, atol ((char *) buf)); break; case EXIF_FORMAT_RATIONAL: case EXIF_FORMAT_SRATIONAL: @@ -309,6 +309,7 @@ static unsigned int list_tags = 0, show_ static unsigned int extract_thumbnail = 0, remove_thumbnail = 0; static unsigned int remove_tag = 0; static unsigned int list_mnote = 0, debug = 0; +static unsigned int show_version = 0; static const char *set_value = NULL, *ifd_string = NULL, *tag_string = NULL; static ExifIfd ifd = EXIF_IFD_0; static ExifTag tag = 0; @@ -323,6 +324,8 @@ main (int argc, const char **argv) const char *ithumbnail = NULL; struct poptOption options[] = { POPT_AUTOHELP + {"version", 'v', POPT_ARG_NONE, &show_version, 0, + N_("Display software version"), NULL}, {"ids", 'i', POPT_ARG_NONE, &eo.use_ids, 0, N_("Show IDs instead of tag names"), NULL}, {"tag", 't', POPT_ARG_STRING, &tag_string, 0, @@ -384,6 +387,11 @@ main (int argc, const char **argv) return (1); } + if (show_version) { + printf ("%s\n", VERSION); + return 0; + } + if (ifd_string) { ifd = exif_ifd_from_string (ifd_string); if ((ifd < EXIF_IFD_0) || (ifd >= EXIF_IFD_COUNT) || |
From: Lutz M. <lu...@us...> - 2006-03-23 18:05:55
|
Update of /cvsroot/libexif/exif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12405 Modified Files: ChangeLog Log Message: 2006-03-23 Lutz Mueller <lu...@us...> * exif/main.c: Add the command line option '--version'/'-v'. Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/exif/ChangeLog,v retrieving revision 1.58 retrieving revision 1.59 diff -u -p -d -r1.58 -r1.59 --- ChangeLog 15 Aug 2005 20:50:43 -0000 1.58 +++ ChangeLog 23 Mar 2006 18:05:47 -0000 1.59 @@ -1,3 +1,7 @@ +2006-03-23 Lutz Mueller <lu...@us...> + + * exif/main.c: Add the command line option '--version'/'-v'. + 2005-08-15 Lutz Mueller <lu...@us...> Patch by Jakub Bogusz <qb...@pl...>: |
From: Jörg H. <ho...@us...> - 2006-03-19 22:04:57
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv589 Modified Files: exif.c Log Message: More work with splint - added NULL fields to fill up a static structure - a lot of explicit casts Index: exif.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -d -r1.4 -r1.5 --- exif.c 19 Mar 2006 17:23:06 -0000 1.4 +++ exif.c 19 Mar 2006 22:04:48 -0000 1.5 @@ -721,95 +721,95 @@ ProcessMakerNote(ImageInfoType *ImageInf static struct ExifTag TagTable[] = { - { 0x0001, "InteroperabilityIndex"}, - { 0x0002, "InteroperabilityVersion", ProcessVersion}, - { 0x0100, "ImageWidth"}, - { 0x0101, "ImageLength"}, - { 0x0102, "BitsPerSample"}, - { 0x0103, "Compression"}, - { 0x0106, "PhotometricInterpretation"}, - { 0x010A, "FillOrder"}, - { 0x010D, "DocumentName"}, - { 0x010E, "ImageDescription"}, - { 0x010F, "Make"}, - { 0x0110, "Model"}, - { 0x0111, "StripOffsets"}, - { 0x0112, "Orientation"}, - { 0x0115, "SamplesPerPixel"}, - { 0x0116, "RowsPerStrip"}, - { 0x0117, "StripByteCounts"}, - { 0x011A, "XResolution"}, - { 0x011B, "YResolution"}, - { 0x011C, "PlanarConfiguration"}, - { 0x0128, "ResolutionUnit"}, - { 0x012D, "TransferFunction"}, - { 0x0131, "Software"}, - { 0x0132, "DateTime"}, - { 0x013B, "Artist"}, - { 0x013E, "WhitePoint"}, - { 0x013F, "PrimaryChromaticities"}, - { 0x0156, "TransferRange"}, - { 0x0200, "JPEGProc"}, - { 0x0201, "JPEGInterchangeFormat"}, - { 0x0202, "JPEGInterchangeFormatLength"}, - { 0x0211, "YCbCrCoefficients"}, - { 0x0212, "YCbCrSubSampling"}, - { 0x0213, "YCbCrPositioning"}, - { 0x0214, "ReferenceBlackWhite"}, - { 0x1000, "RelatedImageFileFormat"}, - { 0x1001, "RelatedImageWidth"}, - { 0x1002, "RelatedImageLength"}, - { 0x828D, "CFARepeatPatternDim"}, - { 0x828E, "CFAPattern"}, - { 0x828F, "BatteryLevel"}, - { 0x8298, "Copyright"}, - { 0x829A, "ExposureTime"}, - { 0x829D, "FNumber"}, - { 0x83BB, "IPTC/NAA"}, - { 0x8769, "ExifOffset"}, - { 0x8773, "InterColorProfile"}, - { 0x8822, "ExposureProgram"}, - { 0x8824, "SpectralSensitivity"}, - { 0x8825, "GPSInfo"}, - { 0x8827, "ISOSpeedRatings"}, - { 0x8828, "OECF"}, + { 0x0001, "InteroperabilityIndex", NULL}, + { 0x0002, "InteroperabilityVersion", ProcessVersion}, + { 0x0100, "ImageWidth", NULL}, + { 0x0101, "ImageLength", NULL}, + { 0x0102, "BitsPerSample", NULL}, + { 0x0103, "Compression", NULL}, + { 0x0106, "PhotometricInterpretation", NULL}, + { 0x010A, "FillOrder", NULL}, + { 0x010D, "DocumentName", NULL}, + { 0x010E, "ImageDescription", NULL}, + { 0x010F, "Make", NULL}, + { 0x0110, "Model", NULL}, + { 0x0111, "StripOffsets", NULL}, + { 0x0112, "Orientation", NULL}, + { 0x0115, "SamplesPerPixel", NULL}, + { 0x0116, "RowsPerStrip", NULL}, + { 0x0117, "StripByteCounts", NULL}, + { 0x011A, "XResolution", NULL}, + { 0x011B, "YResolution", NULL}, + { 0x011C, "PlanarConfiguration", NULL}, + { 0x0128, "ResolutionUnit", NULL}, + { 0x012D, "TransferFunction", NULL}, + { 0x0131, "Software", NULL}, + { 0x0132, "DateTime", NULL}, + { 0x013B, "Artist", NULL}, + { 0x013E, "WhitePoint", NULL}, + { 0x013F, "PrimaryChromaticities", NULL}, + { 0x0156, "TransferRange", NULL}, + { 0x0200, "JPEGProc", NULL}, + { 0x0201, "JPEGInterchangeFormat", NULL}, + { 0x0202, "JPEGInterchangeFormatLength", NULL}, + { 0x0211, "YCbCrCoefficients", NULL}, + { 0x0212, "YCbCrSubSampling", NULL}, + { 0x0213, "YCbCrPositioning", NULL}, + { 0x0214, "ReferenceBlackWhite", NULL}, + { 0x1000, "RelatedImageFileFormat", NULL}, + { 0x1001, "RelatedImageWidth", NULL}, + { 0x1002, "RelatedImageLength", NULL}, + { 0x828D, "CFARepeatPatternDim", NULL}, + { 0x828E, "CFAPattern", NULL}, + { 0x828F, "BatteryLevel", NULL}, + { 0x8298, "Copyright", NULL}, + { 0x829A, "ExposureTime", NULL}, + { 0x829D, "FNumber", NULL}, + { 0x83BB, "IPTC/NAA", NULL}, + { 0x8769, "ExifOffset", NULL}, + { 0x8773, "InterColorProfile", NULL}, + { 0x8822, "ExposureProgram", NULL}, + { 0x8824, "SpectralSensitivity", NULL}, + { 0x8825, "GPSInfo", NULL}, + { 0x8827, "ISOSpeedRatings", NULL}, + { 0x8828, "OECF", NULL}, { 0x9000, "ExifVersion", ProcessVersion}, - { 0x9003, "DateTimeOriginal"}, - { 0x9004, "DateTimeDigitized"}, - { 0x9101, "ComponentsConfiguration"}, - { 0x9102, "CompressedBitsPerPixel"}, + { 0x9003, "DateTimeOriginal", NULL}, + { 0x9004, "DateTimeDigitized", NULL}, + { 0x9101, "ComponentsConfiguration", NULL}, + { 0x9102, "CompressedBitsPerPixel", NULL}, { 0x9201, "ShutterSpeedValue", ProcessShutterSpeed}, { 0x9202, "ApertureValue", ProcessAperture}, - { 0x9203, "BrightnessValue"}, - { 0x9204, "ExposureBiasValue"}, + { 0x9203, "BrightnessValue", NULL}, + { 0x9204, "ExposureBiasValue", NULL}, { 0x9205, "MaxApertureValue", ProcessAperture}, - { 0x9206, "SubjectDistance"}, - { 0x9207, "MeteringMode"}, - { 0x9208, "LightSource"}, - { 0x9209, "Flash"}, - { 0x920A, "FocalLength"}, + { 0x9206, "SubjectDistance", NULL}, + { 0x9207, "MeteringMode", NULL}, + { 0x9208, "LightSource", NULL}, + { 0x9209, "Flash", NULL}, + { 0x920A, "FocalLength", NULL}, { 0x927C, "MakerNote", ProcessMakerNote}, { 0x9286, "UserComment", ProcessUserComment}, - { 0x9290, "SubSecTime"}, - { 0x9291, "SubSecTimeOriginal"}, - { 0x9292, "SubSecTimeDigitized"}, + { 0x9290, "SubSecTime", NULL}, + { 0x9291, "SubSecTimeOriginal", NULL}, + { 0x9292, "SubSecTimeDigitized", NULL}, { 0xA000, "FlashPixVersion", ProcessVersion}, - { 0xA001, "ColorSpace"}, - { 0xA002, "ExifImageWidth"}, - { 0xA003, "ExifImageLength"}, - { 0xA005, "InteroperabilityOffset"}, - { 0xA20B, "FlashEnergy"}, /* 0x920B in TIFF/EP */ - { 0xA20C, "SpatialFrequencyResponse"}, /* 0x920C - - */ - { 0xA20E, "FocalPlaneXResolution"}, /* 0x920E - - */ - { 0xA20F, "FocalPlaneYResolution"}, /* 0x920F - - */ + { 0xA001, "ColorSpace", NULL}, + { 0xA002, "ExifImageWidth", NULL}, + { 0xA003, "ExifImageLength", NULL}, + { 0xA005, "InteroperabilityOffset", NULL}, + { 0xA20B, "FlashEnergy", NULL}, /* 0x920B in TIFF/EP */ + { 0xA20C, "SpatialFrequencyResponse", NULL}, /* 0x920C - - */ + { 0xA20E, "FocalPlaneXResolution", NULL}, /* 0x920E - - */ + { 0xA20F, "FocalPlaneYResolution", NULL}, /* 0x920F - - */ { 0xA210, "FocalPlaneResolutionUnit", ProcessFocalPlaneUnits}, /* 0x9210 - - */ - { 0xA214, "SubjectLocation"}, /* 0x9214 - - */ - { 0xA215, "ExposureIndex"}, /* 0x9215 - - */ - { 0xA217, "SensingMethod"}, /* 0x9217 - - */ - { 0xA300, "FileSource"}, - { 0xA301, "SceneType"}, - { 0, NULL} + { 0xA214, "SubjectLocation", NULL}, /* 0x9214 - - */ + { 0xA215, "ExposureIndex", NULL}, /* 0x9215 - - */ + { 0xA217, "SensingMethod", NULL}, /* 0x9217 - - */ + { 0xA300, "FileSource", NULL}, + { 0xA301, "SceneType", NULL}, + { 0, NULL, NULL} } ; @@ -911,7 +911,7 @@ ProcessExifDir(ImageInfoType *ImageInfo, rec_type = ConvertAnyFormat2(ValuePtr, ByteCount, Format, ImageInfo->MotorolaOrder, &rd); - snprintf(label, 32, "0x%04x", Tag); + snprintf(label, 32, "0x%04x", (unsigned int) Tag); exif_append_data(&ImageInfo->d, label, rec_type, @@ -975,13 +975,14 @@ scan_JPEG_header (ImageInfoType *ImageIn a = fgetc(infile); if (a != 0xff || fgetc(infile) != M_SOI) { - return FALSE; - } + return FALSE; + } for(*SectionsRead=0;*SectionsRead < 19;) { int itemlen; int marker = 0; - int ll,lh, got; + int ll,lh; + size_t got; uchar *Data; for (a=0;a<7;a++) { @@ -1007,7 +1008,7 @@ scan_JPEG_header (ImageInfoType *ImageIn return FALSE; } - Sections[*SectionsRead].Size = itemlen; + Sections[*SectionsRead].Size = (unsigned int) itemlen; Data = (uchar *)(*exif_malloc_fn)(itemlen+1); /* Add 1 to allow sticking a 0 at the end. */ Sections[*SectionsRead].Data = Data; @@ -1016,8 +1017,8 @@ scan_JPEG_header (ImageInfoType *ImageIn Data[0] = (uchar)lh; Data[1] = (uchar)ll; - got = fread(Data+2, 1, itemlen-2, infile); /* Read the whole section. */ - if (got != itemlen-2) { + got = fread(Data+2, 1, (size_t) itemlen-2, infile); /* Read the whole section. */ + if ((int) got != itemlen-2) { exif_error("reading from file"); return FALSE; } @@ -1027,15 +1028,36 @@ scan_JPEG_header (ImageInfoType *ImageIn case M_SOS: /* stop before hitting compressed data */ /* If reading entire image is requested, read the rest of the data. */ if (ReadAll) { - int cp, ep, size; + signed long cp, ep; + unsigned int size; /* Determine how much file is left. */ cp = ftell(infile); - fseek(infile, 0, SEEK_END); + if (cp == -1) { + exif_error ("ftell failed"); + return FALSE; + } + if (fseek(infile, 0, SEEK_END) == -1) { + exif_error ("fseek failed"); + return FALSE; + } ep = ftell(infile); - fseek(infile, cp, SEEK_SET); + if (ep == -1) { + exif_error ("ftell failed"); + return FALSE; + } + if (fseek(infile, cp, SEEK_SET) == -1) { + exif_error ("fseek failed"); + return FALSE; + } - size = ep-cp; - Data = (uchar *)(*exif_malloc_fn)(size); + /* a very basic range check */ + if (ep <= cp ) { + exif_error ("range check failed"); + return FALSE; + } + + size = (unsigned int) (ep-cp); + Data = (uchar *)(*exif_malloc_fn)((int)size); if (Data == NULL) { exif_error("could not allocate data for entire image"); return FALSE; @@ -1075,7 +1097,7 @@ scan_JPEG_header (ImageInfoType *ImageIn if (*SectionsRead <= 2) { /* Seen files from some 'U-lead' software with Vivitar scanner that uses marker 31 later in the file (no clue what for!) */ - process_EXIF(ImageInfo, (char *)Data, itemlen, LastExifRefd); + process_EXIF(ImageInfo, (char *)Data, (unsigned int) itemlen, LastExifRefd); } break; |
From: Jörg H. <ho...@us...> - 2006-03-19 17:23:20
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25921 Modified Files: exif-content.c exif.c Log Message: Used splint: - replaced some sprintf-calls with snprintf (and appropriate size value) - eliminated some unused variables splint still complains about a lot of signedness errors (comparisons and assignments), will do more checks soon Index: exif.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -d -r1.3 -r1.4 --- exif.c 15 Dec 2002 11:41:11 -0000 1.3 +++ exif.c 19 Mar 2006 17:23:06 -0000 1.4 @@ -626,7 +626,7 @@ ProcessAperture(ImageInfoType *ImageInfo if (exif_find_record(ImageInfo->d, "FNumber") == NULL) { /* Convert aperture to F-stop. */ fstop = pow(sqrt(2), ((double)rd.r.num)/((double)rd.r.denom)); - sprintf(label, "f%.1g", fstop); + snprintf(label,32, "f%.1g", fstop); rd.s = strdup(label); exif_append_data(&ImageInfo->d, "FNumber", @@ -673,7 +673,7 @@ ProcessCanonMakerNote(ImageInfoType *Ima rec_type = ConvertAnyFormat2(OffsetPtr, ByteCount, format, ImageInfo->MotorolaOrder, &rd); - sprintf(label, "MakerNote%04x", tag); + snprintf(label, 32, "MakerNote%04x", tag); exif_append_data(&ImageInfo->d, label, rec_type, @@ -819,11 +819,10 @@ static int ProcessExifDir(ImageInfoType *ImageInfo, char *DirStart, char *OffsetBase, unsigned ExifLength, char *LastExifRefd) { int de; - int a; int NumDirEntries; exif_rec_data_t rd; - char rec_type; - char label[32]; + char rec_type; + char label[32]; NumDirEntries = Get16u(DirStart, ImageInfo->MotorolaOrder); @@ -912,7 +911,7 @@ ProcessExifDir(ImageInfoType *ImageInfo, rec_type = ConvertAnyFormat2(ValuePtr, ByteCount, Format, ImageInfo->MotorolaOrder, &rd); - sprintf(label, "0x%04x", Tag); + snprintf(label, 32, "0x%04x", Tag); exif_append_data(&ImageInfo->d, label, rec_type, @@ -931,7 +930,6 @@ static int process_EXIF (ImageInfoType *ImageInfo, char *CharBuf, unsigned int length, char *LastExifRefd) { int cc; - exif_rec_data_t rd; LastExifRefd = CharBuf; { /* Check the EXIF header component */ @@ -1127,9 +1125,6 @@ ReadJpegFile(ImageInfoType *ImageInfo, S { FILE *infile; int ret; - char *tmp; - char **p_argv; - int p_argc; infile = fdopen(fd, "rb"); /* Unix ignores 'b', windows needs it. */ @@ -1163,7 +1158,6 @@ read_jpeg_exif(ImageInfoType *ImageInfo, int SectionsRead; char *LastExifRefd=NULL; int ret; - int thumbsize=0; ret = ReadJpegFile(ImageInfo, Sections, &SectionsRead, fd, ReadAll, LastExifRefd); #if 0 Index: exif-content.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-content.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -p -d -r1.18 -r1.19 --- exif-content.c 30 Apr 2005 00:55:28 -0000 1.18 +++ exif-content.c 19 Mar 2006 17:23:06 -0000 1.19 @@ -122,7 +122,7 @@ exif_content_dump (ExifContent *content, if (!content) return; - printf ("%sDumping exif content (%i entries)...\n", buf, + printf ("%sDumping exif content (%u entries)...\n", buf, content->count); for (i = 0; i < content->count; i++) exif_entry_dump (content->entries[i], indent + 1); |
From: Jan P. <pa...@us...> - 2006-03-02 20:29:34
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9853 Modified Files: exif-entry.c Log Message: Added "Deflate/ZIP compression" to list2 (used e.g. by Adobe Photoshop) Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.92 retrieving revision 1.93 diff -u -p -d -r1.92 -r1.93 --- exif-entry.c 13 Feb 2006 07:31:52 -0000 1.92 +++ exif-entry.c 2 Mar 2006 20:29:19 -0000 1.93 @@ -436,6 +436,7 @@ static struct { { {1, {N_("Uncompressed"), NULL}}, {5, {N_("LZW compression"), NULL}}, {6, {N_("JPEG compression"), NULL}}, + {8, {N_("Deflate/ZIP compression"), NULL}}, {0, {NULL}}}}, { EXIF_TAG_LIGHT_SOURCE, { { 0, {N_("Unknown"), NULL}}, |
From: Jan P. <pa...@us...> - 2006-02-19 11:09:20
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1909 Modified Files: ChangeLog Log Message: * libexif/exif-utils.h: ExifByte is now explicitly unsigned char, added ExifSByte as signed char. Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.233 retrieving revision 1.234 diff -u -p -d -r1.233 -r1.234 --- ChangeLog 13 Feb 2006 07:31:48 -0000 1.233 +++ ChangeLog 19 Feb 2006 11:09:12 -0000 1.234 @@ -1,3 +1,8 @@ +2006-02-19 Jan Patera <pa...@us...> + + * libexif/exif-utils.h: ExifByte is now explicitly unsigned char, + added ExifSByte as signed char. + 2006-02-13 Lutz Mueller <lu...@to...> * libexif/canon/mnote-canon-entry.c: Fix typo. |
From: Jan P. <pa...@us...> - 2006-02-19 11:08:44
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv983 Modified Files: exif-utils.h Log Message: 1) ExifByte is now explicitly unsigned char: needed when dumping unknown entries of the EXIF_FORMAT_BYTE type, such as XML Packet, in exif_entry_get_value 2) Added ExifSByte as signed char. Index: exif-utils.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-utils.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -p -d -r1.13 -r1.14 --- exif-utils.h 10 Mar 2005 20:48:21 -0000 1.13 +++ exif-utils.h 19 Feb 2006 11:08:35 -0000 1.14 @@ -33,7 +33,8 @@ extern "C" { /* If these definitions don't work for you, please let us fix the * macro generating _stdint.h */ -typedef char ExifByte; /* 1 byte */ +typedef unsigned char ExifByte; /* 1 byte */ +typedef signed char ExifSByte; /* 1 byte */ typedef char * ExifAscii; typedef uint16_t ExifShort; /* 2 bytes */ typedef int16_t ExifSShort; /* 2 bytes */ |
From: Marcus M. <mar...@us...> - 2006-02-18 21:07:23
|
Update of /cvsroot/libexif/libexif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15792 Modified Files: configure.ac Log Message: added vietnamese Index: configure.ac =================================================================== RCS file: /cvsroot/libexif/libexif/configure.ac,v retrieving revision 1.16 retrieving revision 1.17 diff -u -p -d -r1.16 -r1.17 --- configure.ac 13 Jan 2006 07:36:53 -0000 1.16 +++ configure.ac 18 Feb 2006 21:07:16 -0000 1.17 @@ -124,7 +124,7 @@ GP_CHECK_DOXYGEN # --------------------------------------------------------------------------- GP_GETTEXT_HACK([${PACKAGE}-${LIBEXIF_CURRENT_MIN}], [Lutz Mueller and others]) -ALL_LINGUAS="de es fr pl ru" +ALL_LINGUAS="de es fr pl ru vi" AM_GNU_GETTEXT_VERSION([0.14.1]) AM_GNU_GETTEXT([external]) AM_PO_SUBDIRS() |