140 Commits (7933ff401ddb9768502c36b1febea06b854e176a)

Author SHA1 Message Date
clanmills 2828b11cf7 Build changes to support EXV_HAVE_REGEX and EXV_HAVE_REGEX_H 8 years ago
Robin Mills aefa3e3d34 MacOSX --with-adobe link issue. Work in progress. Code and documentation update. 8 years ago
clanmills 935421c855 Refactoring autotools to support ADOBE_XMPSDK (Work in Progress) 8 years ago
clanmills 2e816165ea Changes to autotools to support C++11 (work in progress) 8 years ago
Luis Diaz Mas 22efdffd1d Use #ifdef instead of #if for EXV_HAVE_REGEX 8 years ago
Luis Diaz Mas 5c78c82f20 Handle ENABLE_WEBREADY variable in the new cmake file 8 years ago
Luis Diaz Mas 93835cd680 Handle correctly ENABLE_VIDEO the config.h.cmake file 8 years ago
Luis Diaz Mas bba3cbb7fd Remove unused definition EXV_HAVE_DECL_STRERROR_R 8 years ago
clanmills a9c9e8ff8e Remove svn_version.h 8 years ago
Robin Mills 559ace375b #1291 Reverting change in r4763 relating to windows.h as they break the Cygwin build. Retain changes in exiv2/exiv2.hpp and exv_msvc.h 8 years ago
Robin Mills f36cccefa2 #1291 include header simplification 8 years ago
Robin Mills 6d5c2c3256 Getting ready to release v0.26 8 years ago
Robin Mills 0abf56f71b #1236 CMake build on MinGW. 9 years ago
Robin Mills 3c675f8e53 Build trigger. 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 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
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 a04abc98c2 Build Trigger 9 years ago
Robin Mills b8de981617 Build Trigger 9 years ago
Robin Mills dbed6f857c #1034 Added exiv2 config file support for lens recognition. 9 years ago
Robin Mills 4a8e34bc44 Revert build trigger 9 years ago
Robin Mills 27fa76b269 Build Trigger 9 years ago
Robin Mills 2261c18724 Revert build trigger. 9 years ago
Robin Mills d37f692374 Build Trigger 9 years ago
Robin Mills b7607c34db #1047 Rollback r4163 and try again. r4163 broke MSVC build. 10 years ago
Robin Mills d3ff1388c1 #1147 Fixed travis build-breaker. 10 years ago
Robin Mills 1a6419881b #1147. Fixed a typo. 10 years ago
Robin Mills a008623362 #1147. Correction for Cygwin/MinGW build-breaker in r4159. Don't compile the uid/euid/gid code on any windows build. 10 years ago
Robin Mills b1b42d8e15 #1147. Correction to r4159 for linux build breaker (linux doesn't have include uuid/uuid.h) 10 years ago
Robin Mills 87129d61f6 #1147 Report uid, euid and gid in exiv2 --verbose --version 10 years ago
Robin Mills ab9ee2c6df #1024. Support for C++11 #include <regex>. --grep keys may have an optional trailer /i to indicate to ignore case. 10 years ago
Robin Mills cf927ed2c8 #1121 (msvc support for v0.26). exiv2 -vVg ^version reports version=8.00 (2005/x64) or version=8.00 (2005/x86) instead of version=8.00 (2005) 10 years ago
Robin Mills db4be31b6f #1130. Thank You Jakub for reporting this. 10 years ago
Robin Mills 4cca5dea0b #1127 exiv2 --verbose --version --grep libz incorrectly reports have_libz=0 10 years ago
Robin Mills bf0604b834 Minor clean up in version.cpp. Removed 'using namespace std', replaced vector_t typedef with identical twin Exiv2::StringVector. 10 years ago
Robin Mills 416221118a Fix Visual Studio 2015 build. 10 years ago
Robin Mills edb5c16a7f #1109 Support for Visual Studio 2003/5/8/10/12/13/15 10 years ago
Robin Mills ed2751612d #640 Public API to reveal all namespaces known to Exiv2 and XMPsdk is XmpProperties::registeredNamespaces(Exiv2::Dictionary&) 10 years ago
Robin Mills c396a92e01 #960 added API: static void Exiv2::XMPParser::getRegisteredNamespaces(std::map<std::string,std::string>&); 10 years ago
Robin Mills 15cbe35383 Correction to r3892 to fix build breaker on Cygwin. 10 years ago
Robin Mills fdb33b467b Modification to r3891 to respect -g option on exiv2 command-line. 10 years ago
Robin Mills e628f8e057 Correction to r3981. Only build this functionality when EXV_HAVE_XMP_TOOLKIT is enabled. 10 years ago
Robin Mills f87a83978d exiv2 -vV lists registered Namespaces. #640 and topic 2169 http://dev.exiv2.org/boards/3/topics/2169 10 years ago
Robin Mills 871502f051 src/version.cpp: fixing an output formatting issue impacting exiv2 -vVg curl 10 years ago
Andreas Huggel fd80993ab0 Updated copyright notice. 10 years ago
Robin Mills 0cf64e2542 #922. Better platform and endian detection. 10 years ago
Robin Mills 5aec2c4957 #1069. Make video a build option (msvc/autotools/cmake). Default is not to build video or webready. 10 years ago
Robin Mills 60f4c18da7 Move dumpLibraryInfo() to Exiv2 namespace. 10 years ago
Robin Mills 8424bdaa71 Replace REG_BASIC with 0. Some platforms don't define REG_BASIC. 10 years ago
Robin Mills 4c886bab24 #1024 and #1053. Changed option REG_EXTENDED and REG_BASIC to support ^ as a begin marker. 10 years ago
Robin Mills 0e1b77c8b4 #1028 and #1053. Change options to regex to respect ^ and $ in option -g 10 years ago
Robin Mills 3c42a1e47f #1053. Added new option -K key for exact Key match (not grep as -g).
Added long versions of all options (eg --key = -K)
Added Command Summary to exiv2.1
Work in progress: exiv2.1 documents features which are not yet implemented:
- modifier - (stdin/stdout) to insert/extract
- modifier R (roundtrip) to insert
10 years ago
Robin Mills 6e4f04ff23 #1046. Adding support to exiv2 --verbose --version to report have_unicode_path 10 years ago
Robin Mills 33bec3b2cc #1024. Add CMake support for regex. Fixed unused variables in version.cpp 11 years ago
Robin Mills faf51171d0 #1024. Thank you, Thomas for this very useful contribution. 11 years ago
Robin Mills d393b0fa7e trunk: exiv2 v0.25 11 years ago
Robin Mills 078f1f7f58 #1007. Thank You, Nicolas for reporting this and identifying the fix. 11 years ago
Robin Mills f71d15442a Better platform detection in version.cpp for MinGW 11 years ago
Robin Mills 7a530fc49a Fixed MinGW compilation error in jp2image.cpp u_int32_t not defined (in stdint.h/Linux, types.h/Mac)
This is an unexpected new defect as MinGW has previously build OK.
11 years ago
Robin Mills f9d2c349a7 CID:982000 Resource Leak. 11 years ago
Robin Mills b6db775109 add svn=nnnn to exiv2 -v -V 11 years ago
Robin Mills a320ee6d62 Change to r3221 for clang 12 years ago
Robin Mills 8c7ffc80b7 version.cpp: fixed how compiler detect for shared/static linking 12 years ago
Andreas Huggel f09fceda6b Updated copyright year in a few files, version in runner.txt. 12 years ago
Robin Mills a297d2b69e Rollback 3089 - somehow it's broken the build! 12 years ago
Robin Mills da1ed8c536 Bumping the copyright notice in src &samples from 2012 to 2013 12 years ago
Robin Mills 64996a0a05 Forum: #1177. Only compile EXIV2_RCSID for Complers: GCC/G++/MSC to silence warnings. All others (clang,Oracle) ignore. Added Oracle compiler detection to version.cpp 12 years ago
Robin Mills cd8882ba84 BuildEnvironment: MinGW support (in response to http://dev.exiv2.org/boards/3/topics/1477) 12 years ago
Robin Mills 7057128943 MSVC64: Fixes to c-runtime support linkage. 13 years ago
Robin Mills ca8f413673 Windows fixes for exiv2 -v -V output 13 years ago
Robin Mills 712c98301f Test: initial version build-test.py to analyse output from exiv2 -v -V 13 years ago
Robin Mills d880881bad Linux fixes for exiv2 -v -V (in src/version.cpp) 13 years ago
Robin Mills eceb7a55b5 Windows fixes for exiv2 -v -V (in src/version.cpp) 13 years ago
Robin Mills 6119b4432b Updated src/exiv2.1 to cover -g option. Simplified exiv2 -v -V support code. 13 years ago
Robin Mills 66dc59231c Better compiler detection code for exiv2 -v -V 13 years ago
Robin Mills 7de8044ebf Added cygwin support for exiv2 -v -V (verbose Version) listing of libraries loaded at run-time. 13 years ago
vog a394a96138 #835: Fix compile error under Linux 13 years ago
Robin Mills 6788fe8ff6 ./configure --disable-visiblity is default on cygwin. 13 years ago
Robin Mills 4374104ca4 fixed version.cpp to compile on cygwin 13 years ago
Robin Mills 2277b076a7 fix version.cpp to compile, link and run on linux 13 years ago
Robin Mills d9bcc04633 Added version.{c}h}pp/dumpLibraryInfo() and call from exiv2 -v -V to inspect libraries at run-time on W/L/M platforms. 13 years ago
Andreas Huggel 0d397b95c7 Updated copyright message for 2012. 13 years ago
vog dd3c11274f Added new function Exiv2::versionNumberHexString() 14 years ago
Andreas Huggel 7770151915 Updated Copyright message for 2011. 15 years ago
Andreas Huggel 06ce0d18b6 - Introduced exiv2.hpp as a wrapper to include all Exiv2 objects. (Renamed existing exiv2.hpp to exiv2app.hpp)
- Changed Sony/Minolta pretty-print function to print EV value
- Renamed rcsid.hpp to rcsid_int.hpp, do not publish it anymore
15 years ago
Andreas Huggel 6d496a4888 Updated Copyright notice for 2010. 15 years ago
Andreas Huggel 8a6d9dbc42 Updated Copyright notice for 2009. 17 years ago
Andreas Huggel 3ac665a305 Added 2008 to Copyright notice. 18 years ago
Andreas Huggel 7815321064 Added new function testVersion() and macro EXIV2_TEST_VERSION. Fixes #509. 18 years ago
Andreas Huggel 1c2d21f609 Renamed exiv2_version.* files to version.* 19 years ago