Commit Graph

2377 Commits

Author SHA1 Message Date
nkbj
f260b163ad Update Canon and Nikon lens lists to match ExifTool version 10.26. 2016-09-17 01:55:10 +00:00
Robin Mills
d321dad695 #1108 Fixing issue with pngimage::printStructure() and the "Software" string in test/data/imagemagick.png 2016-09-16 11:19:07 +00:00
Robin Mills
b46cac7790 #1126 Fixes submitted for msvc2003 2016-09-16 05:33:40 +00:00
Robin Mills
1bea0c6aeb #1108 Better string formatting (and associated test/data changes). Tweaks to code layout for r4497. 2016-09-15 14:09:43 +00:00
Robin Mills
458580373a #1108 Enhanced pngimage::printStructure() to display checksum 2016-09-15 13:15:48 +00:00
Robin Mills
f2ec4ce36a #1074 Work in progress. fixed pngimage.cpp doWriteMetadata(). 2016-09-15 12:20:51 +00:00
Robin Mills
7bd874049e #1074 Work in progress. -eC -pC -eC- work for JPG/PNG/TIFF/WEBP. pngimage::doWriteMetadata() does not update iCCP chunk. 2016-09-14 20:25:21 +00:00
Robin Mills
5edc759cc9 #1074 For discussion see: http://dev.exiv2.org/issues/1074#note-23 2016-09-14 10:02:51 +00:00
Robin Mills
a8c51889b8 #1074. Fix bug in jpgimage.cpp/readMetadata() concerning ICC profile 2016-09-13 09:47:02 +00:00
Robin Mills
3d57bbc6e6 #1074 Work in progress. ICC Jpeg/Png/Tiff exiv2 -eC foo.xxx writes good foo.icc profiles. icc-test.sh is broken and to be investigated. 2016-09-12 17:42:12 +00:00
Robin Mills
9d06081616 #1225 Correction to r4480 to respect the endianness of file and platform 2016-09-12 09:06:18 +00:00
nkbj
44e51a9069 Whitespace fix in r4480. 2016-09-11 16:00:08 +00:00
Robin Mills
c7bca0ce00 #1224 crw-test.sh refactored to use test/functions.source, no long reference sample program crwparse and avoid crash in crwimage.cpp 2016-09-11 15:47:47 +00:00
Robin Mills
9ff2224fd7 #1074. Rollback r4479 which has inflicted a lot harm on the test harness. 2016-09-11 15:31:28 +00:00
Robin Mills
14f64998ac #1225 Fix 2016-09-11 03:19:24 +00:00
Robin Mills
3aaebf50f7 #1074 Added ICC support to tiffimage.writeMetadata(). pngimage.readMetadata() is not complete. 2016-09-09 15:18:59 +00:00
Robin Mills
925fede113 #1223 Correction to r4477 to fix Cygwin build breaker. #include <cstdint> demands C++11 support on GCC 4.9.3 on the buildserver. Code compiles without cstdint and iomanip 2016-09-09 10:04:29 +00:00
Robin Mills
2de6968227 #1223 Thank you to Alexey for reporting this and providing the patch. 2016-09-09 08:26:01 +00:00
Robin Mills
f44f706478 MinGW changes following discussion about building with Qt5.6/MinGW 4.9.2 http://dev.exiv2.org/boards/3/topics/2705 2016-09-07 17:08:27 +00:00
Robin Mills
d7463fd114 #1074 and #1057 Fixing build breakers on Cygwin and msvc MinGW to be further investigaged. add checkSum to test functions 2016-09-07 13:17:47 +00:00
Robin Mills
5cf87e19dd #1074 Correction to r4466 to fix MinGW build breaker on include <sys/select.h> 2016-09-06 23:11:10 +00:00
Robin Mills
b5bc66b36a #1057 Added support for -iXX- 2016-09-06 13:38:18 +00:00
Robin Mills
d801aabd58 #1057. Simplification of r4466 2016-09-06 10:26:06 +00:00
Robin Mills
70407cc8ad #1057 Fixed issues with stdin on Windows which were documented in http://dev.exiv2.org/issues/1057#note-8 2016-09-06 09:56:36 +00:00
Robin Mills
21e7622f0b #1057 Fixed src\exiv2app.hpp formatting. Moved reading stdin from ctor to getStdin(). WIP: unsolved Windows pipe issues. 2016-09-06 07:29:01 +00:00
Robin Mills
14f7f18222 #1057 Correction to r4633 to fix Windows build-breakers (Cygwin/MinGW and msvc) 2016-09-05 20:52:46 +00:00
Robin Mills
984189ebde #1057 Added support for -iC- to read ICC profile from stdin to an image. 2016-09-05 17:58:07 +00:00
Robin Mills
57ee93886a #2120 Fix submitted and appropriate changes to test/icc-test.sh (rewritting ICC in JPG was corrupting file) 2016-09-05 14:43:13 +00:00
Robin Mills
87e9c996a6 #1220 and #1074 Work in progress. Improved -pS for JPEG. #1220 is due to a bug in writing the ICC profile in jpgimage.cpp/doWriteMetadata() 2016-09-05 11:39:29 +00:00
draekko
bf56bbf7fa #825 added printPressure for panasonic makernotes to display hPa values or infinite when value is 65535 for Exif field 0x0086 2016-09-04 11:22:40 +00:00
Robin Mills
3706233c8d #1074 Correction to r4457 to fix msvc build-breaker. 2016-09-01 17:38:04 +00:00
Robin Mills
b7c90140c7 #1074 ICC support in jpgimage.cpp. Add test/icc-test.sh 2016-09-01 16:44:29 +00:00
Robin Mills
9026954816 #1074 Work in progress for ICC/jpg - changes to readMetadata() and printStructure() 2016-09-01 14:17:25 +00:00
Robin Mills
a6ba04d422 #994 Update svn_version.h using svn info 'Last Changed Rev' instead of 'Changed'. This enables exiv2 -vVg svn to identify build branch or trunk. 2016-08-31 18:09:37 +00:00
Robin Mills
97e7905a8b #1060 Thank you to Thomas B for working on this and providing the patch. 2016-08-30 16:33:57 +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
Robin Mills
8ad06d6f17 #1199 Fixing build-breaker when -DDEBUG is used. 2016-08-27 17:36:29 +00:00
sridharb
d78dec24e3 Moved ExifDatum::ignore from exif.hpp to the exif.cpp.
This frees up exif.hpp from needing to include tags_int.hpp.

The downside is that this function is no longer inline.
2016-08-26 13:35:50 +00:00
sridharb
d05634a2e3 Needs to be in the solution. 2016-08-26 11:15:51 +00:00
Robin Mills
ae4e63b27a #1214 Patch submitted r4440. Thank You to Ondřej for reporting this and providing the patch. 2016-08-26 09:54:50 +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
Robin Mills
fe6a016957 #922 Correction to r4434. Fixing another msvc build breaker. 2016-08-25 19:41:20 +00:00
Robin Mills
8377456786 #922 Correction to r4344 to handle msvc build breaker. 2016-08-25 18:32:12 +00:00
Robin Mills
13be017d12 #922 exiv2 -dI deletes all IPTC chunks in a JPEG. 2016-08-25 16:20:38 +00:00
tbeu
239625e66e Fix typos (comments only) 2016-08-24 19:39:59 +00:00
tbeu
1ba4e46855 Fix some spelling 2016-08-24 18:45:11 +00:00
Robin Mills
705bc14795 #1057 man page update for tgt- (stdin/stdout). 2016-08-24 09:05:27 +00:00
Robin Mills
8b9265b80d #1064 Fix -iX to merge (not replace) metadata from source to destination. 2016-08-23 19:40:56 +00:00
Robin Mills
fa24a8a614 #1199 Fixing webp-test.sh. Use -iXX to inject XMP into file without XMP->Exif/IPTC conversion 2016-08-22 20:54:24 +00:00