Feature #742

External XMPSDK and/or XMPSDK 2014.12

Added by Nikolai Saoukh almost 11 years ago. Updated about 6 years ago.

Target version:
Start date:
23 Nov 2010
Due date:
% Done:


Estimated time:
1.00 h


Can xmp (sdk) be made external project?

If not, then can xmpsdk 5.1.2 be imported?

Related issues

Related to Exiv2 - Bug #751: adobe xmp namespaceClosed17 Jan 2011

Related to Exiv2 - Patch #786: thread safety of xmp toolkitClosed10 Aug 2011

Related to Exiv2 - Feature #941: Upgrade xmpsdk source to Adobe's current versionClosed27 Dec 2013




Updated by Andreas Huggel almost 11 years ago

Can xmp (sdk) be made external project?

That's the goal. Or it was. See doc/README-XMP. In the meantime, the exiv2 version of XMP-SDK has changes beyond simple compiler warning fixes.

If not, then can xmpsdk 5.1.2 be imported?

Yes, thanks for the pointer.


Updated by Alan Pater over 6 years ago

  • Subject changed from External XMPSDK and/or XMPSDK 5.1.2 to External XMPSDK and/or XMPSDK 2014.12

Exempi recently updated to xmpsdk 2014.12.

Is that the external project mentioned?


Updated by Robin Mills over 6 years ago

  • Category set to xmp
  • Status changed from New to Assigned
  • Assignee set to Andreas Huggel
  • Priority changed from Low to Normal
  • Target version set to 0.26


I'm not certain what exempi is. I think it might be a snap-shot of Adobe's public offering at some time in the past. Andreas has accepted the challenge of upgrading our XMP code to the latest public offering from Adobe. This is no trivial, there are changes which have to me made to Adobe's code to integrate correctly with Exiv2. #941

There was a recent discussion (on private email) with our friends at Alien Skin Software about using both libexiv2 and Adobe's XMPsdk in the same application. I believe that was successfully concluded with a little bit of namespace massage. I'll email Alien Skin to find out if they are happy.

Here's my latest email with them about using Adobe XMPsdk and Exiv2 in the same application. (2015-02-10)

There’s the issue:
677 rmills@rmillsmbp:~/gnu/exiv2/trunk $ find . -type f -exec grep -H sXMP_InitCount $___
./xmpsdk/src/XMPCore_Impl.cpp:XMP_Int32 sXMP_InitCount = 0;
./xmpsdk/src/XMPCore_Impl.hpp:extern XMP_Int32 sXMP_InitCount;
./xmpsdk/src/XMPCore_Impl.hpp:// ! Don't do the initialization check (sXMP_InitCount > 0) for the no-lock case. That macro is used
./xmpsdk/src/XMPCore_Impl.hpp:    XMP_Assert ( sXMP_InitCount > 0 );                        \
./xmpsdk/src/XMPMeta.cpp:    ++sXMP_InitCount;
./xmpsdk/src/XMPMeta.cpp:    if ( sXMP_InitCount > 1 ) return true;
./xmpsdk/src/XMPMeta.cpp:    --sXMP_InitCount;
./xmpsdk/src/XMPMeta.cpp:    if ( sXMP_InitCount > 0 ) return;
678 rmills@rmillsmbp:~/gnu/exiv2/trunk $ 

That variable sXMP_InitCount isn’t static.  It’s extern and that why it’s visible in xmpsdk.lib

Wrapping it (and his companions) in the Exiv2 namespace OR changing the name to sXMP_InitCount__ will almost certainly fix it.

I'm going to assign this (#742) to Andreas to be considered in the XMP upgrade project for v0.26.


Updated by Robin Mills over 6 years ago

  • Status changed from Assigned to Closed
  • Estimated time set to 1.00 h

I'm going to mark this as "Closed". It will be dealt with when we update XMPsdk in #941.


Updated by Robin Mills about 6 years ago

  • % Done changed from 0 to 100

Also available in: Atom PDF