130 Commits (192a2a83cf0cedd67b88aef61a86d402e74717c9)

Author SHA1 Message Date
Robin Mills 192a2a83cf #1279 Cleaned up doxygen warnings for doc and website. 8 years ago
Robin Mills 199820576d #1279 Work in Progress: API Documentation (doxygen) 8 years ago
Robin Mills 11993b3b55 #1271 Thanks to Ben for reporting this and providing the patch. 8 years ago
Robin Mills 85eb0da9d1 #1279 Bump EXIV2_MINOR_VERSION in include/exiv2/version.hpp 8 years ago
Robin Mills 6d5c2c3256 Getting ready to release v0.26 8 years ago
Robin Mills 54cfc47346 class RWLock should not be in the Exiv2::Internal namespace 8 years ago
Robin Mills 2ebacb6b0b #1272 Use in-memory temporary files. 8 years ago
Robin Mills 9f06ff2971 #1272 Submitting modified version of Ben's patch. 8 years ago
Robin Mills 5392ada8f4 #1273 Thanks to A Wilcox for reporting this and providing the patch. 9 years ago
Robin Mills 81265684f0 #1108 Fixed bugs in printStructure(kpsRecursive) handling of RATIONAL data. 9 years ago
Robin Mills 0c57b55035 #1230 Fix msvc build breaker when building using configure.bat -W (with WebReady) 9 years ago
Robin Mills 03ca00fc1e #1244. Correction to r4637. Added bigBlock_(NULL) to BasicIo::BasicIo(). 9 years ago
Robin Mills a057af1616 #1244. Removing experimental APIs introduced by r4637. I submitted those APIs just to retain the code somewhere. I have no plan to release such as API. 9 years ago
Robin Mills f5956d5db2 #1230 Fixes to read tiff with web-ready. Includes the BasicIo expiremental API readUnmarked() and markRead() which I will remove later. 9 years ago
Robin Mills 774f96094c #1243 Work-in-progress on iccProfile related code. 9 years ago
Robin Mills 163f3ce7f1 #1243 Work-in-progress on writing ICC profiles. Fixed elusive issue in exiv2 -pS foo.jp2 9 years ago
Robin Mills 05f56e95af #1242 Issue warning when we encounter erroneous Exif\0\0 in the Exif UUID box. 9 years ago
Robin Mills 699e1c744e #1243 Work in progress. Implemented jp2image::printStructure. Still to add iccProfile support to jp2image::writeMetadata() 9 years ago
Robin Mills e922a066be #1230 Fix cygwin buildbreaker. 9 years ago
Robin Mills 5282bc2120 #1230 More changes to pacify MinGW (the nightmare environment). 9 years ago
Robin Mills cf284286d8 #1234 Fix submitted. Passes test suite littleEndian. To be tested on Mac Powerbook PPC bigEndian. 9 years ago
Robin Mills 5f1d52e497 #1230 Added stdin-test and fixing issue identified by the test. 9 years ago
Robin Mills 52f0bd2ea1 #1109 Work in Progress on MinGW/32. Put stdout into binary mode for options -pC -pX, -eABC-, -eABC- 9 years ago
Robin Mills b46cac7790 #1126 Fixes submitted for msvc2003 9 years ago
Robin Mills 5edc759cc9 #1074 For discussion see: http://dev.exiv2.org/issues/1074#note-23 9 years ago
Robin Mills 9ff2224fd7 #1074. Rollback r4479 which has inflicted a lot harm on the test harness. 9 years ago
Robin Mills 3aaebf50f7 #1074 Added ICC support to tiffimage.writeMetadata(). pngimage.readMetadata() is not complete. 9 years ago
Robin Mills f44f706478 MinGW changes following discussion about building with Qt5.6/MinGW 4.9.2 http://dev.exiv2.org/boards/3/topics/2705 9 years ago
Robin Mills 9026954816 #1074 Work in progress for ICC/jpg - changes to readMetadata() and printStructure() 9 years ago
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 9 years ago
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.
9 years ago
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.
9 years ago
draekko c858b7d44e #1199 minor code update, updated comments, added constants for headers, bit definitions, and misc. 9 years ago
Robin Mills 9a061d895e #1199 Fix WebP printStructure(), readMetadata() and doWriteMetadata() to handle payload padding byte. Extended webp-test to cover -iX, -ix and -ie 9 years ago
Robin Mills 043c039d25 #1199 Fixing exiv2 -dC image-path to delete ICC profile. 9 years ago
draekko 6f7b3ba8f7 #1199 removed convenience converstion for iptc to xmp, apps should handle it directly since webp doesnt support iptc. 9 years ago
tbeu 85c736831c Fix encoding 9 years ago
draekko bcaa22ae6f #1199 removed warnings in stringToHex, enabled iptc support for WebPImage. 9 years ago
draekko 85cc2f745d #1199 Fixed crash with iptc by disabling it, updated decodeChunk to do better header checks, added hexdump function. 9 years ago
Robin Mills bcd455be7a #1199 Patch from Ben. http://dev.exiv2.org/issues/1199#note-37 9 years ago
Robin Mills 541dfe8fdf #1199 Thank you to Ben for the patch. This corrects various matters and adds a first stab at WebPImage::printStructure() 9 years ago
Robin Mills b3f107bd8c #1199 WebP Support (work in progress). Thank You to Ben for the patch. Thanks to Gilles for encouragement. 9 years ago
Robin Mills 80e2a47240 Corrections to r4338 9 years ago
Robin Mills fc24b8c541 #1041 Reorganized and simplified config header files. 9 years ago
Robin Mills 2f8e56fd70 Correction to r4327 9 years ago
Robin Mills 1ac5ccc2f9 Fixing warning from contrib/buildserver/test_daily.sh concerning redefinition of EXV_SEPARATOR_STR|CHR when testing msvc builds 9 years ago
Robin Mills c211816b2c #1189 See issue report for discussion. 9 years ago
Robin Mills 5c125a9f19 #1187 and #1041. Fixing CMake/MSVC 2013/15 build breakers 9 years ago
Robin Mills 0afe5a97a1 #1187 and #1041 Fixing CMake/MSVC build breaker 9 years ago
Robin Mills 32577413e5 #1187 Fixing msvc build breaker in r4308 Thank You Taras for the patch. 9 years ago