Writing Extended XMP

Added by Darren Hart over 3 years ago

I am trying to create a stereoscopic photosphere from two 3D renderings according to the Google developer documentation here:

I have exiv2 writing all the "standard section" values successfully, but am struggling with the "extended section".

I have an external command file which I generate using base64 on the right eye image:

reg GImage
set Xmp.GImage.Data XmpText "/9j................../9k=" 

This fails with what I suppose is the expected:

Exiv2 exception in modify action for file deck.vr.jpg:
Size of XMP JPEG segment is larger than 65535 bytes

Due to the 65k limitation on the standard XMP section. I found the forum thread where support was added to read, delete, and insert for the HasExtendedXMP note, and the data spread across multiple sections. What I haven't found is a way to explicitly set the Xmp.GImage.Data "in the extended section", and have it properly create the HasExtendedXMP note and properly create the necessary 65k sections.

Is this possible today?

Replies (1)

RE: Writing Extended XMP - Added by Robin Mills over 3 years ago

Our support for Extended XMP is limited at the moment. I will not accept bug reports about Extended XMP.

Updating the code to support Adobe XMPsdk as an external library is "Work-in-progress". At the moment, the script xmpsdk/ can build the 2013/2014 and 2016 editions from Adobe and ./configure has options to link appropriately:

529 rmills@rmillsmbp:~/gnu/github/exiv2/exiv2 $ ./configure --help | grep xmpsdk
  --with-adobe[=OPT]  use --with-adobe for Adobe XMPsdk. OPT: 2016|2014|2013 default/--without-adobe is xmpsdk/src
530 rmills@rmillsmbp:~/gnu/github/exiv2/exiv2 $ 
I think options -pX and -dX respect extended XMP, however I don't recall saying that Extended XMP can be edited. You could try the option -iX- (or -iXX-) to read from std-input. Something like:
$ cat blob.xmp | exiv -iX- foo.jpg
Please understand that this is "Work-in-progress" and therefore it may, or may not, work for you. I haven't worked on this since September 2017 and hope this will make it into Exiv2 v0.27 for release later in 2018. This will be discussed at the team meeting in my home in England in May.

I don't believe there's any possibility that a command such as $ exiv2 set Xmp.GImage.Data XmpText "/9j................../9k= foo.jpg can work without further effort to integrate newer versions of Adobe XMPsdk into Exiv2.

I am pleased that you have raised this subject at this time. If the team agrees to update Adobe XMPsdk for v0.27, this matter will receive more attention in the months ahead. Here are my notes for the meeting next month: As you can see, there are many requests and only 3 active contributors.