Commit Graph

219 Commits

Author SHA1 Message Date
tbeu
d1f73aa237 Make it floats 2017-11-04 21:01:35 +01:00
tbeu
867343b46f Utilize const Value reference 2017-11-04 21:01:34 +01:00
mfg92
97d7a04ea8 Added support for 'Tamron SP 15-30mm f/2.8 Di VC USD A012' and 'Tamron SP 90mm f/2.8 Di VC USD MACRO1:1'.
But there is no distinction between the F004 and the F017 Versions of the 90mm.
Fixed Bug #1306 and #1304 (partly)
2017-09-20 15:36:29 +02:00
clanmills
9586164a8f Fix: https://github.com/Exiv2/exiv2/issues/45 Thank You to Steve for reporting, providing the patch and giving feedback that modifying ~/.exiv2 worked. 2017-09-03 16:35:41 +02:00
clanmills
0f72599121 https://github.com/Exiv2/exiv2/issues/45 Fixing blank line typo. 2017-08-30 15:32:28 +01:00
clanmills
cf36ff3372 Fix: https://github.com/Exiv2/exiv2/issues/45 Thank You to Steve for reporting, providing the patch and giving feedback that modifying ~/.exiv2 worked. 2017-08-29 21:09:44 +01:00
clanmills
e2862ba764 #1300 and #1301 (583cfd6e and 3bbba3f8). These fixes were accidentally lost on 2017-08-07. 2017-08-10 00:01:08 +01:00
Robin Mills
192a2a83cf #1279 Cleaned up doxygen warnings for doc and website. 2017-03-16 18:13:12 +00:00
Robin Mills
6d5c2c3256 Getting ready to release v0.26 2017-03-08 20:42:28 +00:00
nkbj
40dbbf6373 Update various lists to match ExifTool version 10.44. 2017-02-25 04:45:19 +00:00
nkbj
f3fe69ea18 Update Canon lens list to match ExifTool version 10.40. 2017-01-15 04:29:31 +00:00
Robin Mills
461b431bc1 #1231 Thank You to Ayke for providing the patch. 2016-12-02 10:31:10 +00:00
Robin Mills
1a0095ff4a #1252 Patch submitted. Thank You to Markus for the patch and test files. Test suite updated appropriately. 2016-11-13 11:51:54 +00:00
nkbj
db3af9720a Update various lists to match ExifTool version 10.31. 2016-10-30 02:42:02 +00:00
nkbj
133174a6b1 Update various lists to match ExifTool version 10.28. 2016-09-29 03:37:38 +00:00
nkbj
52f3e100c2 Update various lists to match ExifTool version 10.27. 2016-09-24 00:13:38 +00:00
nkbj
d733056375 Fix issue #1215: Exif.CanonSi.SubjectDistance unit. 2016-09-18 02:30:19 +00:00
nkbj
7915183af7 Fix issue #1217: Missing values for Exif.CanonCs.ISOSpeed tag 0x0010. 2016-09-18 02:12:31 +00:00
nkbj
f260b163ad Update Canon and Nikon lens lists to match ExifTool version 10.26. 2016-09-17 01:55:10 +00:00
Robin Mills
5f9807cbef #1216. Rollback r4448/6/2/1 r4439/38 to restabilize test suite on trunk. r4449 is copy of r4448 to branches/develop 2016-08-30 16:05:45 +00:00
sridharb
48294e66c0 Summary: Restored jbeu's formatting 2016-08-26 06:27:52 +00:00
sridharb
8a8ec67136 This is mainly a fix for #1206, but also interprets missing Canon Exif
Tags in exiv2 with the help of Phil Harvey's exiftool (see
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Canon.html).

Even with these changes (toward #1204 and #1205), exiv2 lags behind
exiftool in some areas of interpretation of Canon tags. Ideally, a
catch-up effort to bring the code in source: canonmn.cpp in line with
lib/Image/ExifTool/Canon.pm. v10.25 of exiftool was used as reference
for this change.

#1206 seeks to address the fact that when Canon does not have data for
certain tags, they use specific default values in those fields. These
default values need to be ignored and not displayed. This change
brings this feature to exiv2, something that already exiftool does.

With regards to implementation, the struct TagInfo in source: tags.hpp
is extended with four new fields.

The first field is a bool that if set to true (default false), denotes
that this field has ignorable default values.

The second field is the default value that needs to be ignored. This
can be of four types (String, Long, Float, Rational). These four types
were chosen as they had conversion functions in the Value class.

The third field is the comparison type (default equal_to). There are
six comparison types possible (equal_to, not_equal_to, less,
less_equal, greater, greater_equal). This is the comparison applied to
the value stored in the tag's field and the default value specified
above. For e.g. if the value in the tag Exif.CanonCs.RecordMode is -1,
then it needs to be ignored.

The fourth field is the data type (default Long). This could have been
guessed from the type of the second field, but that would necessitate
making this structure into a template calling for changes in multitude
of files.

Usage: In source: canonmn.cpp, several exif tags now have ignorable
default properties. I will list a few examples.

1. Exif.CanonCs.FocusMode:        TagInfo(0x0007, "FocusMode", N_("Focus Mode"), N_("Focus mode setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFocusMode)),

There are no changes - i.e. this is an example of how the TagInfo
structure was being populated.

2. Exif.CanonCs.RecordMode:        TagInfo(0x0009, "RecordMode", N_("Record Mode"), N_("Record mode setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsRecordMode), true, s_1_),

Take a look at the two new arguments. The first one (true) specifies
that there is a default value that can be ignored. The second one s_1_
specifies the value (-1, in this case) to be ignored.

	const UShortValue CanonMakerNote::s_1_(65535, unsignedShort); // Till bug is resolved

Note s_1_ is temporarily having the value 65535 till #1203 that causes
signedShorts to be interpreted as unsignedShorts is resolved.


3. Exif.CanonSi.TargetAperture:         TagInfo(0x0004, "TargetAperture", N_("Target Aperture"), N_("Target Aperture"), canonSiId, makerTags, unsignedShort, 1, printSi0x0015, true, us0_, TagInfo::less_equal),

Note the third argument TagInfo::less_equal. This combined with the
second argument us0_ (the number 0) signifies that any values in this
tag that are less than or equal (<=) to 0 should be ignored.

4. 		TagInfo(0x0028, "ImageUniqueID", N_("Image Unique ID"), N_("Image Unique ID"), canonId, makerTags, asciiString, -1, printValue, true, s0x16_, TagInfo::equal_to, TagInfo::String),

The previous examples have all been of Long type. This shows a case
where the default value is a string.

	const AsciiValue CanonMakerNote::s0x16_("0000000000000000");

Once these tag values have been defined, the actual mechanics of
ignoring these default values happens in Image::exifData().

Before the exifData is returned, we loop through the data, ask the
data whether it needs to be ignored (which in turn checks its
underlying tagInfo and compares it with the default value, if
specified) and if so, deletes that element.

A compile-time switch called EXV_DONT_IGNORE_UNDEFINED which when set
to a non-zero value will cause the behavior to revert back to the
original where all values are reported irregardless of the fact that
they need to be ignored.
2016-08-26 05:36:05 +00:00
tbeu
136d517929 Update Canon FileInfo RawJpgSize to match ExifTool 2016-08-16 20:41:20 +00:00
tbeu
e5f142fab6 Update Canon CS Image stabilization to match ExifTool 2016-08-16 20:35:25 +00:00
tbeu
ffcb3f5002 Update Canon CS Exposure mode to match ExifTool 2016-08-16 20:28:56 +00:00
tbeu
e26650f409 Update Canon CS AF point to match ExifTool 2016-08-16 20:27:31 +00:00
tbeu
d888490a35 Update Canon CS Meeterimg mode to match ExifTool 2016-08-16 20:25:34 +00:00
tbeu
bde4fa8aa5 Update Canon CS Easy mode to match ExifTool 2016-08-16 20:22:53 +00:00
tbeu
e2bd73b1da Update Canon CS Image size to match ExifTool 2016-08-16 20:16:33 +00:00
tbeu
59d4bc6e02 Update Canon CS Focus mode to match ExifTool 2016-08-16 20:12:07 +00:00
tbeu
cbe1eafd28 Update Canon CS Drive mode to match ExifTool 2016-08-16 20:09:28 +00:00
tbeu
a564e084be Update Canon model ID to match ExifTool 2016-08-16 20:06:21 +00:00
Robin Mills
d8457b2b3f #1102. Correction to r4365. canonmn.cpp#1238 should not have been changed. Thanks to Sridhar for bringing this to my attention. 2016-08-14 05:43:21 +00:00
Robin Mills
1935eddeac #1202 Adding "Manual" Exif.CanonCs.FocusContinuous 2016-08-11 14:34:20 +00:00
nkbj
ecb9d84305 Issue #1197: Add support for Sigma 150-500mm on Canon with 1.4x TC. 2016-08-09 02:44:57 +00:00
nkbj
6011899bbf Update various lists to match ExifTool version 10.20. 2016-06-16 23:55:43 +00:00
nkbj
e155be6372 Update Canon lens list to match ExifTool version 10.19. 2016-06-02 02:51:51 +00:00
nkbj
26661a8702 Update lens lists to match ExifTool version 10.17. 2016-05-26 02:54:26 +00:00
Robin Mills
dbed6f857c #1034 Added exiv2 config file support for lens recognition. 2016-03-25 08:12:16 +00:00
Robin Mills
60b0b842cf #1170. Thank you, Marcus for reporting this and providing the test data. 2016-03-22 15:03:34 +00:00
nkbj
c26dd2091f Update Canon camera model list to match ExifTool version 10.13. 2016-03-13 03:32:28 +00:00
nkbj
8494fd61f3 Agreed with Phil Harvey (author of ExifTool) upon a nomenclature for Sigma lens families. 2016-03-12 04:32:50 +00:00
nkbj
36b42eabeb More consistency fixes. 2016-03-11 16:59:31 +00:00
nkbj
e948ccc449 Consistency fix. 2016-03-11 16:44:43 +00:00
nkbj
0cf3dc9e09 Add new lens: Sigma 50-100mm F1.8 DC HSM Art for Canon. 2016-03-11 16:27:32 +00:00
nkbj
ddccd1eafc Lens numbering fix. 2016-03-05 03:34:56 +00:00
nkbj
328ebcf462 Fix a couple of lens names to be consistent across lens mounts. 2016-03-05 03:23:36 +00:00
nkbj
e2f05aa19e Update various lists to match ExifTool version 10.12. 2016-03-04 17:24:19 +00:00
Robin Mills
cc0ec825ec #1166. Thank You, Phillippe for reporting this and providing a patch and test data. 2016-03-04 08:33:08 +00:00
Robin Mills
3daa8df380 #1167. Thank You, Philippe for the patch. No test file yet. 2016-03-04 08:10:18 +00:00