424 Commits (def782fb65720e65e814e7b1015efd9b12e38212)

Author SHA1 Message Date
tbeu 94420ab591 Remove custom rwlock in favor of `std::mutex` of C++11
Current design on Windows was broken anyway, since legacy class `RWLock` does not implement a proper rwlock (shared read and exclusive write)

Once we are allowed using C++14 features, we can replace the `std::mutex` by `std::shared_timed_mutex` and the read-access locks by `std::shared_lock`.
Once we are allowed using C++17 features, we can replace the `std::mutex` by `std::shared_mutex` and the read-acces locks by `std::shared_lock`.
4 years ago
Miloš Komarčević bc37a6ccb4 Update bmffimage.hpp include order and path
No need to treat it differently since 206a2c495c

(could even back-port to 0.27 if there is RC3 coming)
4 years ago
Luis Díaz Más d5240a4bda eps: Fix code after usage of unique_ptr. Remove deprecation tags 4 years ago
Luis Díaz Más ed6cbf77b4 Revert "eps - do not install header"
This reverts commit 8f16196ad3.
4 years ago
Luis Díaz Más 8314030604 Revert "Remove deprecated EPS format"
This reverts commit 537cdad99e.
4 years ago
Luis Díaz Más 75e4bd9059 Remove rest of useless typedefs from datasets.hpp 4 years ago
Luis Díaz Más 75bf666d3b Remove typedef to Dictionary::const_iterator 4 years ago
Luis Díaz Más 83dda6ccd7 Fix warnings related to -Wdeprecated-copy 4 years ago
Luis Díaz Más 2de3bad869 Remove EXIV2_ENABLE_VIDEO and related stuff 4 years ago
Luis Díaz Más 3eb1eee7fe Remove deprecated RiffVideo support 4 years ago
Luis Díaz Más 061ec1a75d Remove deprecated QuickTime support 4 years ago
Luis Díaz Más 8dcc07887a Remove deprecated Matroska support 4 years ago
Luis Díaz Más 94b87a8dec Remove deprecated SSH support 4 years ago
Luis Díaz Más 384a5edfcf Remove deprecated ASF Video 4 years ago
Robin Mills b19e79650f Only reveal class bmffimage in include/exiv2/bmffimage.hpp ifdef EXV_ENABLE_BMFF 4 years ago
Robin Mills 206a2c495c fix_enableBMFF_v1 4 years ago
Luis Díaz Más 8f16196ad3 eps - do not install header 4 years ago
Luis Díaz Más 0bbaa6eff3 cpp: Replace auto_ptr by unique_ptr 4 years ago
Luis Díaz Más 537cdad99e Remove deprecated EPS format 4 years ago
Robin Mills d632988bbd Massive code prolog cleanup. 4 years ago
Robin Mills 9e2ac47cf9
Merge pull request #1475 from 1div0/BMFF
Base Media File Format
4 years ago
clanmills e3fd0c633e Thank You @piponazo for the code review. I've made the changes you requested. 4 years ago
Miloš Komarčević 0da1a50afe Revert style changes 4 years ago
Miloš Komarčević e09d093ccf Minor whitespace formatting 4 years ago
clanmills ae66869695 Updated to adopt Review suggestions by @kmilos. Thank You, Milos. 4 years ago
postscript-dev 6cd9263fa7 Fix langAltValue::read() parsing
+ Fix segmentation faults in langAlt parse
+ Fix mismatched quotation marks and incorrect values
+ Add Python testing
  + Some tests commented out as quotation marks are filtered, preventing them
    from running.
Closes #1481.
4 years ago
clanmills 0ad46453ed With good fortune, bmffimage is ready for review. 4 years ago
Robin Mills 71d29fe60b Fix MSVC build breaker and modify test_pr_1475_HIF.py to run on Windows. 4 years ago
Robin Mills fd9cb67fb7 WIP: adding BmffImage::printStructure() and support for colr box. 4 years ago
Robin Mills ea1c91874f Added parseXmp() to parse Xmp metadata. 4 years ago
Robin Mills 44d976c2a1 Remove bmffimage::printStructure() as discussed in review with @hassec. Corpse removal and cleanup in bmpfimage.hpp 4 years ago
Robin Mills 5c77888037 Revised following code review by @hassec. Thank You, Christoph. 4 years ago
Peter Kovář 4d3af08ad8 Add CR3 image dimensions 4 years ago
Robin Mills 4ae0a1d2a3 Tidy up. Rename Tag::cr3_exif -> Tag:cmt2 4 years ago
Robin Mills 9515e4658b Cleanup. 1. Recursively process uuid/cano box. 2. Fix LGTM/CI sprintf grumbles. 3. Comment parseTiff() in bmffimage.hpp. 4 years ago
Robin Mills 913ee33372 Parse Exif in .HEIC/.AVIF 4 years ago
Christoph Hasse 28b41f59bd run clang-format on new files 4 years ago
Christoph Hasse 29f3d5cac9 introduce parseTiff method to parse exif 4 years ago
Robin Mills f190f496d1 Tidying up. 1. pixelHeight_. 2. refactored indenter() -> indent(). 3. EXIV2_DEBUG_MESSAGES outputs to std::cerr 4 years ago
Robin Mills 8d7133d7bc WIP: Added class Iloc and related code. 4 years ago
Robin Mills 6d13e44e5a WIP: Refactored readMetadata() into recursive boxHandler() 4 years ago
Peter Kovář 04481dd753 [WIP] 64-bit length 4 years ago
Peter Kovář f0a321dedb [WIP] Base Media File Format 4 years ago
Peter Kovář c608148820 [WIP] Added box types 4 years ago
Peter Kovář e19fca6640 Small corrections 4 years ago
Robin Mills fa39234275 Fixing Linux build/test issues. 4 years ago
Robin Mills 0844e1bbfb Rename class ISOBMFF => class bmffImage to match other image handlers. Removed C++11 style code. Removed unused code. 4 years ago
Robin Mills 460a802671 Fix image handler to give jp2image code higher priority than the next isobmff code. 4 years ago
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 7 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