Loading ...
Sorry, an error occurred while loading the content.
 

XMP support - ALPHA

Expand Messages
  • Andreas Huggel
    In branches/xmp of the SVN repository, there is now a first working development version of the future XMP metadata support (read-only). The exiv2 interface is
    Message 1 of 18 , Aug 16, 2007
      In branches/xmp of the SVN repository, there is now a first working
      development version of the future XMP metadata support (read-only).
      The exiv2 interface is similar to those for Exif and IPTC metadata,
      through new classes XmpData, Xmpdatum and XmpKey. It uses the Adobe
      XMP toolkit to parse XMP packets (see README-XMP for more and the
      download page on the website for instruction on how to use SVN - just
      replace trunk with branches/xmp).

      Now I'm looking for your feedback on the interface and desired
      features and priorities. What are you actually going to use XMP for?

      In particular, I'm wondering whether it's useful/desirable to have
      type specific Exiv2 values for the different properties (e.g.
      UShortValue, RationalValue), or whether the new XmpTextValue should be
      used across the board for all (simple and array) XMP properties.

      Also, ideas how to support XMP structure types would be very helpful.

      Thanks,
      Andreas
    • Gilles Caulier
      Andreas, I will back at home this week end. I will take a look to add support of XMP in libkexiv2 to be abble to see XMP tag in digiKam sidebar. This will be
      Message 2 of 18 , Aug 17, 2007
        Andreas,

        I will back at home this week end. I will take a look to add support of XMP in libkexiv2 to be abble to see XMP tag in digiKam sidebar. This will be the first stage to give you a feedback.

        About XMP structure types, we need to have the support of the main XMP schemas used by compagnies, as Adobe and M$ for ex... Look in ExifTool DB for details :

        http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/XMP.html

        I think than  this structures (schemas) can be interpreted by Exiv2 like Exif makernotes as interpreted...

        Gilles Caulier


        2007/8/16, Andreas Huggel < ahuggel@...>:

        In branches/xmp of the SVN repository, there is now a first working
        development version of the future XMP metadata support (read-only).
        The exiv2 interface is similar to those for Exif and IPTC metadata,
        through new classes XmpData, Xmpdatum and XmpKey. It uses the Adobe
        XMP toolkit to parse XMP packets (see README-XMP for more and the
        download page on the website for instruction on how to use SVN - just
        replace trunk with branches/xmp).

        Now I'm looking for your feedback on the interface and desired
        features and priorities. What are you actually going to use XMP for?

        In particular, I'm wondering whether it's useful/desirable to have
        type specific Exiv2 values for the different properties (e.g.
        UShortValue, RationalValue), or whether the new XmpTextValue should be
        used across the board for all (simple and array) XMP properties.

        Also, ideas how to support XMP structure types would be very helpful.

        Thanks,
        Andreas


      • Andreas Huggel
        ... Hi Gilles, I thought you won t have access to the internet. Couldn t stand it anymore, could you? ;) ... Great! ... Exiv2 will support at least all the
        Message 3 of 18 , Aug 17, 2007
          On Friday 17 August 2007 17:09, Gilles Caulier wrote:
          > Andreas,
          >
          > I will back at home this week end.

          Hi Gilles, I thought you won't have access to the internet. Couldn't
          stand it anymore, could you? ;)

          > I will take a look to add support
          > of XMP in libkexiv2 to be abble to see XMP tag in digiKam sidebar.
          > This will be the first stage to give you a feedback.

          Great!

          > About XMP structure types, we need to have the support of the main
          > XMP schemas used by compagnies, as Adobe and M$ for ex... Look in
          > ExifTool DB for details :
          >
          > http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/XMP.html
          >
          > I think than this structures (schemas) can be interpreted by Exiv2
          > like Exif makernotes as interpreted...

          Exiv2 will support at least all the schemas listed in the XMP
          specification (about a dozen, incl. TIFF and Exif) and the Iptc4xmpCore
          schema. If there is a need for more, they can be easily added. I'm also
          planning for a facility that allows adding additional schemas or
          overwriting/extending property lists at runtime, so that users can use
          their own proprietary schemas.

          But structures are different. They are a type of value, which in Exiv2
          is usually modelled with a class derived from Exiv2::Value, such as
          UShortValue, XmpTextValue, etc.

          For example, from the XMP specs, xmpDM schema:

          Property name: xmpDM:contributedMedia
          Value type: bag Media

          The property name translates to a Xmpdatum with the
          key "Xmp.xmpDM.contributedMedia" in Exiv2.

          In the Value type, "bag" means that the value can consist of multiple
          elements, that's ok. The type of the elements is "Media", which is a
          structure and itself consists of:

          Field name (Value type)
          ---------- ------------
          path (URI)
          track (Text)
          startTime (Time)
          duration (Time)
          managed (Boolean)
          webStatement (URI)

          That's what the question is about. From what I just saw on Phil's page,
          exiftool seems to break structures down into individual properties,
          e.g., for the contributedMedia property above, exiftool has:

          ContributedMediaPath string+
          ContributedMediaTrack string+
          ContributedMediaStartTime string+
          ContributedMediaDuration string+
          ContributedMediaManaged boolean+
          ContributedMediaWebStatement string+

          Should exiv2 do something like that? Or attempt to implement a more or
          less generic Exiv2::XmpStructureValue? If so, how should it look like;
          just another list of names and values? Any other ideas?

          -ahu.
        • Gilles Caulier
          ... I just use my laptop under Window Vista to read my mail. I cannot use Linux over internet (winmodem)... ... Great! ... Exiv2 will support at least all the
          Message 4 of 18 , Aug 17, 2007
            On Friday 17 August 2007 17:09, Gilles Caulier wrote:
            > Andreas,
            >
            > I will back at home this week end.

            >Hi Gilles, I thought you won't have access to the internet. Couldn't
            >stand it anymore, could you? ;)

            I just use my laptop under Window Vista to read my mail. I cannot use Linux over internet (winmodem)...


            > I will take a look to add support
            > of XMP in libkexiv2 to be abble to see XMP tag in digiKam sidebar.
            > This will be the first stage to give you a feedback.

            Great!

            > About XMP structure types, we need to have the support of the main
            > XMP schemas used by compagnies, as Adobe and M$ for ex... Look in
            > ExifTool DB for details :
            >
            > http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/XMP.html
            >
            > I think than this structures (schemas) can be interpreted by Exiv2
            > like Exif makernotes as interpreted...

            Exiv2 will support at least all the schemas listed in the XMP
            specification (about a dozen, incl. TIFF and Exif) and the Iptc4xmpCore
            schema. If there is a need for more, they can be easily added. I'm also
            planning for a facility that allows adding additional schemas or
            overwriting/extending property lists at runtime, so that users can use
            their own proprietary schemas.

            But structures are different. They are a type of value, which in Exiv2
            is usually modelled with a class derived from Exiv2::Value, such as
            UShortValue, XmpTextValue, etc.

            For example, from the XMP specs, xmpDM schema:

            Property name: xmpDM:contributedMedia
            Value type: bag Media

            The property name translates to a Xmpdatum with the
            key "Xmp.xmpDM.contributedMedia" in Exiv2.

            In the Value type, "bag" means that the value can consist of multiple
            elements, that's ok. The type of the elements is "Media", which is a
            structure and itself consists of:

            Field name (Value type)
            ---------- ------------
            path (URI)
            track (Text)
            startTime (Time)
            duration (Time)
            managed (Boolean)
            webStatement (URI)

            That's what the question is about. From what I just saw on Phil's page,
            exiftool seems to break structures down into individual properties,
            e.g., for the contributedMedia property above, exiftool has:

            ContributedMediaPath string+
            ContributedMediaTrack string+
            ContributedMediaStartTime string+
            ContributedMediaDuration string+
            ContributedMediaManaged boolean+
            ContributedMediaWebStatement string+

            >Should exiv2 do something like that?

            No idea. Perhaps you can contact ExifTool author to have a more advanced feedback and to hear why this tool work like this.

            >Or attempt to implement a more or
            >less generic Exiv2::XmpStructureValue?

            I need to play with images including XMP data to look what we can do exactly... I will post also a message to digikam-devel ML to have feedback.

            Gilles
          • Gilles Caulier
            Andreas, This is my first feedback. I m trying to compile xmp branch... libexpat is require to compile EXIV2-XMP. I have not seen an error message given by
            Message 5 of 18 , Aug 19, 2007
              Andreas,

              This is my first feedback. I'm trying to compile xmp branch...

              libexpat is require to compile EXIV2-XMP. I have not seen an error message given by .configure if it not been installed.

              Gilles

              2007/8/16, Andreas Huggel <ahuggel@...>:

              In branches/xmp of the SVN repository, there is now a first working
              development version of the future XMP metadata support (read-only).
              The exiv2 interface is similar to those for Exif and IPTC metadata,
              through new classes XmpData, Xmpdatum and XmpKey. It uses the Adobe
              XMP toolkit to parse XMP packets (see README-XMP for more and the
              download page on the website for instruction on how to use SVN - just
              replace trunk with branches/xmp).

              Now I'm looking for your feedback on the interface and desired
              features and priorities. What are you actually going to use XMP for?

              In particular, I'm wondering whether it's useful/desirable to have
              type specific Exiv2 values for the different properties (e.g.
              UShortValue, RationalValue), or whether the new XmpTextValue should be
              used across the board for all (simple and array) XMP properties.

              Also, ideas how to support XMP structure types would be very helpful.

              Thanks,
              Andreas


            • Gilles Caulier
              Andreas, Ok, i understand. It s not a direct depency to Exiv2, but to XMP-SDK from Adobe used to serialize XMP metadata I think than XMP-SDK manipulation is
              Message 6 of 18 , Aug 19, 2007
                Andreas,

                Ok, i understand. It's not a direct depency to Exiv2, but to XMP-SDK from Adobe used to serialize XMP metadata

                I think than XMP-SDK manipulation is too complicated to handle it with EXIV2-XMP. Like you use only XMPCore component from this library, i recommend to copy this source code directly in Exiv2 core (in a subdir named "xmpsdk" for ex.) and adapt code like we need. This will solve the the external depency to XMP SDK and simplify the task to compile Exiv2 for packager.

                Also, why not to use the XMPCore from "exempi" lib witch is a port of Adobe XMP-SDK to be compiled under 64 bits processors. If i remember, Adobe-SDK can be only compiled under 32 bits processors...

                http://svn.gna.org/viewcvs/niepce/trunk/exempi/

                Gilles Caulier


                2007/8/19, Gilles Caulier < caulier.gilles@...>:
                Andreas,

                This is my first feedback. I'm trying to compile xmp branch...

                libexpat is require to compile EXIV2-XMP. I have not seen an error message given by .configure if it not been installed.

                Gilles

                2007/8/16, Andreas Huggel <ahuggel@...>:

                In branches/xmp of the SVN repository, there is now a first working
                development version of the future XMP metadata support (read-only).
                The exiv2 interface is similar to those for Exif and IPTC metadata,
                through new classes XmpData, Xmpdatum and XmpKey. It uses the Adobe
                XMP toolkit to parse XMP packets (see README-XMP for more and the
                download page on the website for instruction on how to use SVN - just
                replace trunk with branches/xmp).

                Now I'm looking for your feedback on the interface and desired
                features and priorities. What are you actually going to use XMP for?

                In particular, I'm wondering whether it's useful/desirable to have
                type specific Exiv2 values for the different properties (e.g.
                UShortValue, RationalValue), or whether the new XmpTextValue should be
                used across the board for all (simple and array) XMP properties.

                Also, ideas how to support XMP structure types would be very helpful.

                Thanks,
                Andreas



              • Andreas Huggel
                ... Yes, that s right. It s required by the XMP toolkit. The exiv2 XMP support is not yet controlled through the configure script, but that will definitely
                Message 7 of 18 , Aug 19, 2007
                  > Ok, i understand. It's not a direct depency to Exiv2, but to XMP-SDK from
                  > Adobe used to serialize XMP metadata

                  Yes, that's right. It's required by the XMP toolkit. The exiv2 XMP support is not yet controlled through the configure script, but that will definitely need to be added. I guess you saw the README-XMP file.

                  > I think than XMP-SDK manipulation is too complicated to handle it with
                  > EXIV2-XMP. Like you use only XMPCore component from this library, i
                  > recommend to copy this source code directly in Exiv2 core (in a subdir
                  > named
                  > "xmpsdk" for ex.) and adapt code like we need. This will solve the the
                  > external depency to XMP SDK and simplify the task to compile Exiv2 for
                  > packager.

                  That's an interesting idea, which I haven't considered yet. Mainly because I can't provide support for the XMP SDK component. But you've got a point about the dependency (we would still depend on libexpat though). Maybe some packagers are listening, it would be good to hear their opinion.

                  > Also, why not to use the XMPCore from "exempi" lib witch is a port of
                  > Adobe
                  > XMP-SDK to be compiled under 64 bits processors. If i remember, Adobe-SDK
                  > can be only compiled under 32 bits processors...
                  >
                  > http://svn.gna.org/viewcvs/niepce/trunk/exempi/

                  I had a look at exempi (nice name!) If I understand correctly, exempi is first of all a C-wrapper for the XMP toolkit, which is in C++. We really don't need that for exiv2, I had no problems with the API of the XMP toolkit so far. If exempi fixes bugs or adds useful features to the XMP toolkit, then those patches should be sent upstream to be included in the XMP toolkit itself. Actually, I think Hubert is in contact with the Adobe developers.

                  -ahu.

                  --
                  Psssst! Schon vom neuen GMX MultiMessenger gehört?
                  Der kanns mit allen: http://www.gmx.net/de/go/multimessenger
                • Gilles Caulier
                  Andreas, Ok, now Exiv2-xmp is compiled to my computer. I will do review tests now... Gilles
                  Message 8 of 18 , Aug 19, 2007
                    Andreas,

                    Ok, now Exiv2-xmp is compiled to my computer. I will do review tests now...

                    Gilles

                    2007/8/19, Gilles Caulier <caulier.gilles@... >:
                    Andreas,

                    Ok, i understand. It's not a direct depency to Exiv2, but to XMP-SDK from Adobe used to serialize XMP metadata

                    I think than XMP-SDK manipulation is too complicated to handle it with EXIV2- XMP. Like you use only XMPCore component from this library, i recommend to copy this source code directly in Exiv2 core (in a subdir named "xmpsdk" for ex.) and adapt code like we need. This will solve the the external depency to XMP SDK and simplify the task to compile Exiv2 for packager.

                    Also, why not to use the XMPCore from "exempi" lib witch is a port of Adobe XMP-SDK to be compiled under 64 bits processors. If i remember, Adobe-SDK can be only compiled under 32 bits processors...

                    http://svn.gna.org/viewcvs/niepce/trunk/exempi/

                    Gilles Caulier


                    2007/8/19, Gilles Caulier < caulier.gilles@...>:
                    Andreas,

                    This is my first feedback. I'm trying to compile xmp branch...

                    libexpat is require to compile EXIV2-XMP. I have not seen an error message given by .configure if it not been installed.

                    Gilles

                    2007/8/16, Andreas Huggel <ahuggel@...>:

                    In branches/xmp of the SVN repository, there is now a first working
                    development version of the future XMP metadata support (read-only).
                    The exiv2 interface is similar to those for Exif and IPTC metadata,
                    through new classes XmpData, Xmpdatum and XmpKey. It uses the Adobe
                    XMP toolkit to parse XMP packets (see README-XMP for more and the
                    download page on the website for instruction on how to use SVN - just
                    replace trunk with branches/xmp).

                    Now I'm looking for your feedback on the interface and desired
                    features and priorities. What are you actually going to use XMP for?

                    In particular, I'm wondering whether it's useful/desirable to have
                    type specific Exiv2 values for the different properties (e.g.
                    UShortValue, RationalValue), or whether the new XmpTextValue should be
                    used across the board for all (simple and array) XMP properties.

                    Also, ideas how to support XMP structure types would be very helpful.

                    Thanks,
                    Andreas




                  • Gilles Caulier
                    Andreas, First simple test to use Exiv2 command line tool work fine with Adobe XMP schema. Others schemas still unknow. I think we need to add new schema using
                    Message 9 of 18 , Aug 19, 2007
                      Andreas,

                      First simple test to use Exiv2 command line tool work fine with Adobe XMP schema. Others schemas still unknow. I think we need to add new schema using M$ and TIFF namespace. For ex:

                      [gilles@localhost metadata]$ exiv2 -px Autumn\ Leaves.jpg
                      Warning: Unknown XMP property `tiff:artist'; skipping property.
                      Warning: Unknown XMP property `tiff:copyright'; skipping property.
                      Warning: Unknown XMP property `tiff:copyright[1]'; skipping property.
                      Warning: Unknown XMP property `tiff:copyright[1]/?xml:lang'; skipping property.
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property Rating.
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property LastKeywordXMP.
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property LastKeywordXMP[1].
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property LastKeywordXMP[2].
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property LastKeywordXMP[3].
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property LensManufacturer.
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property FlashManufacturer.
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property LensModel.
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property FlashModel.
                      Warning: Unknown schema namespace http://ns.microsoft.com/photo/1.0; skipping property CameraSerialNumber.
                      Xmp.dc.creator                               XmpText    14  "Peter Miller"
                      Xmp.dc.title                                 XmpText    34  "Feuilles d'érable en automne."
                      Xmp.dc.subject                               XmpText    51  "Exemple" "Paysage" "Ceci est un test pour digiKam"
                      Xmp.xmp.Rating                               SLong       1  3
                      Xmp.exif.DateTimeOriginal                    XmpText    22  "2005-11-05T01:12:05Z"
                      Xmp.xmpMM.InstanceID                         XmpText    43  "uuid:faf5bdd5-ba3d-11da-ad31-d33d75182f1b"
                      [gilles@localhost metadata]$

                      I can take a look into source code using ExifTool Db as model for simple key entries (not complex struct and others stuff not yet supported). What do you think about ?

                      Gilles


                      2007/8/19, Gilles Caulier <caulier.gilles@...>:
                      Andreas,

                      Ok, now Exiv2-xmp is compiled to my computer. I will do review tests now...

                      Gilles


                      2007/8/19, Gilles Caulier < caulier.gilles@... >:
                      Andreas,

                      Ok, i understand. It's not a direct depency to Exiv2, but to XMP-SDK from Adobe used to serialize XMP metadata

                      I think than XMP-SDK manipulation is too complicated to handle it with EXIV2- XMP. Like you use only XMPCore component from this library, i recommend to copy this source code directly in Exiv2 core (in a subdir named "xmpsdk" for ex.) and adapt code like we need. This will solve the the external depency to XMP SDK and simplify the task to compile Exiv2 for packager.

                      Also, why not to use the XMPCore from "exempi" lib witch is a port of Adobe XMP-SDK to be compiled under 64 bits processors. If i remember, Adobe-SDK can be only compiled under 32 bits processors...

                      http://svn.gna.org/viewcvs/niepce/trunk/exempi/

                      Gilles Caulier


                      2007/8/19, Gilles Caulier < caulier.gilles@...>:
                      Andreas,

                      This is my first feedback. I'm trying to compile xmp branch...

                      libexpat is require to compile EXIV2-XMP. I have not seen an error message given by .configure if it not been installed.

                      Gilles

                      2007/8/16, Andreas Huggel <ahuggel@...>:

                      In branches/xmp of the SVN repository, there is now a first working
                      development version of the future XMP metadata support (read-only).
                      The exiv2 interface is similar to those for Exif and IPTC metadata,
                      through new classes XmpData, Xmpdatum and XmpKey. It uses the Adobe
                      XMP toolkit to parse XMP packets (see README-XMP for more and the
                      download page on the website for instruction on how to use SVN - just
                      replace trunk with branches/xmp).

                      Now I'm looking for your feedback on the interface and desired
                      features and priorities. What are you actually going to use XMP for?

                      In particular, I'm wondering whether it's useful/desirable to have
                      type specific Exiv2 values for the different properties (e.g.
                      UShortValue, RationalValue), or whether the new XmpTextValue should be
                      used across the board for all (simple and array) XMP properties.

                      Also, ideas how to support XMP structure types would be very helpful.

                      Thanks,
                      Andreas





                    • Andreas Huggel
                      ... Gilles, Also have a look at the file properties.cpp. You will see the idea very quickly. It s all for whatever schemas are necessary. It s just work to add
                      Message 10 of 18 , Aug 19, 2007
                        > First simple test to use Exiv2 command line tool work fine with Adobe XMP
                        > schema. Others schemas still unknow. I think we need to add new schema
                        > using
                        > M$ and TIFF namespace. For ex:

                        Gilles,

                        Also have a look at the file properties.cpp. You will see the idea very quickly. It's all for whatever schemas are necessary. It's just work to add the properties. Boring work...
                        But maybe I need to come up with a way to deal with unknown properties in a known schema, like those TIFF properties in your example.

                        BTW, to everybody, please send me XMP data. You can use the exiv2 utility to extrat the XMP packet and just send that. Thanks!

                        -ahu.

                        --
                        Psssst! Schon vom neuen GMX MultiMessenger gehört?
                        Der kanns mit allen: http://www.gmx.net/de/go/multimessenger
                      • Andreas Huggel
                        ... These should be tiff:Artist and tiff:Copyright in the source XMP packet. XML tags are case sensitive and I couldn t find anything in the XMP specification
                        Message 11 of 18 , Aug 19, 2007
                          > [gilles@localhost metadata]$ exiv2 -px Autumn\ Leaves.jpg
                          > Warning: Unknown XMP property `tiff:artist'; skipping property.
                          > Warning: Unknown XMP property `tiff:copyright'; skipping property.

                          These should be tiff:Artist and tiff:Copyright in the source XMP
                          packet. XML tags are case sensitive and I couldn't find anything in
                          the XMP specification that says that XMP properties are not.

                          What software was used to write the XMP?

                          -ahu.
                        • Gilles Caulier
                          ... Default and basic Microsoft Photo Manager under M$ Vista... In fact, I have just played with this software and the default desktop background JPG images
                          Message 12 of 18 , Aug 19, 2007
                            >These should be tiff:Artist and tiff:Copyright in the source XMP
                            >packet. XML tags are case sensitive and I couldn't find anything in
                            >the XMP specification that says that XMP properties are not.

                            >What software was used to write the XMP?

                            Default and basic Microsoft Photo Manager under M$ Vista...

                            In fact, I have just played with this software and the default desktop background JPG images provided by M$ Vista. You can found all pictures in my repository :

                            http://digikam3rdparty.free.fr/TEST_IMAGES/METADATA/Vista/

                            Gilles

                            2007/8/19, Andreas Huggel < ahuggel@...>:

                            > [gilles@localhost metadata]$ exiv2 -px Autumn\ Leaves.jpg
                            > Warning: Unknown XMP property `tiff:artist'; skipping property.
                            > Warning: Unknown XMP property `tiff:copyright'; skipping property.

                            These should be tiff:Artist and tiff:Copyright in the source XMP
                            packet. XML tags are case sensitive and I couldn't find anything in
                            the XMP specification that says that XMP properties are not.

                            What software was used to write the XMP?

                            -ahu.


                          • Gilles Caulier
                            Andreas, In digiKam, with my exiv2 interface (libkexiv2), i have forced to decode XMP string tag value to UTF8 (the most common) like this : for
                            Message 13 of 18 , Aug 23, 2007
                              Andreas,

                              In digiKam, with my exiv2 interface (libkexiv2), i have forced to decode XMP string tag value to UTF8 (the most common) like this :

                                      for (Exiv2::XmpData::iterator md = xmpData.begin(); md != xmpData.end (); ++md)
                                      {
                                          QString key = QString::fromAscii(md->key().c_str());

                                          // Decode the tag value with a user friendly output.
                                          std::ostringstream os;
                                          os << *md;
                                          QString value = QString::fromUtf8(os.str().c_str());
                                      ...
                                      }

                              This is work but it's not enough. If i'm not too wrong, XMP can store data with different encoding : UTF-8, UTF-16, or UTF-32.

                              Currently, there is no way to know the char. encoding used by an XMPData object. Right ?

                              Gilles


                              2007/8/16, Andreas Huggel <ahuggel@... >:

                              In branches/xmp of the SVN repository, there is now a first working
                              development version of the future XMP metadata support (read-only).
                              The exiv2 interface is similar to those for Exif and IPTC metadata,
                              through new classes XmpData, Xmpdatum and XmpKey. It uses the Adobe
                              XMP toolkit to parse XMP packets (see README-XMP for more and the
                              download page on the website for instruction on how to use SVN - just
                              replace trunk with branches/xmp).

                              Now I'm looking for your feedback on the interface and desired
                              features and priorities. What are you actually going to use XMP for?

                              In particular, I'm wondering whether it's useful/desirable to have
                              type specific Exiv2 values for the different properties (e.g.
                              UShortValue, RationalValue), or whether the new XmpTextValue should be
                              used across the board for all (simple and array) XMP properties.

                              Also, ideas how to support XMP structure types would be very helpful.

                              Thanks,
                              Andreas


                            • Andreas Huggel
                              According to the XMP Toolkit API documentation: # All strings passed as parameters must be UTF-8. # All strings returned will be UTF-8. Do you have any images
                              Message 14 of 18 , Aug 23, 2007
                                According to the XMP Toolkit API documentation:

                                # All strings passed as parameters must be UTF-8.
                                # All strings returned will be UTF-8.

                                Do you have any images to test that with?

                                -ahu.

                                On Thursday 23 August 2007 15:44, Gilles Caulier wrote:
                                > Andreas,
                                >
                                > In digiKam, with my exiv2 interface (libkexiv2), i have forced to
                                > decode XMP string tag value to UTF8 (the most common) like this :
                                >
                                > for (Exiv2::XmpData::iterator md = xmpData.begin(); md !=
                                > xmpData.end(); ++md)
                                > {
                                > QString key = QString::fromAscii(md->key().c_str());
                                >
                                > // Decode the tag value with a user friendly output.
                                > std::ostringstream os;
                                > os << *md;
                                > QString value = QString::fromUtf8(os.str().c_str());
                                > ...
                                > }
                                >
                                > This is work but it's not enough. If i'm not too wrong, XMP can store
                                > data with different encoding : UTF-8, UTF-16, or UTF-32.
                                >
                                > Currently, there is no way to know the char. encoding used by an
                                > XMPData object. Right ?
                                >
                                > Gilles
                                >
                                > 2007/8/16, Andreas Huggel <ahuggel@...>:
                                > > In branches/xmp of the SVN repository, there is now a first
                                > > working development version of the future XMP metadata support
                                > > (read-only). The exiv2 interface is similar to those for Exif and
                                > > IPTC metadata, through new classes XmpData, Xmpdatum and XmpKey. It
                                > > uses the Adobe XMP toolkit to parse XMP packets (see README-XMP for
                                > > more and the download page on the website for instruction on how to
                                > > use SVN - just replace trunk with branches/xmp).
                                > >
                                > > Now I'm looking for your feedback on the interface and desired
                                > > features and priorities. What are you actually going to use XMP
                                > > for?
                                > >
                                > > In particular, I'm wondering whether it's useful/desirable to have
                                > > type specific Exiv2 values for the different properties (e.g.
                                > > UShortValue, RationalValue), or whether the new XmpTextValue should
                                > > be used across the board for all (simple and array) XMP properties.
                                > >
                                > > Also, ideas how to support XMP structure types would be very
                                > > helpful.
                                > >
                                > > Thanks,
                                > > Andreas
                              • Gilles Caulier
                                No, I have just read the XMP spec (:=))). Look at page #32 of this document ... http://www.adobe.com/devnet/xmp/pdfs/xmp_specification.pdf ... and especially
                                Message 15 of 18 , Aug 23, 2007
                                  No, I have just read the XMP spec (:=))). Look at page #32 of this document :

                                  http://www.adobe.com/devnet/xmp/pdfs/xmp_specification.pdf

                                  ... and especially the Attribute: begin section...

                                  Gilles

                                  2007/8/23, Andreas Huggel <ahuggel@...>:

                                  According to the XMP Toolkit API documentation:

                                  # All strings passed as parameters must be UTF-8.
                                  # All strings returned will be UTF-8.

                                  Do you have any images to test that with?




                                   

                                  -ahu.


                                • Andreas Huggel
                                  Yes, the way I understand this is that the XMP Toolkit does the conversion from/to UTF-8, so that the user doesn t need to deal with different encodings. Just
                                  Message 16 of 18 , Aug 23, 2007
                                    Yes, the way I understand this is that the XMP Toolkit does the
                                    conversion from/to UTF-8, so that the user doesn't need to deal with
                                    different encodings. Just UTF-8. But I have no image with which I could
                                    test and see if that's really the case.

                                    -ahu.

                                    On Thursday 23 August 2007 20:33, Gilles Caulier wrote:
                                    > No, I have just read the XMP spec (:=))). Look at page #32 of this
                                    > document
                                    >
                                    >
                                    > http://www.adobe.com/devnet/xmp/pdfs/xmp_specification.pdf
                                    >
                                    > ... and especially the Attribute: begin section...
                                    >
                                    > Gilles
                                    >
                                    > 2007/8/23, Andreas Huggel <ahuggel@...>:
                                    > > According to the XMP Toolkit API documentation:
                                    > >
                                    > > # All strings passed as parameters must be UTF-8.
                                    > > # All strings returned will be UTF-8.
                                    > >
                                    > > Do you have any images to test that with?
                                    >
                                    > -ahu.
                                  • Klemens Friedl
                                    Adobe XMP sdk/toolkit vs. Exempi Exempi is based on Adobe XMP SDK 4.1.1 and release under a BSD-style license like Adobe s. The 3 clause BSD (aka New-BSD)
                                    Message 17 of 18 , Sep 9, 2007
                                      Adobe XMP sdk/toolkit vs. Exempi

                                      Exempi is based on Adobe XMP SDK 4.1.1 and release under a BSD-style
                                      license like Adobe's. The 3 clause BSD (aka New-BSD) license is
                                      compatible with GPL.

                                      Basicly, Exempi is a fork of Adobe XMP sdk/toolkit that including
                                      fixes to actually work on Linux and to compile on other architecture
                                      as well. All the fixes have been sent to Adobe anyway, just that they
                                      don't bother to maintain and fix it.

                                      Exempi has also a STABLE API to make it a shared library, which the Adobe
                                      SDK does not really do.

                                      http://libopenraw.freedesktop.org/wiki/Exempi

                                      Maybe you can have a look at it.
                                    • Andreas Huggel
                                      ... AFAICS exempi is a C-wrapper for the XMP Toolkit, which in the case of Exiv2 is really not needed. For the time being we will incorporate the required
                                      Message 18 of 18 , Sep 9, 2007
                                        On Monday 10 September 2007 04:38, Klemens Friedl wrote:
                                        > Adobe XMP sdk/toolkit vs. Exempi

                                        AFAICS exempi is a C-wrapper for the XMP Toolkit, which in the case of
                                        Exiv2 is really not needed.

                                        For the time being we will incorporate the required parts of the XMP
                                        Toolkit (XMPCore) into Exiv2 (in a new xmdsdk directory in the
                                        distribution) and use them directly. That will limit the additional
                                        dependencies to expat.

                                        -ahu.
                                      Your message has been successfully submitted and will be delivered to recipients shortly.