526 Commits (aefd901befd375da7fdedfe031e818fcbc63dd67)

Author SHA1 Message Date
Peter Kovář 92469f4c27 [WIP] Add ISO/IEC Base Media File Format 4 years ago
Miloš Komarčević 98f4effeea Add DateTimeOriginal to easyaccess 5 years ago
Miloš Komarčević 189e0c9338 Add more easy accessors for Exif & TIFF/EP overlap 5 years ago
Luis Díaz Más b304244766 Move winsock2 inclusion to http.cpp 5 years ago
Robin Mills 604a268059 Second effort to unexpose winsock2.h from include <exiv2/exiv2.hpp> using EXIV2_BUILDING_EXIV2 mechanism. 5 years ago
clanmills 7ff0e0613a fix_1335_winsock2_0.27 5 years ago
clanmills 96ddbc3738 Remove bigtiffimage.hpp from include/exiv2/CMakeLists.txt 5 years ago
clanmills 48afa7548d fix_1329_remove_bigtiff_0.27 5 years ago
Luis Díaz Más f39b23806b Assume existence of stdint.h 5 years ago
Robin Mills 7bf40a2408 fix_1211_c++11_0.27. I'll explain this in the PR. 5 years ago
clanmills 529ffdc418 Use using auto_ptr = std::unique_ptr<T>; on all C++11 (and greater) platforms. Don't include unistd.h on MSVC. 5 years ago
Robin Mills cd5512e761 WIP. C++11 support 5 years ago
clanmills f1182b8d73 Only #include<memory> when C++ >= C++11 5 years ago
clanmills c423b91b92 Change config.h to compile isatty() and getpid() on macOS when -DCMAKE_CXX_STANDARD=98 5 years ago
clanmills e0f65f7e75 Always include <memory.h> before discussing auto_ptr 5 years ago
clanmills 63a13e8620 Adding option -DEXIV2_BUILD_USE_C++11 5 years ago
Robin Mills 76d2798172 Pushing very helpful suggestion by @lantw44 6 years ago
clanmills 94a777609e fix947_FreeBSD_BasicError_typeinfo 6 years ago
Kevin Backhouse 86816c0280 Fix signed/unsigned mismatch. 6 years ago
Kevin Backhouse caa4e6745a Avoid negative integer overflow when `filesize < io_->tell()`.
This fixes #791.
6 years ago
Michał Walenciak a7340a3801 removinf usage of EXIV2_DEPRECATED macro
It can expand to [[deprecated]] which cannot be combined
with result of EXIV2API macro expansion: __attribute__(...)
6 years ago
Luis Díaz Más 704fc56d52 Keep the profileName from readMetadata and use it in writeMetadata 6 years ago
Luis Diaz Mas 42d79e87aa Deprecate SshIo, Video, EPS and SSH classes 7 years ago
Luis Díaz Más 04c9b181cc Fix #644. Export specializations of BasicError
- Only export BasicError::setMsg which is the only implementation present in the .cpp
- Only export BasicError specialization on __APPLE__

It seems that gcc automatically adds the attribute when the visibility
settings are set to hidden. See this link for more information:
https://reviews.llvm.org/D35388
7 years ago
Luis Diaz Mas 6f8d8e3da6 cleanup header inclusions in API 7 years ago
Luis Diaz Mas 4bd7e9ef1f Include exiv2lib_export.h in all public headers 7 years ago
Andreas Schneider ed3a0f1341 cmake: Install header files without globbing
Fixes #627

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 0b34ccb9a3b26cd1c5267c6a5c15e9fa1a665adb)
7 years ago
Robin Mills 54d4507a4d Fix: https://github.com/Exiv2/exiv2/issues/584 7 years ago
Robin Mills 6f3e10779e Fix: https://github.com/Exiv2/exiv2/issues/576 7 years ago
clanmills c22a38cfb4 Fix for https://github.com/Exiv2/exiv2/issues/560 (eraseFamily() crashes in MSVC/Debug). 7 years ago
Robin Mills 1b136f0657 Revision to PR#557. Restored XmpData::erase() and added XmpData::eraseFamily(). Restored and augumented conversions.sh 7 years ago
Robin Mills ccd708df24 Fix: https://github.com/Exiv2/exiv2/issues/521
conversions.sh reveals a (harmless) order change runTest exiv2 -M'set Xmp.xmp.ModifyDate 2015-04-17T18:10:22Z' v.xmp
7 years ago
Robin Mills 89375979d8 https://github.com/Exiv2/exiv2/issues/555
I have restored the Macro EXIV2_TEST_VERSION in include/exiv2/version.hpp
I have added an option --version-test to exifprint.cpp to test/validate EXIV2_TEST_VERSION works as documented.
Version strings in Exiv2 v0.27 and later have a fourth digit to indicate the pre-release number of the build.
Pre-release builds should never be used for production purposes.
7 years ago
Luis Díaz Más b208bcef7d CMake: CURL does not need to be propagated 7 years ago
Luis Díaz Más 44a01863be Include unistd.h only where it is needed 7 years ago
Luis Díaz Más 38ed6de05d MSVC: Move compile definitions from config.h to CMake.
+ Also remove inclusion of <Windows.h> from config.h
7 years ago
Luis Díaz Más 8bf9ca8e6d MSVC: Delete deprecated stuff related to MSVC < 2008 7 years ago
Luis Díaz Más 7485bb54d7 Create function getProcessPath and add unit test for it
Debugging: Relative and Absolute path alternatives
7 years ago
Luis Díaz Más e20329b8e0 Remove EXV_HAVE_DLL and disable C4251 always on msvc. 7 years ago
Luis Díaz Más 417ad89e4b Pass argument by const reference 7 years ago
Luis Díaz Más 59ba209fe8 Move BlockMap to .cpp file (Remove it from API)
- Also make some BlockMap methods const
7 years ago
Luis Díaz Más cd09cda6ff Clarify calculation precedence for >> and ? 7 years ago
Luis Díaz Más dc7eb5008b Add explicit to constructors with 1 argument 7 years ago
Robin Mills 12d44f8f17 Fix https://github.com/Exiv2/exiv2/issues/468 7 years ago
Dan Čermák 962962a8e9 Port Iptc::printStructure & getUshort to slices API
This fixes #211, #210, #209
7 years ago
Dan Čermák 98bca06592 Add Slices: views of STL containers & C-arrays and add unit tests
This commit adds a very simple implementation of std::span but with
mandatory range checks and only the most essential functionality.
7 years ago
Luis Díaz Más 19e740b447 Restore API functions remove in #450 7 years ago
Luis Díaz Más 18690f4c54 Provide default and copy constructor for AnyError 7 years ago
Luis Díaz Más 6e4404da81 Move implementation details from tags.cpp to tags_int.cpp 7 years ago
Luis Díaz Más b9f913d5af Move implementation to .cpp files. Fix more issues related to visibility settings 7 years ago
Luis Díaz Más 4574a659cc Do not use EXIV2API where it is not needed 7 years ago
Luis Díaz Más 6ba4081f95 Use CMake-GenerateExportHeader to generate a macro to export symbols
- Delete the hardcoded macros in config.h taking care of that.
7 years ago
Luis Díaz Más a0e7b7490f Add MSVC definitions back that are still needed 7 years ago
Luis Díaz Más 78c0efeaef Remove unused c++11 stuff from config.h 7 years ago
Luis Díaz Más 5c0a3b9786 Remove unused definitions from config.h 7 years ago
Luis Díaz Más 0da42d0399 Remove useless header inclusions from config.h 7 years ago
Luis Díaz Más a6aeadc26b Remove unused definitions for MSVC 7 years ago
Luis Díaz Más ab6aac054a Remove deprecated code from version source files 7 years ago
Luis Díaz Más 1871ce5acd Remove 'version.hpp' inclusion from places where it is not needed
By removing the inclusion from types.hpp we avoid lots of recompilation
of source files.
7 years ago
Luis Díaz Más 808de65c37 Use CMake PROJECT_VERSION components in version files 7 years ago
Luis Díaz Más 2b74ad4feb Default initialyze DataBuf::pData_ so that valgrind does not complain 7 years ago
Luis Díaz Más 603692a1d8 Copyright to Exiv2 authors 7 years ago
Luis Díaz Más 19d9ae844b Remove hardcoded CURL_STATICLIB definition in config.h 7 years ago
Luis Díaz Más 4161099b91 Fix warnings reported by MSVC 7 years ago
clanmills 3c42fdddeb Fix include <exiv2/exiv2.hpp> to include exiv2/config.h (and consequential changes)
Fix cltest.cpp and version.cpp to report MSVC 2017 in which _MSC_VER == 1910
7 years ago
Dan Čermák 9f1a5a1ebb [futils] Change signature of getEnv to take an int
While taking an EnVar as the parameter is more clear it has the
disadvantage, that passing anything outside of the range of the
enumeration is undefined behavior. The compiler could then optimize
the range check in getEnv away (perfectly legal due to UB), leading
to buffer overreads.
7 years ago
Dan Čermák 11df43be78 [types] Apply Safe::abs() in floatToRationalCast & gcd
Also check for infinity in floatToRationalCast as depending on the
compiler special values of floats are converted to either
LONGMAX/LONGMIN or +/-inf
7 years ago
Luis Diaz Mas eb306fdbae Substitute malloc/free with new/delete 7 years ago
Luis Diaz Mas 08cbb0c206 Use header guards instead of pragma once 7 years ago
Luis Diaz Mas 5d76036af5 Add more tests for decoding and encoding URL functions 7 years ago
Luis Diaz Mas eefee8125b to_hex and from_hex removed from API 7 years ago
Luis Diaz Mas 22d9ab82a7 Format futils.h for better readability (also pass clang-format to it) 7 years ago
Luis Diaz Mas c82d875707 Use pragma once instead of guards 7 years ago
Luis Diaz Mas a3c200a23e Remove useless header inclusions 7 years ago
Dan Čermák b12a868454 Add EXV_WARN_UNUSED_RESULT macro & add it to DataBuf::release()
EXV_WARN_UNUSED_RESULT is a conditional macro that expands to either
__attribute__((warn_unused_result)) on gcc & clang or to _Check_return
for MSVC
=> Compiler warns if the return value is ignored
7 years ago
Dan Čermák 1b74db8f51 [types] Add DataBuf::free()
DataBuf::release() easily cause memory leaks, when the return value is
ignored. free() provides the desired behavior, when the internal data should
just be deleted and not used further.
7 years ago
Luis Diaz Mas 69ee165291 msvc: Remove manually generated configuration files for MSVC builds 7 years ago
tbeu 9c507b9d20 Fix function declaration
V762 It is possible a virtual function was overridden incorrectly. See third argument of function 'printStructure' in derived class 'TiffImage' and base class 'Image'. tiffimage.hpp 93
7 years ago
Luis Díaz Más e32323d7c7 Simplify usage of strerror_r.
- Define STRERROR_R_CHAR_P properly on CMake and use it on futils.cpp
- We use now _GNU_SOURCE to determine which version of strerror_r to use
- strError only throws if ret==ERANGE
- Remove STRERROR_R_CHAR_P. It has been never used
- sort defines in config.h.cmake
- Remove EXV_HAVE_DECL_STRERROR_R that is not used anymore
- Remove EXV_HAVE_STRERROR. C++98 always will have it
7 years ago
Luis Díaz Más f86542e5f6 Remove EXV_HAVE_STRTOL 7 years ago
Luis Díaz Más d55b2b1b65 Remove HAVE_STDLIB_H check and replace stdlib.h by cstdlib 7 years ago
Luis Díaz Más aded1965c5 Remove EXV_HAVE_MEMSET 7 years ago
Luis Díaz Más abd28a6a9e Remove EXV_HAVE_STRCHR 7 years ago
Dan Čermák b1a31352b6 Add default constructor for XmpData 7 years ago
Dan Čermák 2bf89f4854 Store pointers to Impl classes in auto_ptr
Pimpl class Impl is stored in raw pointers which are allocated on the heap in
the constructor. However, the constructor can throw an exception resulting in a
memory leak as the destructor is **not** invoked.
=> A smart pointer is however properly deallocated.
7 years ago
Luis Díaz Más bf7047a71b clang-format XmpKey code 7 years ago
Luis Díaz Más 336b759cc0 Remove 'using namespace' from public header 7 years ago
Dan Čermák 22a7a8c2ed Fix outdated documentation of PngImage::doWriteMetadata()
The function does not return anything, it only throws exceptions.
7 years ago
Dan Čermák efe2ccdcb6 Replaced all hardcoded error codes with ker... constants 7 years ago
Dan Čermák d897997b29 Force error code usage to construct a Exiv2::BasicError
changed parameter code_'s type from int to ErrorCode => requires the
usage of the enum constants
7 years ago
Dan Čermák b80fa1b4ed Added error codes from src/error.cpp into an enumeration 7 years ago
Luis Díaz Más f36bea3801 exiv2::getEnv throws std::out_of_range on unexpected EnVar
This change define explicitly the behavior that exiv2::getEnv should have
on response to unexpected inputs.

There are some other minor changes:

- Use _putenv_s for the unit tests on Windows
- Add todo comment
- Remove deprecated note about freeing memory
8 years ago
Luis Díaz Más 8dc3c1f0a0 Replace malloc/free by new/delete. Use const char* for input arg 8 years ago
Luis Díaz Más 8b049922d7 Change exiv2::urlencode signature to return std::string
The goal of this change is to remove the responsibility from the client code to
free the memory of the returned string.
8 years ago
tbeu 5df8b01b77 Remove obsolete svn revision 8 years ago
Luis Díaz Más 4beb08e219 Merge pull request #105 from Kicer86/bigtiff
Work in progress - improvements for bigtiff
8 years ago
Michał Walenciak 2e535d8a27 trying to fix windows build 8 years ago
Luis Díaz Más 5b8894908b Remove all references to EXV_HAVE_REGEX and related code 8 years ago
Luis Díaz Más 8ad49f6d73 Robin changes in sync with master changes 8 years ago
clanmills 6e3855aed7 Fix https://github.com/Exiv2/exiv2/issues/55 8 years ago
clanmills e3298ab5e1 Integrating #55 and #78 8 years ago
Dan Čermák d4e7510f7c Added missing include for INT_MIN & INT_MAX constants 8 years ago
clanmills 8a8f60a4e7 Fix https://github.com/Exiv2/exiv2/issues/55 Thank You, Raphaël Hertzog. 8 years ago
Michał Walenciak b6e79357de Adding 8-byte swap functions + consts 8 years ago
Michał Walenciak c008ad2403 making tag related functions private 8 years ago
Michał Walenciak ca1929d88a adding 64bit types 8 years ago
Michał Walenciak ab27bfab3c introducing getULongLong() 8 years ago
Michał Walenciak bc6eed0b03 registering new file type 8 years ago
clanmills d366943297 Refactoring EXV_USE_CURL and EXV_USE_SSH 8 years ago
Robin Mills d356aaae95 cmakeBuild.cmd --webready working with VS 2005 8 years ago
clanmills 2828b11cf7 Build changes to support EXV_HAVE_REGEX and EXV_HAVE_REGEX_H 8 years ago
Robin Mills 31fc5d2e30 Merge pull request #62 from Kicer86/crash_fix
Fix for crash in multithread environment
8 years ago
Michał Walenciak 20582a93c6 Marking members in a proper way. 8 years ago
Michał Walenciak 4e25435afb Changing return type of Image::tagName to std::string 8 years ago
Michał Walenciak 0d9552aede adding comment 8 years ago
Michał Walenciak ddb87fe0cf Moving static tagName() into Image class to prevent multithread crashes.
static variables inside of tagName() were not protected against multithread access.
It could cause a crash in case of simultaneous initialization of map of tags.
8 years ago
Robin Mills aac74efb8e http://dev.exiv2.org/boards/3/topics/2872 I've removed the troublesome Visual Studio SRWLock code and use CRITICAL_SECTION for all msvc builds. 8 years ago
Robin Mills afba52e042 Remove include tags_int.hpp from include/exiv2/*video.hpp files 8 years ago
Luis Diaz Mas 6be5278dd2 Fix inclusion of file 8 years ago
Luis Díaz Más 1c03767391 Move inclusion of private header from .hpp to .cpp (not needed in the .hpp) 8 years ago
clanmills 935421c855 Refactoring autotools to support ADOBE_XMPSDK (Work in Progress) 8 years ago
clanmills 62d24d3c77 Correction to previous commit. 8 years ago
clanmills 2e816165ea Changes to autotools to support C++11 (work in progress) 8 years ago
clanmills df53123cfb Restoring exv_msvc.h for use by msvc/exiv2/libexiv2.vcproj 8 years ago
Luis Díaz Más ea0c4899ff Remove exv_msvc.h. It has the same content than exv_conf.h and we were getting lot of warnings when compiling with MSVC 8 years ago
Luis Diaz Mas 22efdffd1d Use #ifdef instead of #if for EXV_HAVE_REGEX 8 years ago
Luis Diaz Mas 8c323cad04 Remove EXV_HAVE_STDINT_H definition that was causing warnings 8 years ago
Luis Diaz Mas db5ce5ed82 Remove few unused variables declared in CMakeChecks.txt 8 years ago
Luis Diaz Mas 367d3b8a1e Remove unused HAVE_WCHAR_H variable 8 years ago
Luis Diaz Mas 2887a0dbad Remove unused HAVE_VPRINTF variable 8 years ago
Luis Diaz Mas d85a7c6751 Remove unused HAVE_SYS_TIME_H and TM_IN_SYS_TIME variables 8 years ago
Luis Diaz Mas 1a34a55383 Handle HAVE_STRINGS_H variable in the new cmake file 8 years ago
Luis Diaz Mas bfb849859a Remove unused variable HAVE__BOOL 8 years ago
Luis Diaz Mas 72e12cdbf2 Remove unused variable HAVE_REALLOC 8 years ago
Luis Diaz Mas d8ada323e3 Remove unused MALLOC variables 8 years ago
Luis Diaz Mas 09fc98eebf Handle all the PACKAGE_XXX variables in the new cmake file 8 years ago
Luis Diaz Mas 485891b991 Remove unused definition HAVE_ALARM 8 years ago
clanmills a9c9e8ff8e Remove svn_version.h 8 years ago
Robin Mills bf473ae718 #1292 Dimitri: Thank You for reporting this and providing the patch. 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 fb24a572c6 #1291 Thank you to T Modes for reporting this and providing this patch. 8 years ago
Robin Mills 73572aa54d #1291 Fix submitted. Thank You to T Modes for reporting this issue. 8 years ago
Robin Mills 67859f4f4e #1175 I'm going to accept the recommendation to change BasicIo::size() to return size_t. This passes the test suite. The only "ripple" outside of basicio is to iotest.cpp. This change enables several casts to be removed. 8 years ago
Robin Mills 73047ce568 #1279 Correction to r4748 which broke the CMake build. 8 years ago
Robin Mills 54408bac2f #1279 Move src/ini_int.hpp to include/exiv2/ini.hpp to reveal class Exiv2:INIReader in API 8 years ago
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
Robin Mills b15a401569 #1187 Thank You to Taras for the patch. 9 years ago
Robin Mills 664af57e10 #1034 Added samples/toexv This is a first step to write exif metadata to memory to send to a web service. 9 years ago
Robin Mills f02b94a6b4 #1169. Code simplication/clarification. 9 years ago
Robin Mills f88138bc59 #1169. Correction to r4282. I should not have submitted the change to exv_msvc.h 9 years ago
Robin Mills 30f279787f #1169 Fix submitted. 9 years ago
Robin Mills 00984afaa2 #1178 Thanks to Terence for reporting this an providing confidential test data 9 years ago
Robin Mills 62e2fc086b #1034 Added msvc2005/ini-test 9 years ago
Robin Mills 06eabfdd88 #1074. jpgimage.cpp ICC support (Work in Progress) 9 years ago
Robin Mills aa7e277dbc #1169. Fixing issues concerning msvc2005/EXV_UNICODE_PATH 9 years ago
Robin Mills 09c734fbcd #1108. Refactored the IPTC printStructure code from png/jpeg/tiff into iptc.cpp 9 years ago
Robin Mills 8e7eaa65a7 #1057, #1064, #922, #1148. Work in progress. This is a composite patch of several matters in development. None are totally complete at this time. 9 years ago
Robin Mills 5e968dc6f7 #1081 Added Cr2Image::printStructure() 10 years ago
Robin Mills 04f871cc4c #1152 Fix submitted. Also added new static function FileIo::temporaryPath() which I require for tgt - code and fixed typo in tiffvisitor.cpp 10 years ago
Robin Mills f49dd0b95f #1108 and #1074 Correction to r4165 to fix MSVC build breaker and to document: exiv2 -eC (extract ICC profile). 10 years ago
Robin Mills fd5e983746 r1108 Recursively dump an image (exiv2 -pR file...) 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 d6dd463c57 #1041. Finally fixed stdint.h on all platforms. CMake builds exiv2 with VS 2005, 2008, 2010, 2012, 2013 and 2013 on both laptop and buildserver. 10 years ago
Robin Mills c5136b444b Added cmakeBuild --static option. Fixed issues with include <stdint.h> in include/exiv2/types.hpp Documentation update. 10 years ago
Robin Mills 6895e9ca5b #1041. More polishing to get every version of VS to build using CMake. 10 years ago
Robin Mills e75bcbe385 #1041. Fixed issues with VS2008 incorrectly setting EXV_HAVE_STDINT_H 10 years ago
danielkaneider 5c7ecc6514 [cmake] add webready support and better cmake for windows 10 years ago
danielkaneider 577469b949 [cmake-webready] align VS header files 10 years ago
Robin Mills abd5ecedd4 #1129. Fix submitted. 10 years ago
Andreas Huggel 910f389e50 #1116: Reverted changes to BasicIo::BasicIo() introduced in r3933 10 years ago
Robin Mills 63c7eff4f6 #1128 Fix HAVE_LIBZ on Visual Studio 10 years ago
Robin Mills 4795a1309a Correction to r3960 for Visual Studio 10 years ago
Robin Mills 8ff86b6875 #1110. Xcode project moved to contrib/xcode. Interesting errors in samples/Makefile. Replaced gsoc13 Exiv2::dict_t with (identical twin) Exiv2::Dictionary 10 years ago
Andreas Huggel 648b71cac8 #1111: Doc tweaks for new bootstrapped API documentation. 10 years ago
Robin Mills 6767878fb8 #1116. Fix submitted. 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 3f1380e91a #640 Modified XmpParser::getRegisteredNamespaces to use Exiv2::Dictionary. 10 years ago
Robin Mills 9501be5c7d #1112. Fix submitted. Also added typedefs to datasets.hpp for Exiv2::Dictionary, Exiv2::StringSet, Exiv2::StringVector 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 6808b073f3 #1074. Implemented exiv2 options -eC and -pC for JPEG. 10 years ago
Andreas Huggel b030a4de7c #1077: Removed msync() calls from MemIo. 10 years ago
Robin Mills 05594e35ac Fix #1103. 10 years ago
Andreas Huggel 533668808d Fixed cross-compiler warnings. 10 years ago
Andreas Huggel ade51daf7f Only compile ssh module if using SSH and another hack to prevent a compiler warning about undefined EXV_USE_SSH. 10 years ago
Andreas Huggel 4e96e2742a Hack to prevent compiler warning about undefined EXV_USE_CURL. 10 years ago
Andreas Huggel 4974ff976f Bumped version to 0.25. 10 years ago
Andreas Huggel 108310bfb4 Prefix published precompiler define as usual. 10 years ago
Andreas Huggel a57317f685 Some API policing 10 years ago
Andreas Huggel 006625e116 Removed helper functions binaryToString() and stringFormat() from the API and from class Image and made them internal helpers. Renamed type printStructureOption_e to PrintStructureOption to conform with the common naming convention. 10 years ago
Andreas Huggel bfddfcbc17 Moved internal headers into the src/ directory. Only published headers remain in include/exiv2/. 10 years ago
Robin Mills f52eacf921 #1071 Remove Jzon from libexiv2
1) Move src/Jzon.cpp and include/exiv2/Jzon.hpp to samples/Jzon.{cpp|hpp}
2) Update build environment appropriately.
10 years ago
Robin Mills c1933e6882 msvc2005/configure.py fixes discovered by testing configure -vat and configure -Vat (with/without video). 10 years ago
Robin Mills f62db9b037 msvc2005/configure.py Ready to test 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 84bf485ebe #922. Fixing -pS and -pX on MSVC. 10 years ago
Robin Mills a69026c911 CID 1296109 10 years ago
Robin Mills 60f4c18da7 Move dumpLibraryInfo() to Exiv2 namespace. 10 years ago
Robin Mills 40ffba6033 #922 -pS and -pX support for TIFF. Added formatters to Image class and use them from {jpg/png/tiff}image.cpp 10 years ago
Robin Mills e90dcdc219 #922. Documentation update. Exiv2::Image::printStructure() is not thread safe. No reason to use this in a multi-threaded application. 10 years ago
Robin Mills 0f36e0492c #1065. Fixing thread safety in fileProtocol. Thank You, Max for reporting this. 10 years ago
Robin Mills 3926d3cb93 #922. Work In Progress. Adding support for -pX and -pS for tiff files. 10 years ago
Robin Mills c49b024810 #1056. Changed LangAltValueComparator to return bool str1 < str2 ? true : false. Test reference files updated to reflect alphabetic lang output. 10 years ago
Robin Mills 0404bc75e9 #1058. Change comparator to return -1 : 0 : 1 10 years ago
Robin Mills 32f7d1de65 #1058. XMP spec chapter B.4 (page 42) the xml:lang qualifier is to be compared case insensitive.
https://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart1.pdf
10 years ago
tbeu 8f5e5a8c4a refs #922:
* Fix MSVC warning introduced by r3650
 * Change first argument of BasicIo::seek to signed integer type
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 6c113871ef #922. Added options -pS and -pX to exiv2(.exe). Still to deal with -dI 10 years ago
Robin Mills e51425046e #1043 #1042 #812. Thank You to Thomas for this "polishing" patch. Thank you to everybody who has worked on this issue. Adding all the comments on the three issues together comes to about 60 items by at least 6 contributors. And it involves platform issues, networking, Linux and Windows APIs. One of the most complex issues to arise in Exiv2. Well done everybody. And we've dealt with this quickly. Only 9 days since Calvin first reported #1042.
I use the term "complex" to mean many threads of technology.  "complex" != "complicated".  "complicated" = "difficult to understand".  We try to avoid "complicated".
10 years ago
Robin Mills 6b20a636b7 #1043 and #1042. Thanks to Thomas for showing that r3627 reintroduced #812. Thanks to Thoralf for suggesting msync MemIo fix. 10 years ago
Robin Mills 6b89dc9452 #1038. Initialize timeScale_ in ctor because MSVC (correctly) refused header member variable initialization. 10 years ago
Robin Mills 41243f8653 #1038. Thank You to Vitaliy for reporting this and providing the patch. 10 years ago
Robin Mills 856ddd323c #1029 Spell separator correctly everywhere (not seperator). 10 years ago
Robin Mills 405231439c #1029. Added missing change required in include/exiv2/exv_msvc.h (discovered thank to Jenkins). 10 years ago
Robin Mills 0df8356a56 #1029. Thank You, Thomas for reporting this and providing the patch. 11 years ago
nkbj f2071ead33 Remove empty line at EOF. 11 years ago
Robin Mills ba6fc80213 fixed typo in include/exiv2/exv_msvc-webready.h. Documentation update. Removed organize.sln from msvc2003. 11 years ago
Robin Mills d0ef5b2e47 #1024. Adding file missing from r3562. 11 years ago
Robin Mills faf51171d0 #1024. Thank you, Thomas for this very useful contribution. 11 years ago
Robin Mills 24cb148e11 #1004. Reviewed all include directives in src/*.cpp and samples/*.cpp
fixed svn_version.sh again!
change to test/build-test.py for MacOS-X/Xcode 6.
11 years ago
Robin Mills d54b8cbdeb #1012. Thank You, Thomas for the patch. 11 years ago
Robin Mills cc8fcb08c1 #1012. r3508 broke the build on macosx and linux.
Fixed cosmetic issues in samples/httptest.cpp and <exiv2dir>/Makefile.
11 years ago
Robin Mills f2abf92fd7 #1013 and #1015. Thank You, Thomas, for reporting these and for the fixes. 11 years ago
Robin Mills f2a247fb62 #1012. Thank you, Thomas, for reporting this a providing the patch. 11 years ago
Robin Mills d393b0fa7e trunk: exiv2 v0.25 11 years ago