4494 Commits (f2ec4ce36adb3f233e3b39df1f7a49fad8f1104c)
 

Author SHA1 Message Date
Robin Mills 9a3374dc47 teamdata/contrib/redmine/progress.py - update feature table 9 years ago
Robin Mills 8ad06d6f17 #1199 Fixing build-breaker when -DDEBUG is used. 9 years ago
Robin Mills 4718fbee3f CLion IDE support. Thank You, Ben. This is really useful. See contrib/CLion/ReadMe.txt for explanation. 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 d05634a2e3 Needs to be in the solution. 9 years ago
Robin Mills ae4e63b27a #1214 Patch submitted r4440. Thank You to Ondřej for reporting this and providing the patch. 9 years ago
sridharb 48294e66c0 Summary: Restored jbeu's formatting 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
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.
9 years ago
Robin Mills fe6a016957 #922 Correction to r4434. Fixing another msvc build breaker. 9 years ago
Robin Mills 8377456786 #922 Correction to r4344 to handle msvc build breaker. 9 years ago
Robin Mills 13be017d12 #922 exiv2 -dI deletes all IPTC chunks in a JPEG. 9 years ago
tbeu 8a089d28cc Fix typo 9 years ago
tbeu 9b7ef9d068 Fix typo 9 years ago
tbeu 199771eb9f Fix typos 9 years ago
tbeu 239625e66e Fix typos (comments only) 9 years ago
tbeu 1ba4e46855 Fix some spelling 9 years ago
Robin Mills 705bc14795 #1057 man page update for tgt- (stdin/stdout). 9 years ago
Robin Mills 8b9265b80d #1064 Fix -iX to merge (not replace) metadata from source to destination. 9 years ago
Robin Mills fa24a8a614 #1199 Fixing webp-test.sh. Use -iXX to inject XMP into file without XMP->Exif/IPTC conversion 9 years ago
Robin Mills 4ab9c840e4 #1207 Updating comments in samples/mt-test.cpp to document build restrictions. 9 years ago
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. 9 years ago
Robin Mills ebfd26fb75 #1207 Dynamically new/delete thread array in mt-test.cpp 9 years ago
Robin Mills 3b83918320 #1207 Added samples/mt-test.cpp 9 years ago
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. 9 years ago
draekko ed7b20a20e #1199 fixed typo from cut/paste in previous commit causing exif flag not to be set for VP8X chunk. 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
draekko 600eb0d3dd #1199 Fixed issue with -ix, wasnt padding odd sized chunks for exif/xmp. 9 years ago
Robin Mills d369aa67d5 #1199 Test suite changes and associate fixes to the code. 9 years ago
Robin Mills b3c6de6274 #1210 C++11/regex build-breaker in src/version.cpp. Thank You to Zulan for reporting this and providing a patch. 9 years ago
Robin Mills 79e81f0b68 #1199. Cosmetic corrections to r4413 9 years ago
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. 9 years ago
Robin Mills 591b43e77b #1199 Adding tests for -dC -de -dx 9 years ago
draekko b318674f75 #1199 fixed -de -dc options, add -iC option to insert icc profiles 9 years ago
tbeu d02560da36 Remove trailing blank from translation string 9 years ago
Robin Mills 043c039d25 #1199 Fixing exiv2 -dC image-path to delete ICC profile. 9 years ago
tbeu a1d2a54807 Update some German translation strings 9 years ago
tbeu 918059aa24 Fix initialization of TiffBinaryElement members in ctor
As reported by Cppcheck
9 years ago
tbeu 23259f799b Avoid GCC warning -Wswitch 9 years ago
tbeu b57e62d3cc Update po files 9 years ago
draekko dba4e7fb42 #1199 removed exif header padding on metadata writes. 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
draekko ce14557d07 #1199 updated date in exiv2.1 9 years ago
Robin Mills 30c85bc833 Fixing issues in test suite introduced by Thomas in r4379-r4396 9 years ago
Robin Mills 715e947764 #1199 WebP support. Changes to test suite. See http://dev.exiv2.org/issues/1199#note-79 for discussion. 9 years ago
draekko e034dd249b #1199 update .pot file to add webpimage.cpp 9 years ago
Robin Mills e01c2cad03 #1199. Correction to r4377 (webp tests). Also fixed test output changes introduced by Thomas' changes r4379-r4396 9 years ago
draekko 65f5ec9a70 #1199 Updated exiv2.1 to add WEBP to format list. 9 years ago
tbeu 136d517929 Update Canon FileInfo RawJpgSize to match ExifTool 9 years ago