Commit Graph

4485 Commits

Author SHA1 Message Date
Robin Mills
0ebb7a06ea #1041 Work in progress. Updating MinGW/daily build to populate directory dist/mingw. 2016-09-12 19:22:10 +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
2084ce50c8 #1041 Correction to r4474 2016-09-08 19:08:42 +00:00
Robin Mills
e0e3dd7184 #1041 Correction to r4474 2016-09-08 19:05:42 +00:00
Robin Mills
e50e7cddcc #1041 Adding support for MinGW daily 32-bit build using autotools. CMake/MinGW isn't working. 2016-09-08 18:52:43 +00:00
Robin Mills
b755292dc8 Fixed typo causing ./configure to display erroneous "./configure: line 17274: f: command not found" 2016-09-08 10:41:48 +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
bfa8b15947 #1074 Omitted from previous commit. 2016-09-07 13:18:30 +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
Robin Mills
191e232865 #825 Adding regression detector to test suite. 2016-09-05 10:32:59 +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
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