Commit Graph

4458 Commits

Author SHA1 Message Date
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
fc74393029 #1074 Correction to r4455 where in updated test/bugfixes-test.sh instead of test/data/bugfixes-test.out 2016-09-01 14:32:20 +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
1c091df392 #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:08:41 +00:00
Robin Mills
7e09d250f1 #1060 Resequenced tests in alphabetic order. 2016-08-30 16:58:13 +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
4f9ce8d820 Copied trunk to branches/develop. 2016-08-30 16:02:54 +00:00
Robin Mills
23841e3d58 #1218 Work-in-progress on test/exifdata-test.sh 2016-08-30 10:53:35 +00:00
Robin Mills
4a75d4f472 #1203 test/webp-test.sh - silence warning about time format. 2016-08-30 07:32:14 +00:00
Robin Mills
c7dfa4f032 #1203 Fixing test suite to respect changes introduced by r4438 2016-08-30 06:58:50 +00:00
Robin Mills
9a3374dc47 teamdata/contrib/redmine/progress.py - update feature table 2016-08-30 05:26:24 +00:00
Robin Mills
8ad06d6f17 #1199 Fixing build-breaker when -DDEBUG is used. 2016-08-27 17:36:29 +00:00
Robin Mills
4718fbee3f CLion IDE support. Thank You, Ben. This is really useful. See contrib/CLion/ReadMe.txt for explanation. 2016-08-27 17:35:36 +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
sridharb
9d026de3af Fix for http://dev.exiv2.org/issues/1213
Two changes: add $(ProjectDir)../../src to the include path
change $(SolutionDir)../ to $(ProjectDir)../../ in order so that individual projects may be used in solutions other than those in the exiv2 tree. The existing terminology ties the include paths to the Solution and the new methodology ties them to the Project and enables them to "float" to any Solution.
2016-08-26 03:50:30 +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
8a089d28cc Fix typo 2016-08-24 20:00:11 +00:00
tbeu
9b7ef9d068 Fix typo 2016-08-24 19:57:52 +00:00
tbeu
199771eb9f Fix typos 2016-08-24 19:52:07 +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
Robin Mills
4ab9c840e4 #1207 Updating comments in samples/mt-test.cpp to document build restrictions. 2016-08-22 13:44:46 +00:00
Robin Mills
208b5110ae #1207 Don't build mt-test by default. It requires C++11. G++ 5.3 will not compile #include <exiv2/exiv2.hpp> because AutoPtr is deprecated. 2016-08-21 22:54:13 +00:00
Robin Mills
ebfd26fb75 #1207 Dynamically new/delete thread array in mt-test.cpp 2016-08-21 09:50:05 +00:00
Robin Mills
3b83918320 #1207 Added samples/mt-test.cpp 2016-08-21 08:16:30 +00:00
Robin Mills
027b3917ec #1199 Spit'n'polish on the loops in printStructure(), metadataRead() and doWriteMetadata(). Added tests with even byte count for ICCP and XMP Chunks. 2016-08-20 14:11:54 +00:00
draekko
ed7b20a20e #1199 fixed typo from cut/paste in previous commit causing exif flag not to be set for VP8X chunk. 2016-08-20 13:11:22 +00:00
draekko
c858b7d44e #1199 minor code update, updated comments, added constants for headers, bit definitions, and misc. 2016-08-20 12:42:24 +00:00
Robin Mills
9a061d895e #1199 Fix WebP printStructure(), readMetadata() and doWriteMetadata() to handle payload padding byte. Extended webp-test to cover -iX, -ix and -ie 2016-08-20 09:43:34 +00:00
draekko
600eb0d3dd #1199 Fixed issue with -ix, wasnt padding odd sized chunks for exif/xmp. 2016-08-20 00:33:23 +00:00
Robin Mills
d369aa67d5 #1199 Test suite changes and associate fixes to the code. 2016-08-19 18:59:28 +00:00
Robin Mills
b3c6de6274 #1210 C++11/regex build-breaker in src/version.cpp. Thank You to Zulan for reporting this and providing a patch. 2016-08-19 14:46:28 +00:00
Robin Mills
79e81f0b68 #1199. Cosmetic corrections to r4413 2016-08-19 10:16:22 +00:00
Robin Mills
0462d2bf0f #1199. Adding tests for -iC. Fixed bug in -pC. Test code added for -ix and -ie, however I don't think the options are working correctly. 2016-08-19 10:10:06 +00:00
Robin Mills
591b43e77b #1199 Adding tests for -dC -de -dx 2016-08-19 07:08:27 +00:00
draekko
b318674f75 #1199 fixed -de -dc options, add -iC option to insert icc profiles 2016-08-19 00:54:49 +00:00
tbeu
d02560da36 Remove trailing blank from translation string 2016-08-18 20:15:33 +00:00