Luis Diaz Mas
35c3e31958
Fixes for MSVC case
8 years ago
Luis Diaz Mas
27cde135d9
Remove more useless include_directories
8 years ago
Luis Diaz Mas
93e603e031
Fix linking problems with pthreads
8 years ago
Luis Diaz Mas
9808c3bf2d
Simplify CMake code to identify FreeBSD systems
8 years ago
Luis Diaz Mas
f5f5826c03
Use target_sources to extend the list of sources in exceptional situations
8 years ago
Luis Diaz Mas
45807ca03d
Do not include SSH and CURL include dirs globally. Do it properly for the exiv2lib target
8 years ago
Luis Diaz Mas
c50702612d
Simplify CMake code for handling SSH and CURL cases
8 years ago
Luis Díaz Más
57cd78b517
Put all the CMake related with the exiv app together
8 years ago
Luis Díaz Más
ee61c24459
Remove inclusion of many useless include_directories
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
Luis Díaz Más
73f53cc6f9
Move sample applications from src/CMakeLists.txt to samples/CMakeLists.txt
8 years ago
Robin Mills
aefa3e3d34
MacOSX --with-adobe link issue. Work in progress. Code and documentation update.
8 years ago
Robin Mills
2a61392766
Merge pull request #27 from piponazo/master-CMakeObjectLibraryForXmp
...
New way to generate the XMP library (Using the CMake OBJECT LIBRARY concept)
8 years ago
Luis Diaz Mas
b387d58507
Remove EXPAT_LIBRARIES from where it is not needed (already inherited from exiv2lib target)
8 years ago
Luis Diaz Mas
40d10639e2
Reuse XMP OBJECT library in the exiv2lib when EXIV2_ENABLE_LIBXMP=OFF
8 years ago
clanmills
935421c855
Refactoring autotools to support ADOBE_XMPSDK (Work in Progress)
8 years ago
Luis Diaz Mas
64bbe802e2
Install exv_conf.h properly
8 years ago
Luis Diaz Mas
b4a2b822c2
Remove usage of global variable INSTALL_TARGET_STANDARD_ARGS. Specify install destinitions in each target
8 years ago
clanmills
2e816165ea
Changes to autotools to support C++11 (work in progress)
8 years ago
Luis Díaz Más
b6885c8028
Since we are requiring CMake 3.1 we can remove the usage of PRIVATE_VAR and use directly PRIVATE or PUBLIC
8 years ago
clanmills
e2862ba764
#1300 and #1301 (583cfd6e and 3bbba3f8). These fixes were accidentally lost on 2017-08-07.
8 years ago
clanmills
1505b4c3aa
#11 Integrating fix into master (accidentally lost on 2017-08-07 by rebase -force)
8 years ago
clanmills
122cd5737f
Cosmetic modifications to Pull-21. Fix to ensure Cygwin uses #include <unistd.h>
8 years ago
Robin Mills
8592c10a3e
Merge pull request #21 from piponazo/configFileFromCMake
...
New way to generate the include/exiv2/exv_conf.h file
8 years ago
Luis Díaz Más
e474b0fbd3
localtime.c and getopt_win32.c added unconditionally for the exiv2 app
8 years ago
clanmills
011f2b5259
Fixing bug in test harness on Linux.
8 years ago
Luis Diaz Mas
22efdffd1d
Use #ifdef instead of #if for EXV_HAVE_REGEX
8 years ago
Luis Diaz Mas
252d738b6c
Include xmpsdk/include only in the needed target. Remove other uneeded usages of INCLUDE_DIRECTORIES and LINK_DIRECTORIES
8 years ago
Luis Diaz Mas
1d327fba21
Correct usage of HAVE_REGEX
8 years ago
Luis Diaz Mas
911832d70a
Handle HAVE_TIMEGM variable in the new cmake file
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
24130dbbb2
Cast to avoid compiler warning with MSVC2005
8 years ago
clanmills
882c825f1a
Fix https://github.com/Exiv2/exiv2/issues/16
8 years ago
kiekerjan
b35903e4c8
Spelling error
...
Small error in camera name ICLA-68 instead of ILCA-68
8 years ago
Robin Mills
b8bbacd196
Fix submitted. https://github.com/Exiv2/exiv2/issues/10
...
This is not a good fix because temporaryFile() is a bad idea and requires a lock to be thread safe. However, the lock is in the sample code and not in the library. I considered in v0.26 to rewrite this to use a temporary (MemIo) file and decided against that to save time. My sin. The correct fix usually requires less effort in the long run.
8 years ago
Robin Mills
82dbe6199d
https://github.com/Exiv2/exiv2/issues/11 Closed. Coincidentally Raphael reported issues with Visual Studio 2015 Community Edition. Issue 11 and Raphael's issues should now be resolved.
8 years ago
clanmills
620ef04e96
https://github.com/Exiv2/exiv2/issues/9 Fix submitted.
8 years ago
clanmills
d3c2b99385
#1297 Fix submitted.
8 years ago
clanmills
ef64de084c
Removing msvc2003 support
8 years ago
clanmills
a9c9e8ff8e
Remove svn_version.h
8 years ago
clanmills
290164d1b6
Work in progress: https://github.com/Exiv2/exiv2/issues/3
...
Tested on MacOS-X. I'll test Linux/Cygwin/MSVC and close if good.
8 years ago
Bernd Kuhls
8af901ce05
cmake: always depend on threads, not only in the xmp case
8 years ago
Bernd Kuhls
3af0d1a6b2
cmake: fix gettext support
...
Building exiv2 with uclibc and gettext fails currently as detected
by the buildroot autobuilders:
http://autobuild.buildroot.net/results/def/defcdd3dd57b031c31bb16c0075f079a482bf52d/build-end.log
8 years ago
clanmills
2f8681e120
#1296 Fix submitted.
8 years ago
clanmills
9be72eecec
#1294 Fix.
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
73572aa54d
#1291 Fix submitted. Thank You to T Modes for reporting this issue.
8 years ago
Robin Mills
44da4724b3
#1175 Correction to r4756 Another three casts required to build with Visual Studio (size_t code ripple)
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
7da3ad2e41
#1175 . Thanks to LaserSoft for reporting this and providing a patch.
8 years ago
Robin Mills
77616c3204
#1289 Thanks to Asdiel (AlienSkin) for reporting this and providing a test file. Thanks to Ben for investigation and patch.
8 years ago
Robin Mills
307c9e266c
#1286 Correction to r4752
8 years ago
Robin Mills
5a5f7dc1ac
#1286 Fix submitted.
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
nkbj
788caad7de
Updated Nikon Lens lookup table to v4.4.527.01 of Robert Rottmerhusen's fmountlens list.
8 years ago
nkbj
e8c2c7ba01
Update various lists to match ExifTool version 10.47.
8 years ago
Robin Mills
0051366df4
#1279 Removing unused code.
8 years ago
Robin Mills
8b90afa94e
#1279 Almost done!
8 years ago
Robin Mills
be0945016b
#1269 Thank You to Ben for reporting this and providing the patch.
8 years ago
Robin Mills
192a2a83cf
#1279 Cleaned up doxygen warnings for doc and website.
8 years ago
Robin Mills
11993b3b55
#1271 Thanks to Ben for reporting this and providing the patch.
8 years ago
Robin Mills
809009f174
#1279 Better man page pagination for pdf.
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
nkbj
40dbbf6373
Update various lists to match ExifTool version 10.44.
8 years ago
Robin Mills
012c544704
#1268 Fix submitted. Ben and Robin both discovered and fixed this independantly with the same fix!
8 years ago
Robin Mills
9f06ff2971
#1272 Submitting modified version of Ben's patch.
8 years ago
Robin Mills
dd4faaf831
#1277 Fix submitted. Thank You to Ben for reporting this and providing a patch.
8 years ago
Robin Mills
bc1f8f7e84
#1275 Fix issue with Exiv2::Key.familyName() for key.ifdId_ == mpfId
8 years ago
Robin Mills
b668455721
#1275 Fix submitted.
8 years ago
nkbj
5c308319b7
Update Pentax camera list to match ExifTool version 10.41.
9 years ago
Robin Mills
cc2594004b
#1271 CMake support for FreeBSD. Requires -DEXIV2_ENABLE_NLS=OFF
9 years ago
Robin Mills
91bfda349d
#1273 Correction to r4699
9 years ago
Robin Mills
720b94bb5e
#1273 Fix for linking on FreeBSD
9 years ago
nkbj
f3fe69ea18
Update Canon lens list to match ExifTool version 10.40.
9 years ago
nkbj
1cfdba23ff
Update Nikon lens list to match ExifTool version 10.38.
9 years ago
draekko
a82be7c98d
#1266 Add path to zlib for cmake msvc to src/CMakeList.txt to fix debug buildtype build issues
9 years ago
Robin Mills
fe6c71d0fa
#1108 exiv2 -pR to dump type == tiffIfd
9 years ago
Robin Mills
49fbd1d761
#1108 Add support to dump MakerNote IFDs with exiv2 -pR
9 years ago
Robin Mills
461b431bc1
#1231 Thank You to Ayke for providing the patch.
9 years ago
nkbj
8ec062cc46
Updated Nikon Lens lookup table to v4.4.520.01 of Robert Rottmerhusen's fmountlens list.
9 years ago
nkbj
eea1e67062
Update Minolta lens list to match ExifTool version 10.36.
9 years ago
Robin Mills
9ad811150d
#1230 Removing incorrect 2-byte pad following JPEG ICC_PROFILE.
9 years ago
Robin Mills
1a0095ff4a
#1252 Patch submitted. Thank You to Markus for the patch and test files. Test suite updated appropriately.
9 years ago
nkbj
597a1bf650
Update Nikon lens list to match ExifTool version 10.33.
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
ba785b2a02
#1230 Fix msvc build breaker when building using configure -x (without xmp)
9 years ago
Robin Mills
dd0a22814c
#1247 Another correction to r4655 concerning clang/apple.
9 years ago
Robin Mills
9853ca55bd
#1247 . Correction to r4655 to handle clang on plaforms other than MacOS-X.
9 years ago
nkbj
db3af9720a
Update various lists to match ExifTool version 10.31.
9 years ago
Robin Mills
6ea3b00b02
#1249 Fixes
9 years ago
Robin Mills
92659f24c8
#1247 Restrict clang pragma to __APPLE__
9 years ago
Robin Mills
4abb560cf7
#1243 . Fixing compilation warnings from clang in jp2image.cpp
9 years ago
Robin Mills
dd39d165e2
#1247 Fix Linux/GCC compilation warning. Added Hanno's file to the test suite.
9 years ago
Robin Mills
764f079dff
#1243 Fixing typo/build breaker.
9 years ago
Robin Mills
021bf5c237
#1247 Thank You Hanno for reporting this and providing a patch.
9 years ago
Robin Mills
6a1b7d262f
#1243 Correction to msvc build breaker in r4648
9 years ago
Robin Mills
e7229f4ea5
#855 Remove compiler signed/unsigned warning.
9 years ago
Robin Mills
18ecd0e890
#1243 Adding ICC Profile support to jp2image.cpp
9 years ago
Robin Mills
54ac67d9db
#1080 Fix submitted.
9 years ago
Robin Mills
5664393767
#1246 Fix submitted.
9 years ago
Robin Mills
b9f584fbbf
#1430 Correcting MSVC build breaker in r4639
9 years ago
Robin Mills
022e18dc6f
#1244 Fix crwimage.cpp to read into memory (to make CRW work with RemoteIo).
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
2f86b6bbc0
#1244 Fix submitted.
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
099dd70c59
#1230 Fix bigEndian issue in toAscii()
9 years ago
Robin Mills
67efb34461
#1243 . Correction to r4627
9 years ago
Robin Mills
3d77c41e31
#1243 Work-in-progress.
9 years ago
Robin Mills
2e9138cf91
#1243 Work-in-progress. Still to add code to writeMetadata for icc profiles.
9 years ago
Robin Mills
ebea8991e5
#1243 Work-in-progress. Added test/data/relax.jp2 which has an embedded ICC profile.
9 years ago
Robin Mills
442b0155d0
#1243 Added XMP and IPTC data to Reagan.jp2. Corrected printStructure() appropriately.
...
Will add jp2image::writeMetadata()/iccProfile tomorrow and update tests.
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
ed63a113e1
#1242 Work in progress. Fixing src/jp2image.cpp. Added test file. Test suite to be updated to use Reagan.jp2 (and hopefully additional test files)
9 years ago
Robin Mills
957f71f6a6
#1230 Fix MinGW stdin-test breaker
9 years ago
Robin Mills
5b38d4528a
#1108 Added code to dump Exif, IPTC and iTXt/zTXt comment/description blocks for PNG files.
9 years ago
Robin Mills
5282bc2120
#1230 More changes to pacify MinGW (the nightmare environment).
9 years ago
Robin Mills
4c2f943bd1
#1230 exiv2.cpp #include <string> breaks the build on MinGW/32.
9 years ago
Robin Mills
bea89ba81a
#1230 . Rollback 4604. I knew webp-test was sometimes failing. Fixed. Always use runTest exiv2 to be sure of executing the hot build of exiv2(.exe).
9 years ago
Robin Mills
ceaa92704f
#1230 Adding --verbose to print action to dump more information (to debug something on the buildserver)
9 years ago
Robin Mills
2d5dc284e2
#1230 CMake Maintenance. Adding EXIV2_HDR to exiv2/headers and LIBEXIV2_PRIVATE_HDR to libexiv2/headers.
9 years ago
Robin Mills
0abf56f71b
#1236 CMake build on MinGW.
9 years ago
Robin Mills
b1a9d4493f
#1230 Eliminate linux compiler warning.
9 years ago
Robin Mills
c10bc003a7
#1023 Fix getDataByRange CURLOPT_SSL_VERIFYHOST. Fix http-test.sh (and associated test/data/http-test.out).
9 years ago
nkbj
133174a6b1
Update various lists to match ExifTool version 10.28.
9 years ago
Robin Mills
5b21deda93
#1234 Corrections to r4577
9 years ago
Robin Mills
3811ceb930
#1234 Corrections to r4577 based on testing on PPC.
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
a1877c04e2
#1230 and #1199 Correction to r4575
9 years ago
Robin Mills
681acc7901
#1199 and #1230 webpImage::printStructure(). Reporting Offset == 0 on Tiger (32bit).
9 years ago
Robin Mills
b0ff549cb7
#1230 Correction to r4565 to fix msvc build breaker.
9 years ago
Robin Mills
3cfecd4918
#1230 Extended test/stdin-test.sh to pipe .exv and .icc file structures
9 years ago
Robin Mills
5f1d52e497
#1230 Added stdin-test and fixing issue identified by the test.
9 years ago
nkbj
1f7f82c7d9
Add support for the Olympus M.Zuiko Digital ED 12-100mm F4.0 IS Pro lens.
9 years ago
nkbj
52f3e100c2
Update various lists to match ExifTool version 10.27.
9 years ago
Robin Mills
e46907cb1b
Man page review for v0.26
9 years ago
Robin Mills
e808cdff3e
#1109 MinGW/32. Correction to r4543 for systems which are neither MINGW nor MSVC
9 years ago
Robin Mills
66cfbe3214
#1109 MinGW/32. Correction to r4543 for systems which are neither MINGW nor MSVC
9 years ago
Robin Mills
c78a76c45c
#1109 MinGW/32. Correction to r4538 for all versions of msvc.
9 years ago
Robin Mills
b8021f4517
#1074 Correction to r4540. Rollback changes to actions.cpp which should not have been submitted. Resubmitted test/data/icc-test.out
9 years ago
Robin Mills
88b3f77796
#1074 Fix bug in TiffImage printStructure() for large icc profiles.
9 years ago
Robin Mills
f4feff0864
#1229 . Fix submitted (and appropriate update to test harness). Fix an error in jpgimage::doWriteMetadata for large (>64k) ICC profiles.
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
793bd6ca63
#1109 MinGW/32 daily build. Fix GCC warning on MinGW/32 gcc 4.9.2
9 years ago
nkbj
56faaba0b1
Add support for two new Olympus lenses.
9 years ago
Robin Mills
3c675f8e53
Build trigger.
9 years ago
nkbj
d733056375
Fix issue #1215 : Exif.CanonSi.SubjectDistance unit.
9 years ago
nkbj
7915183af7
Fix issue #1217 : Missing values for Exif.CanonCs.ISOSpeed tag 0x0010.
9 years ago
nkbj
f260b163ad
Update Canon and Nikon lens lists to match ExifTool version 10.26.
9 years ago
Robin Mills
d321dad695
#1108 Fixing issue with pngimage::printStructure() and the "Software" string in test/data/imagemagick.png
9 years ago
Robin Mills
b46cac7790
#1126 Fixes submitted for msvc2003
9 years ago
Robin Mills
1bea0c6aeb
#1108 Better string formatting (and associated test/data changes). Tweaks to code layout for r4497.
9 years ago
Robin Mills
458580373a
#1108 Enhanced pngimage::printStructure() to display checksum
9 years ago
Robin Mills
f2ec4ce36a
#1074 Work in progress. fixed pngimage.cpp doWriteMetadata().
9 years ago
Robin Mills
7bd874049e
#1074 Work in progress. -eC -pC -eC- work for JPG/PNG/TIFF/WEBP. pngimage::doWriteMetadata() does not update iCCP chunk.
9 years ago
Robin Mills
5edc759cc9
#1074 For discussion see: http://dev.exiv2.org/issues/1074#note-23
9 years ago
Robin Mills
a8c51889b8
#1074 . Fix bug in jpgimage.cpp/readMetadata() concerning ICC profile
9 years ago
Robin Mills
3d57bbc6e6
#1074 Work in progress. ICC Jpeg/Png/Tiff exiv2 -eC foo.xxx writes good foo.icc profiles. icc-test.sh is broken and to be investigated.
9 years ago
Robin Mills
9d06081616
#1225 Correction to r4480 to respect the endianness of file and platform
9 years ago
nkbj
44e51a9069
Whitespace fix in r4480.
9 years ago
Robin Mills
c7bca0ce00
#1224 crw-test.sh refactored to use test/functions.source, no long reference sample program crwparse and avoid crash in crwimage.cpp
9 years ago
Robin Mills
9ff2224fd7
#1074 . Rollback r4479 which has inflicted a lot harm on the test harness.
9 years ago
Robin Mills
14f64998ac
#1225 Fix
9 years ago
Robin Mills
3aaebf50f7
#1074 Added ICC support to tiffimage.writeMetadata(). pngimage.readMetadata() is not complete.
9 years ago
Robin Mills
925fede113
#1223 Correction to r4477 to fix Cygwin build breaker. #include <cstdint> demands C++11 support on GCC 4.9.3 on the buildserver. Code compiles without cstdint and iomanip
9 years ago
Robin Mills
2de6968227
#1223 Thank you to Alexey for reporting this and providing the patch.
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
d7463fd114
#1074 and #1057 Fixing build breakers on Cygwin and msvc MinGW to be further investigaged. add checkSum to test functions
9 years ago
Robin Mills
5cf87e19dd
#1074 Correction to r4466 to fix MinGW build breaker on include <sys/select.h>
9 years ago
Robin Mills
b5bc66b36a
#1057 Added support for -iXX-
9 years ago
Robin Mills
d801aabd58
#1057 . Simplification of r4466
9 years ago
Robin Mills
70407cc8ad
#1057 Fixed issues with stdin on Windows which were documented in http://dev.exiv2.org/issues/1057#note-8
9 years ago
Robin Mills
21e7622f0b
#1057 Fixed src\exiv2app.hpp formatting. Moved reading stdin from ctor to getStdin(). WIP: unsolved Windows pipe issues.
9 years ago
Robin Mills
14f7f18222
#1057 Correction to r4633 to fix Windows build-breakers (Cygwin/MinGW and msvc)
9 years ago
Robin Mills
984189ebde
#1057 Added support for -iC- to read ICC profile from stdin to an image.
9 years ago
Robin Mills
57ee93886a
#2120 Fix submitted and appropriate changes to test/icc-test.sh (rewritting ICC in JPG was corrupting file)
9 years ago
Robin Mills
87e9c996a6
#1220 and #1074 Work in progress. Improved -pS for JPEG. #1220 is due to a bug in writing the ICC profile in jpgimage.cpp/doWriteMetadata()
9 years ago
draekko
bf56bbf7fa
#825 added printPressure for panasonic makernotes to display hPa values or infinite when value is 65535 for Exif field 0x0086
9 years ago
Robin Mills
3706233c8d
#1074 Correction to r4457 to fix msvc build-breaker.
9 years ago
Robin Mills
b7c90140c7
#1074 ICC support in jpgimage.cpp. Add test/icc-test.sh
9 years ago
Robin Mills
9026954816
#1074 Work in progress for ICC/jpg - changes to readMetadata() and printStructure()
9 years ago
Robin Mills
a6ba04d422
#994 Update svn_version.h using svn info 'Last Changed Rev' instead of 'Changed'. This enables exiv2 -vVg svn to identify build branch or trunk.
9 years ago
Robin Mills
97e7905a8b
#1060 Thank you to Thomas B for working on this and providing the patch.
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
Robin Mills
8ad06d6f17
#1199 Fixing build-breaker when -DDEBUG is used.
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
Robin Mills
fe6a016957
#922 Correction to r4434. Fixing another msvc build breaker.
9 years ago