OBS User unknown 2008-01-15 09:16:20 +00:00 committed by Git OBS Bridge
parent 69eb2746a5
commit 4ed4bcafc0
7 changed files with 22 additions and 824 deletions

3
libexif-0.6.16.2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e86e09167dc9b1d13fddada401f6df7ba948ef1c5a6f54445ea07293d105c9ec
size 705397

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5aa3b1f6882a3632f5a6ade8784868fe3ef28f5a4f0998182044f9c4955b9881
size 656854

View File

@ -1,273 +0,0 @@
diff -x '*.m4' -x '*.o' -x '*.lo' -ru libexif-0.6.16/ChangeLog /suse/meissner/projects/libexif/ChangeLog
--- libexif-0.6.16/ChangeLog 2007-05-23 16:06:35.000000000 +0200
+++ /suse/meissner/projects/libexif/ChangeLog 2007-08-20 11:02:55.903507000 +0200
@@ -1,3 +1,14 @@
+2007-08-16 Jan Patera <patera@users.sourceforge.net>
+
+ * exif-mnote-data-olympus.c: Fix of bugs #1773810, #1774626, gnome bug #466044:
+ Some Olympus files have main IFD in MM byte order as well as makernote, but
+ makernote order was guessed wrongly. Bug introduced when fixing bug #1525770.
+
+2007-06-25 Jan Patera <patera@users.sourceforge.net>
+
+ * Endianess of Nikon V1 makernotes is now guessed, it might not
+ be the same as of the main IFD
+
2007-05-21 Jan Patera <patera@users.sourceforge.net>
* First version of Czech localization (cs.po)
diff -x '*.m4' -x '*.o' -x '*.lo' -ru libexif-0.6.16/libexif/exif-data.c /suse/meissner/projects/libexif/libexif/exif-data.c
--- libexif-0.6.16/libexif/exif-data.c 2007-06-12 17:52:25.000000000 +0200
+++ /suse/meissner/projects/libexif/libexif/exif-data.c 2007-07-05 19:02:47.068150000 +0200
@@ -194,6 +195,9 @@
if (entry->data) {
entry->size = s;
memcpy (entry->data, d + doff, s);
+ } else {
+ /* FIXME: What do our callers do if (entry->data == NULL)? */
+ EXIF_LOG_NO_MEMORY(data->priv->log, "ExifData", s);
}
/* If this is the MakerNote, remember the offset */
@@ -202,8 +206,7 @@
exif_log (data->priv->log,
EXIF_LOG_CODE_DEBUG, "ExifData",
"MakerNote found with NULL data");
- }
- else if (entry->size > 6)
+ } else if (entry->size > 6) {
exif_log (data->priv->log,
EXIF_LOG_CODE_DEBUG, "ExifData",
"MakerNote found (%02x %02x %02x %02x "
@@ -211,6 +214,7 @@
entry->data[0], entry->data[1], entry->data[2],
entry->data[3], entry->data[4], entry->data[5],
entry->data[6]);
+ }
data->priv->offset_mnote = doff;
}
return 1;
@@ -334,8 +338,10 @@
if (!data || !data->priv)
return;
- if ((ifd < 0) || (ifd >= EXIF_IFD_COUNT))
- return;
+
+ /* check for valid ExifIfd enum range */
+ if (( ((int)ifd) < 0) || ( ((int)ifd) >= EXIF_IFD_COUNT))
+ return;
if (recursion_depth > 150) {
exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifData",
diff -x '*.m4' -x '*.o' -x '*.lo' -ru libexif-0.6.16/libexif/exif-entry.c /suse/meissner/projects/libexif/libexif/exif-entry.c
--- libexif-0.6.16/libexif/exif-entry.c 2007-05-23 16:06:37.000000000 +0200
+++ /suse/meissner/projects/libexif/libexif/exif-entry.c 2007-07-05 19:02:47.150071000 +0200
@@ -581,9 +581,10 @@
return val;
o = exif_data_get_byte_order (e->parent->parent);
+ /* make sure the returned string is zero terminated */
memset (val, 0, maxlen);
- memset (b, 0, sizeof (b));
maxlen--;
+ memset (b, 0, sizeof (b));
/* Sanity check */
if (e->size != e->components * exif_format_get_size (e->format)) {
@@ -863,7 +864,7 @@
case EXIF_TAG_MAKER_NOTE:
CF (e, EXIF_FORMAT_UNDEFINED, val, maxlen);
snprintf (val, maxlen, _("%i bytes unknown data"),
- (int) e->components);
+ e->size);
break;
case EXIF_TAG_SUBJECT_AREA:
CF (e, EXIF_FORMAT_SHORT, val, maxlen);
@@ -914,7 +915,7 @@
/* Search the tag */
for (i = 0; list2[i].tag && (list2[i].tag != e->tag); i++);
if (!list2[i].tag) {
- strncpy (val, _("Internal error."), maxlen - 1);
+ strncpy (val, _("Internal error"), maxlen);
break;
}
@@ -923,7 +924,7 @@
(list2[i].elem[j].index < v_short); j++);
if (list2[i].elem[j].index != v_short) {
snprintf (val, maxlen, _("Internal error (unknown "
- "value %i)."), v_short);
+ "value %i)"), v_short);
break;
}
@@ -932,7 +933,7 @@
for (k = 0; list2[i].elem[j].values[k]; k++) {
l = strlen (_(list2[i].elem[j].values[k]));
if ((maxlen > l) && (strlen (val) < l))
- strncpy (val, _(list2[i].elem[j].values[k]), maxlen - 1);
+ strncpy (val, _(list2[i].elem[j].values[k]), maxlen);
}
if (!strlen (val)) snprintf (val, maxlen, "%i", v_short);
@@ -957,7 +958,7 @@
/* Search the tag */
for (i = 0; list[i].tag && (list[i].tag != e->tag); i++);
if (!list[i].tag) {
- strncpy (val, _("Internal error."), maxlen - 1);
+ strncpy (val, _("Internal error"), maxlen);
break;
}
@@ -966,7 +967,7 @@
if (!list[i].strings[j])
snprintf (val, maxlen, "%i", v_short);
else
- strncpy (val, _(list[i].strings[j]), maxlen - 1);
+ strncpy (val, _(list[i].strings[j]), maxlen);
break;
case EXIF_TAG_XP_TITLE:
case EXIF_TAG_XP_COMMENT:
@@ -1098,6 +1099,10 @@
return val;
}
+
+/**
+ * \bug Log and report failed exif_mem_malloc() calls.
+ */
void
exif_entry_initialize (ExifEntry *e, ExifTag tag)
{
@@ -1126,6 +1131,7 @@
e->format = EXIF_FORMAT_LONG;
e->size = exif_format_get_size (e->format) * e->components;
e->data = exif_entry_alloc (e, e->size);
+ if (!e->data) break;
break;
/* SHORT, 1 component, no default */
@@ -1154,6 +1160,7 @@
e->format = EXIF_FORMAT_SHORT;
e->size = exif_format_get_size (e->format) * e->components;
e->data = exif_entry_alloc (e, e->size);
+ if (!e->data) break;
exif_set_short (e->data, o, 0);
break;
@@ -1165,6 +1172,7 @@
e->format = EXIF_FORMAT_SHORT;
e->size = exif_format_get_size (e->format) * e->components;
e->data = exif_entry_alloc (e, e->size);
+ if (!e->data) break;
exif_set_short (e->data, o, 1);
break;
@@ -1175,6 +1183,7 @@
e->format = EXIF_FORMAT_SHORT;
e->size = exif_format_get_size (e->format) * e->components;
e->data = exif_entry_alloc (e, e->size);
+ if (!e->data) break;
exif_set_short (e->data, o, 2);
break;
@@ -1184,6 +1193,7 @@
e->format = EXIF_FORMAT_SHORT;
e->size = exif_format_get_size (e->format) * e->components;
e->data = exif_entry_alloc (e, e->size);
+ if (!e->data) break;
exif_set_short (e->data, o, 3);
break;
@@ -1221,6 +1231,7 @@
e->format = EXIF_FORMAT_SRATIONAL;
e->size = exif_format_get_size (e->format) * e->components;
e->data = exif_entry_alloc (e, e->size);
+ if (!e->data) break;
break;
/* RATIONAL, 1 component, no default */
@@ -1241,6 +1252,7 @@
e->format = EXIF_FORMAT_RATIONAL;
e->size = exif_format_get_size (e->format) * e->components;
e->data = exif_entry_alloc (e, e->size);
+ if (!e->data) break;
break;
/* RATIONAL, 1 component, default 72/1 */
@@ -1250,6 +1262,7 @@
e->format = EXIF_FORMAT_RATIONAL;
e->size = exif_format_get_size (e->format) * e->components;
e->data = exif_entry_alloc (e, e->size);
+ if (!e->data) break;
r.numerator = 72;
r.denominator = 1;
exif_set_rational (e->data, o, r);
@@ -1261,6 +1274,7 @@
e->format = EXIF_FORMAT_RATIONAL;
e->size = exif_format_get_size (e->format) * e->components;
e->data = exif_entry_alloc (e, e->size);
+ if (!e->data) break;
break;
/* RATIONAL, 6 components */
diff -x '*.m4' -x '*.o' -x '*.lo' -ru libexif-0.6.16/libexif/exif-loader.c /suse/meissner/projects/libexif/libexif/exif-loader.c
--- libexif-0.6.16/libexif/exif-loader.c 2006-10-16 13:03:31.000000000 +0200
+++ /suse/meissner/projects/libexif/libexif/exif-loader.c 2007-07-05 19:02:47.204013000 +0200
@@ -263,7 +263,7 @@
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((ssize_t)(sizeof(ExifHeader)), MAX(0, ((ssize_t)(sizeof(eld->b))) - ((ssize_t)i) - 3)))) {
eld->data_format = EL_DATA_FORMAT_EXIF;
} else {
eld->data_format = EL_DATA_FORMAT_JPEG; /* Probably JFIF - keep searching for APP1 EXIF*/
diff -x '*.m4' -x '*.o' -x '*.lo' -ru libexif-0.6.16/libexif/exif-loader.h /suse/meissner/projects/libexif/libexif/exif-loader.h
--- libexif-0.6.16/libexif/exif-loader.h 2006-09-27 10:35:13.000000000 +0200
+++ /suse/meissner/projects/libexif/libexif/exif-loader.h 2007-07-05 19:02:47.243970000 +0200
@@ -24,7 +24,6 @@
#define __EXIF_LOADER_H__
#include <libexif/exif-data.h>
-#include <libexif/exif-loader.h>
#include <libexif/exif-log.h>
#include <libexif/exif-mem.h>
diff -x '*.m4' -x '*.o' -x '*.lo' -ru libexif-0.6.16/libexif/olympus/exif-mnote-data-olympus.c /suse/meissner/projects/libexif/libexif/olympus/exif-mnote-data-olympus.c
--- libexif-0.6.16/libexif/olympus/exif-mnote-data-olympus.c 2007-05-11 09:19:13.000000000 +0200
+++ /suse/meissner/projects/libexif/libexif/olympus/exif-mnote-data-olympus.c 2007-08-20 11:02:57.048366000 +0200
@@ -230,6 +230,15 @@
else if (buf[o2 + 6 + 1] == 1)
n->order = EXIF_BYTE_ORDER_MOTOROLA;
o2 += 8;
+ if (o2 >= buf_size) return;
+ c = exif_get_short (buf + o2, n->order);
+ if ((!(c & 0xFF)) && (c > 0x500)) {
+ if (n->order == EXIF_BYTE_ORDER_INTEL) {
+ n->order = EXIF_BYTE_ORDER_MOTOROLA;
+ } else {
+ n->order = EXIF_BYTE_ORDER_INTEL;
+ }
+ }
} else if (!memcmp (buf + o2, "OLYMPUS", 8)) {
/* Olympus S760, S770 */
@@ -267,6 +276,16 @@
case nikonV1:
base = MNOTE_NIKON1_TAG_BASE;
+ /* Fix endianness, if needed */
+ if (o2 >= buf_size) return;
+ c = exif_get_short (buf + o2, n->order);
+ if ((!(c & 0xFF)) && (c > 0x500)) {
+ if (n->order == EXIF_BYTE_ORDER_INTEL) {
+ n->order = EXIF_BYTE_ORDER_MOTOROLA;
+ } else {
+ n->order = EXIF_BYTE_ORDER_INTEL;
+ }
+ }
break;
case nikonV2:

View File

@ -1,11 +0,0 @@
--- libexif/exif-entry.c 2007-05-23 16:06:37.000000000 +0200
+++ libexif/exif-entry.c 2007-09-09 14:50:23.000000000 +0200
@@ -774,7 +774,7 @@
d = (double) v_rat.numerator / (double) v_rat.denominator;
if (d < 1)
snprintf (val, maxlen, _("1/%d"),
- (int) (1. / d));
+ (int) (0.5 + 1. / d));
else
snprintf (val, maxlen, _("%d"), (int) d);
if (maxlen > strlen (val) + strlen (_(" sec.")))

View File

@ -1,525 +0,0 @@
--- libexif/canon/mnote-canon-entry.c 2007-05-11 09:19:13.000000000 +0200
+++ libexif/canon/mnote-canon-entry.c 2007-09-09 22:43:43.000000000 +0200
@@ -96,179 +96,222 @@
{ 6, 0, N_("One-shot AF")},
{ 6, 1, N_("AI servo AF")},
{ 6, 2, N_("AI focus AF")},
- { 6, 3, N_("Manual focus")},
+ { 6, 3, N_("Manual focus")},
{ 6, 4, N_("Single")},
{ 6, 5, N_("Continuous")},
{ 6, 6, N_("Manual focus")},
- { 6, 16, N_("Pan focus")},
+ { 6, 16, N_("Pan focus")},
+ { 8, 1, N_("JPEG")},
+ { 8, 2, N_("CRW+THM")},
+ { 8, 3, N_("AVI+THM")},
+ { 8, 4, N_("TIF")},
+ { 8, 5, N_("TIF+JPEG")},
+ { 8, 6, N_("CR2")},
+ { 8, 7, N_("CR2+JPEG")},
{ 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")},
+ { 9, 7, N_("Medium 3")},
+ { 9, 8, N_("Postcard")},
+ { 9, 9, N_("Widescreen")},
{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")},
- {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")},
- {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, 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")},
- {21, 0x006, N_("Tokina AF193-2 19-35mm f/3.5-4.5")},
- {21, 0x010, N_("Sigma 50mm f/2.8 EX or 28mm f/1.8")},
- {21, 0x011, N_("Canon EF 35mm f/2")},
- {21, 0x013, N_("Canon EF 15mm f/2.8")},
- {21, 0x021, N_("Canon EF 80-200mm f/2.8L")},
- {21, 0x026, N_("Cosina 100mm f/3.5 Macro AF")},
- {21, 0x028, N_("Tamron AF Aspherical 28-200mm f/3.8-5.6")},
- {21, 0x029, N_("Canon EF 50mm f/1.8 MkII")},
- {21, 0x039, N_("Canon EF 75-300mm f/4-5.6")},
- {21, 0x040, N_("Canon EF 28-80mm f/3.5-5.6")},
- {21, 0x124, N_("Canon MP-E 65mm f/2.8 1-5x Macro Photo")},
- {21, 0x125, N_("Canon TS-E 24mm f/3.5L")},
- {21, 0x131, N_("Sigma 17-35mm f2.8-4 EX Aspherical HSM")},
- {21, 0x135, N_("Canon EF 200mm f/1.8L")},
- {21, 0x136, N_("Canon EF 300mm f/2.8L")},
- {21, 0x139, N_("Canon EF 400mm f/2.8L")},
- {21, 0x141, N_("Canon EF 500mm f/4.5L")},
- {21, 0x149, N_("Canon EF 100mm f/2")},
- {21, 0x150, N_("Sigma 20mm EX f/1.8")},
- {21, 0x151, N_("Canon EF 200mm f/2.8L")},
- {21, 0x153, N_("Canon EF 35-350mm f/3.5-5.6L")},
- {21, 0x155, N_("Canon EF 85mm f/1.8 USM")},
- {21, 0x156, N_("Canon EF 28-105mm f/3.5-4.5 USM")},
- {21, 0x160, N_("Canon EF 20-35mm f/3.5-4.5 USM")},
- {21, 0x161, N_("Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8")},
- {21, 0x165, N_("Canon EF 70-200mm f/2.8 L")},
- {21, 0x166, N_("Canon EF 70-200mm f/2.8 L + x1.4")},
- {21, 0x167, N_("Canon EF 70-200mm f/2.8 L + x2")},
- {21, 0x169, N_("Sigma 15-30mm f/3.5-4.5 EX DG Aspherical")},
- {21, 0x170, N_("Canon EF 200mm f/2.8L II")},
- {21, 0x173, N_("Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5")},
- {21, 0x174, N_("Canon EF 135mm f/2L")},
- {21, 0x176, N_("Canon EF 24-85mm f/3.5-4.5 USM")},
- {21, 0x177, N_("Canon EF 300mm f/4L IS")},
- {21, 0x178, N_("Canon EF 28-135mm f/3.5-5.6 IS")},
- {21, 0x180, N_("Canon EF 35mm f/1.4L")},
- {21, 0x182, N_("Canon EF 100-400mm f/4.5-5.6L IS + x2")},
- {21, 0x183, N_("Canon EF 100-400mm f/4.5-5.6L IS")},
- {21, 0x186, N_("Canon EF 70-200mm f/4L")},
- {21, 0x190, N_("Canon EF 100mm f/2.8 Macro")},
- {21, 0x191, N_("Canon EF 400mm f/4 DO IS")},
- {21, 0x197, N_("Canon EF 75-300mm f/4-5.6 IS")},
- {21, 0x198, N_("Canon EF 50mm f/1.4")},
- {21, 0x202, N_("Canon EF 28-80 f/3.5-5.6 USM IV")},
- {21, 0x213, N_("Canon EF 90-300mm f/4.5-5.6")},
- {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")},
- {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")},
+ {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")},
+ {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")},
+ {10, 30, N_("Color accent")},
+ {10, 31, N_("Color swap")},
+ {10, 32, N_("Aquarium")},
+ {10, 33, N_("ISO 3200")},
+ {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")},
+ {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, 5, N_("A-DEP")},
+ {19, 6, N_("M-DEP")},
+ {21, 1, N_("Canon EF 50mm f/1.8")},
+ {21, 2, N_("Canon EF 28mm f/2.8")},
+ {21, 4, N_("Sigma UC Zoom 35-135mm f/4-5.6")},
+ {21, 6, N_("Tokina AF193-2 19-35mm f/3.5-4.5")},
+ {21, 7, N_("Canon EF 100-300mm F5.6L")},
+ {21, 10, N_("Sigma 50mm f/2.8 EX or 28mm f/1.8")},
+ {21, 11, N_("Canon EF 35mm f/2")},
+ {21, 13, N_("Canon EF 15mm f/2.8")},
+ {21, 21, N_("Canon EF 80-200mm f/2.8L")},
+ {21, 22, N_("Tokina AT-X280AF PRO 28-80mm F2.8 ASPHERICAL")},
+ {21, 26, N_("Cosina 100mm f/3.5 Macro AF")},
+ {21, 28, N_("Tamron AF Aspherical 28-200mm f/3.8-5.6")},
+ {21, 29, N_("Canon EF 50mm f/1.8 MkII")},
+ {21, 31, N_("Tamron SP AF 300mm f/2.8 LD IF")},
+ {21, 32, N_("Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye")},
+ {21, 39, N_("Canon EF 75-300mm f/4-5.6")},
+ {21, 40, N_("Canon EF 28-80mm f/3.5-5.6")},
+ {21, 43, N_("Canon EF 28-105mm f/4-5.6")},
+ {21, 45, N_("Canon EF-S 18-55mm f/3.5-5.6")},
+ {21, 124, N_("Canon MP-E 65mm f/2.8 1-5x Macro Photo")},
+ {21, 125, N_("Canon TS-E 24mm f/3.5L")},
+ {21, 126, N_("Canon TS-E 45mm f/2.8")},
+ {21, 127, N_("Canon TS-E 90mm f/2.8")},
+ {21, 130, N_("Canon EF 50mm f/1.0L")},
+ {21, 131, N_("Sigma 17-35mm f2.8-4 EX Aspherical HSM")},
+ {21, 134, N_("Canon EF 600mm f/4L IS")},
+ {21, 135, N_("Canon EF 200mm f/1.8L")},
+ {21, 136, N_("Canon EF 300mm f/2.8L")},
+ {21, 137, N_("Canon EF 85mm f/1.2L")},
+ {21, 139, N_("Canon EF 400mm f/2.8L")},
+ {21, 141, N_("Canon EF 500mm f/4.5L")},
+ {21, 142, N_("Canon EF 300mm f/2.8L IS")},
+ {21, 143, N_("Canon EF 500mm f/4L IS")},
+ {21, 149, N_("Canon EF 100mm f/2")},
+ {21, 150, N_("Sigma 20mm EX f/1.8")},
+ {21, 151, N_("Canon EF 200mm f/2.8L")},
+ {21, 152, N_("Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8")},
+ {21, 153, N_("Canon EF 35-350mm f/3.5-5.6L")},
+ {21, 155, N_("Canon EF 85mm f/1.8 USM")},
+ {21, 156, N_("Canon EF 28-105mm f/3.5-4.5 USM")},
+ {21, 160, N_("Canon EF 20-35mm f/3.5-4.5 USM")},
+ {21, 161, N_("Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8")},
+ {21, 165, N_("Canon EF 70-200mm f/2.8 L")},
+ {21, 166, N_("Canon EF 70-200mm f/2.8 L + x1.4")},
+ {21, 167, N_("Canon EF 70-200mm f/2.8 L + x2")},
+ {21, 168, N_("Canon EF 28mm f/1.8 USM")},
+ {21, 169, N_("Sigma 15-30mm f/3.5-4.5 EX DG Aspherical")},
+ {21, 170, N_("Canon EF 200mm f/2.8L II")},
+ {21, 173, N_("Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5")},
+ {21, 174, N_("Canon EF 135mm f/2L")},
+ {21, 176, N_("Canon EF 24-85mm f/3.5-4.5 USM")},
+ {21, 177, N_("Canon EF 300mm f/4L IS")},
+ {21, 178, N_("Canon EF 28-135mm f/3.5-5.6 IS")},
+ {21, 180, N_("Canon EF 35mm f/1.4L")},
+ {21, 181, N_("Canon EF 100-400mm f/4.5-5.6L IS + x1.4")},
+ {21, 182, N_("Canon EF 100-400mm f/4.5-5.6L IS + x2")},
+ {21, 183, N_("Canon EF 100-400mm f/4.5-5.6L IS")},
+ {21, 184, N_("Canon EF 400mm f/2.8L + x2")},
+ {21, 186, N_("Canon EF 70-200mm f/4L")},
+ {21, 190, N_("Canon EF 100mm f/2.8 Macro")},
+ {21, 191, N_("Canon EF 400mm f/4 DO IS")},
+ {21, 197, N_("Canon EF 75-300mm f/4-5.6 IS")},
+ {21, 198, N_("Canon EF 50mm f/1.4")},
+ {21, 202, N_("Canon EF 28-80 f/3.5-5.6 USM IV")},
+ {21, 211, N_("Canon EF 28-200mm f/3.5-5.6")},
+ {21, 213, N_("Canon EF 90-300mm f/4.5-5.6")},
+ {21, 214, N_("Canon EF-S 18-55mm f/3.5-4.5 USM")},
+ {21, 224, N_("Canon EF 70-200mm f/2.8L IS USM")},
+ {21, 225, N_("Canon EF 70-200mm f/2.8L IS USM + x1.4")},
+ {21, 226, N_("Canon EF 70-200mm f/2.8L IS USM + x2")},
+ {21, 229, N_("Canon EF 16-35mm f/2.8L")},
+ {21, 230, N_("Canon EF 24-70mm f/2.8L")},
+ {21, 231, N_("Canon EF 17-40mm f/4L")},
+ {21, 232, N_("Canon EF 70-300mm f/4.5-5.6 DO IS USM")},
+ {21, 234, N_("Canon EF-S 17-85mm f4-5.6 IS USM")},
+ {21, 235, N_("Canon EF-S10-22mm F3.5-4.5 USM")},
+ {21, 236, N_("Canon EF-S60mm F2.8 Macro USM")},
+ {21, 237, N_("Canon EF 24-105mm f/4L IS")},
+ {21, 238, N_("Canon EF 70-300mm F4-5.6 IS USM")},
+ {21, 241, N_("Canon EF 50mm F1.2L USM")},
+ {21, 242, N_("Canon EF 70-200mm f/4L IS USM")},
+ {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")},
+ {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 [] = {
@@ -320,7 +363,7 @@
{ 26, 3, N_("Rotate 270 CW")},
{ 26, 0xffff, N_("Rotated by software")},
{ 27, 0, N_("Off")},
- { 27, 1, N_("On")},
+ { 27, 1, N_("On")},
{32, 0, N_("Off")},
{32, 0x0014, N_("1/3")},
{32, 0x008c, N_("2/3")},
@@ -334,6 +377,51 @@
{0, 3, N_("Top to bottom")},
{0, 4, N_("2x2 matrix (clockwise)")},
{0, 0, NULL}
+},
+color_information [] = {
+ {0, 0, N_("Standard")},
+ {0, 1, N_("Manual")},
+ {0, 2, N_("Custom")},
+ {2, 0, N_("N/A")},
+ {2, 1, N_("Lowest")},
+ {2, 2, N_("Low")},
+ {2, 3, N_("Standard")},
+ {2, 4, N_("High")},
+ {2, 5, N_("Highest")},
+ {7, 0, N_("Auto")},
+ {7, 1, N_("Daylight")},
+ {7, 2, N_("Cloudy")},
+ {7, 3, N_("Tungsten")},
+ {7, 4, N_("Fluorescent")},
+ {7, 5, N_("Flash")},
+ {7, 6, N_("Custom")},
+ {7, 7, N_("Black & White")},
+ {7, 8, N_("Shade")},
+ {7, 9, N_("Manual Temperature (Kelvin)")},
+ {7, 10, N_("PC Set1")},
+ {7, 11, N_("PC Set2")},
+ {7, 12, N_("PC Set3")},
+ {7, 14, N_("Daylight Fluorescent")},
+ {7, 15, N_("Custom 1")},
+ {7, 16, N_("Custom 2")},
+ {7, 17, N_("Underwater")},
+ {9, 0x00, N_("None")},
+ {9, 0x01, N_("Standard")},
+ {9, 0x02, N_("Set 1")},
+ {9, 0x03, N_("Set 2")},
+ {9, 0x04, N_("Set 3")},
+ {9, 0x21, N_("User Def. 1")},
+ {9, 0x22, N_("User Def. 2")},
+ {9, 0x23, N_("User Def. 3")},
+ {9, 0x41, N_("External 1")},
+ {9, 0x42, N_("External 2")},
+ {9, 0x43, N_("External 3")},
+ {9, 0x81, N_("Standard")},
+ {9, 0x82, N_("Portrait")},
+ {9, 0x83, N_("Landscape")},
+ {9, 0x84, N_("Neutral")},
+ {9, 0x85, N_("Faithful")},
+ {9, 0x86, N_("Monochrome")},
};
static void
@@ -412,6 +500,7 @@
case MNOTE_CANON_TAG_SETTINGS_1:
case MNOTE_CANON_TAG_SETTINGS_2:
case MNOTE_CANON_TAG_CUSTOM_FUNCS:
+ case MNOTE_CANON_TAG_COLOR_INFORMATION:
if (entry->format != EXIF_FORMAT_SHORT) return 0;
val = exif_get_short (entry->data, entry->order);
@@ -622,8 +711,19 @@
strncat (val, buf, maxlen - strlen (val));
break;
+ case MNOTE_CANON_TAG_COLOR_INFORMATION:
+ CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+ n = exif_get_short (data, entry->order) / 2;
+ if (t >= n) return NULL;
+ CC (entry->components, n, val, maxlen);
+ vs = exif_get_short (entry->data + 2 + t * 2, entry->order);
+ canon_search_table_value (color_information, t, vs, val, maxlen);
+ break;
+
default:
#ifdef DEBUG
+ {
+ int i;
if (entry->format == EXIF_FORMAT_SHORT)
for(i=0;i<entry->components;i++) {
vs = exif_get_short (data, entry->order);
@@ -638,6 +738,7 @@
}
else if (entry->format == EXIF_FORMAT_ASCII)
strncpy (val, data, MIN (entry->size, maxlen));
+ }
#endif
break;
}
--- libexif/canon/mnote-canon-tag.c 2007-05-11 09:19:13.000000000 +0200
+++ libexif/canon/mnote-canon-tag.c 2007-09-09 22:00:19.000000000 +0200
@@ -39,6 +39,7 @@
{MNOTE_CANON_TAG_FIRMWARE, "FirmwareVersion", N_("Firmware version"), ""},
{MNOTE_CANON_TAG_IMAGE_NUMBER, "ImageNumber", N_("Image number"), ""},
{MNOTE_CANON_TAG_OWNER, "OwnerName", N_("Owner name"), ""},
+ {MNOTE_CANON_TAG_COLOR_INFORMATION, "ColorInformation", N_("Color information"), ""},
{MNOTE_CANON_TAG_SERIAL_NUMBER, "SerialNumber", N_("Serial number"), ""},
{MNOTE_CANON_TAG_CUSTOM_FUNCS, "CustomFunctions", N_("Custom functions"), ""},
{0, NULL, NULL, NULL}
@@ -55,6 +56,7 @@
{MNOTE_CANON_TAG_SETTINGS_1, 3, N_("Flash mode")},
{MNOTE_CANON_TAG_SETTINGS_1, 4, N_("Drive mode")},
{MNOTE_CANON_TAG_SETTINGS_1, 6, N_("Focus mode")},
+ {MNOTE_CANON_TAG_SETTINGS_1, 8, N_("Record 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")},
@@ -113,6 +115,10 @@
{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")},
+ {MNOTE_CANON_TAG_COLOR_INFORMATION, 0, N_("Tone curve")},
+ {MNOTE_CANON_TAG_COLOR_INFORMATION, 2, N_("Sharpness frequency")},
+ {MNOTE_CANON_TAG_COLOR_INFORMATION, 7, N_("White balance")},
+ {MNOTE_CANON_TAG_COLOR_INFORMATION, 9, N_("Picture style")},
{0, 0, NULL}
};
--- libexif/canon/mnote-canon-tag.h 2007-05-11 09:19:13.000000000 +0200
+++ libexif/canon/mnote-canon-tag.h 2007-09-09 22:48:24.000000000 +0200
@@ -41,7 +41,8 @@
MNOTE_CANON_TAG_UNKNOWN_10 = 0xa,
MNOTE_CANON_TAG_SERIAL_NUMBER = 0xc,
MNOTE_CANON_TAG_UNKNOWN_13 = 0xd,
- MNOTE_CANON_TAG_CUSTOM_FUNCS = 0xf
+ MNOTE_CANON_TAG_CUSTOM_FUNCS = 0xf,
+ MNOTE_CANON_TAG_COLOR_INFORMATION = 0xa0
};
typedef enum _MnoteCanonTag MnoteCanonTag;

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Wed Jan 9 14:27:30 CET 2008 - meissner@suse.de
- updated to current version
- fixed security issues (CVE-2007-6351/CVE-2007-6352) #348748
- various small fixes
- fuji maker notes support
-------------------------------------------------------------------
Mon Sep 10 09:55:03 CEST 2007 - kukuk@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package libexif (Version 0.6.16)
# spec file for package libexif (Version 0.6.16.2)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
@ -12,17 +12,14 @@
Name: libexif
BuildRequires: doxygen
URL: http://libexif.sourceforge.net
License: LGPL v2 or later
Url: http://libexif.sourceforge.net
License: LGPL v2.1 or later
Group: Development/Libraries/C and C++
Summary: An EXIF Tag Parsing Library for Digital Cameras
Version: 0.6.16
Release: 19
Version: 0.6.16.2
Release: 1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %{name}-%{version}.tar.bz2
Patch0: libexif-current.patch
Patch1: libexif-exposure-time-bz223752.diff
Patch2: libexif-mnote-canon.diff
%description
This library is used to parse EXIF information from JPEGs created by
@ -53,9 +50,6 @@ Authors:
%prep
%setup -q
%patch0 -p1
%patch1 -p0
%patch2 -p0
%build
%configure \
@ -92,6 +86,11 @@ rm -rf $RPM_BUILD_ROOT
%{_includedir}/*
%changelog
* Wed Jan 09 2008 - meissner@suse.de
- updated to current version
- fixed security issues (CVE-2007-6351/CVE-2007-6352) #348748
- various small fixes
- fuji maker notes support
* Mon Sep 10 2007 - kukuk@suse.de
- Update Canon maker note section for newer models
* Sun Sep 09 2007 - kukuk@suse.de