From dbd9ab27b810afe552e366f4c4ec7738a3e01cf6 Mon Sep 17 00:00:00 2001 From: Jan Patera Date: Tue, 24 Apr 2007 06:49:58 +0200 Subject: [PATCH] Added hook for ISO settings of Canon PowerShot S3 IS - unlike other Canons, it doesn't use index into LUT, but direct ISO value ored w/ 0x4000 --- ChangeLog | 28 ++++++++++++++++++++++++---- libexif/canon/mnote-canon-entry.c | 9 +++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index c238d31..2f58baa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,19 +1,39 @@ +2007-04-24 Jan Patera + + * libexif/canon/mnote-canon-entry.c: Added hook for ISO settings of Canon + PowerShot S3 IS - unlike other Canons, it doesn't use index into LUT, but + direct ISO value ored w/ 0x4000 + +2007-03-17 Jan Patera + + * libexif/exif-entry.c: Fixed values of EXIF_TAG_PHOTOMETRIC_INTERPRETATION, + updated values of EXIF_TAG_COMPRESSION. + 2007-02-25 Lutz Mueller - Suggestions by Jef Driesen : + Suggestions by Jef Driesen : - * libexif/exif-entry.c: Correct formulas regarding to APEX values. + * libexif/exif-entry.c: Correct formulas regarding to APEX values. + +2007-02-14 Jan Patera + + * libexif/olympus/mnote-olympus-entry.c: + Updated MNOTE_OLYMPUS_TAG_QUALITY & MNOTE_OLYMPUS_TAG_VERSION 2006-10-03 Marcus Meissner * libexif/olympus/*.[ch]: Added several Nikon Makernotes entries, extracted from exiftool. +2006-09-19 Jan Patera + + * libexif/exif-loader.c: exif_loader_write() skips non-EXIF APP1 markers + 2006-09-17 Lutz Mueller - Patch by Jef Driesen : + Patch by Jef Driesen : - * libexif/canon/*: Improve support for canon maker notes. + * libexif/canon/*: Improve support for canon maker notes. 2006-05-05 Jan Patera * libexif/exif-content.c: fixed bug #1471060: wasted space in diff --git a/libexif/canon/mnote-canon-entry.c b/libexif/canon/mnote-canon-entry.c index 925e699..eea44ce 100644 --- a/libexif/canon/mnote-canon-entry.c +++ b/libexif/canon/mnote-canon-entry.c @@ -470,6 +470,15 @@ mnote_canon_entry_get_value (const MnoteCanonEntry *entry, unsigned int t, char if (!vs) break; snprintf (val, maxlen, _("%i (ms)"), vs * 100); break; + case 15: + if (((vs & 0xC000) == 0x4000) && (vs != 0x7FFF)) { + /* Canon S3 IS - directly specified value */ + snprintf (val, maxlen, _("%i"), vs & ~0x4000); + } else { + /* Standard Canon - index into lookup table */ + canon_search_table_value (entries_settings_1, t, vs, val, maxlen); + } + break; case 22: case 23: case 24: -- 2.7.4