Generic Metadata Engine

August 25th, 2010

Dear all,
I’m happy to inform that we’ve successfully integrated (on win32 side) and commited on the mxm svn repo the Generic Metadata Engine.

It provides get and set functionality for a core set of MPEG-7 metadata properties of multimedia items, compatible with the set defined by the W3C Media Annotations WG. Using identifiers of segments, the engine can also be used to get and set metadata of arbitrary media fragments. The C++ implementation of the engine is based on the MPEG-7 library provided by JOANNEUM RESEARCH.

The documentation about this engine can be found on the svn repo on the “docs” folder and on the mxm site on the tab “Development Corner -> C++ build”

For any further information please contact the email address

angelo Uncategorized

Recent MXM Publications

July 30th, 2010

We have got a couple of MXM publications in books and journals recently we’d like to share. We do hope they help understanding the MXM and we also highlight some use cases:

  • Christian Timmerer, Filippo Chiariglione, Marius Preda, and Victor Rodriguez Doncel, Accelerating Media Business Developments with the MPEG Extensible Middleware, IEEE Multimedia, vol. 17 no. 3, pp. 74-78, July-September 2010. [IEEE-MM]
  • Víctor Rodríguez Doncel, Jaime Delgado, Filippo Chiariglione, Marius Preda and Christian Timmerer, Interoperable digital rights management based on the MPEG Extensible Middleware, Multimedia Tools and Applications, April 7, 2010. [Springer] [PDF]
  • Christian Timmerer, Filippo Chiariglione, Marius Preda, and Victor Rodriguez Doncel, Accelerating Media Business Developments with the MPEG Extensible Middleware, in: Georgios Tselentis, Alex Galis, Anastasius Gavras, Srdjan Krco, Volkmar Lotz, Elena Simperl, Burkhard Stiller, Theodore Zahariadis (eds.), Towards the Future Internet - Emerging Trends from European Research, IOS Press, pp. 217-226, 2010. [PDF] [IOSPress]

Please provide feedback in the comments section if you like…

Christian Timmerer News

Server Maintenance: Fri 19.2., 7pm to Sat 20.2., 11 am

February 17th, 2010

We are upgrading our hardware and, thus, this Web site is not available from Fri 19.2., 7pm to Sat 20.2., 11 am. We are sorry for any inconvenience this may cause.

Christian Timmerer General

MXM Specifications Updated

January 7th, 2010

The MXM specifications have been updated to “Study of FCD” level which means that we are going to Final Draft International Standard (FDIS) at the next meeting.


…and APIs available online have been updated too.

Please let us know if you have any comments. It is your last chance before the standards are going to be finally approved by MPEG. Of course, there is room and space for amendments and new editions but that is another story…

Christian Timmerer News

Accelerating Media Business Developments with the MPEG Extensible Middleware

November 26th, 2009

We had a poster presentation at the Future Internet Assembly in Stockholm which is provided here in a more general form.

Furthermore, we had a PowerPoint presentation running during the poster sessions which is also provided here:

Christian Timmerer News ,

MXM News from the 90th MPEG Meeting in Xi’an

November 3rd, 2009

The MXM session at the 90th MPEG Meeting in Xi’an, China concluded with a couple of very interesting features to be included into the MXM standard:

  • MPEG-7 Visual API is now covering both video and image media resources;
  • A basic MPEG-4 Audio API has been proposed supporting both encoding and decoding;
  • The Generic Metadata API has been revised in order to accommodate modifications within the W3C Media Annotation API;
  • The exception handling for C++ has been improved;
  • MXM protocol improvements and extensions
    • Improvement of the base protocol message;
    • Improvement of the IPMP tool protocols;
    • Addition of an Event Reporting Collecting Device and corresponding protocols;

We have also received a proposal for including a format identification engine which shall provide means for identifying the coding/transport format of a given bitstream. However, a few open issues needs to be solved before it can be included in the standard and the proponents are encouraged to provide a revised input at the next meeting.

Furthermore, we have produced a couple of so-called 1-pagers (or overview papers) which will appear at MPEG’s Technology Web site soon.

Currently, editors are working on the “Study of …” documents to incorporate the above mentioned additions. These documents have an editing period and we will post here once they are available.

Finally, an MXM presentation entitled Accelerating Media Business Developments has been given at the workshop at Xidian University the day after the 90th MPEG meeting closed.

Christian Timmerer News , , , , , , ,

Preliminary implementation of a Java LicenseProtocolEngine

October 6th, 2009

–by Filippo

A preliminary implementation of the LicenseProtocolEngine has been committed to the MXM svn repository. This can be used to perform the client and the server part of the MXM License Protocols defined in 23006-4:

  • On the client side, the engine can be used
    • to store License templates on a License Provider Device. See org.dmp.chillout.mxm.licenseprotocolengine.StoreLicenseProtocolDispatcher
    • to request a License to a License Provider Device. See org.dmp.chillout.mxm.licenseprotocolengine.AccessLicenseProtocolDispatcher
  • On the Server side, it can be used to parse the received messages and generate the response.

A very basic example of an MXM-based License Provider Device has also been provided in folder /JAVA/trunk/mxm-apps/chillout-mxm-lpd. After building the project using maven, the generated chillout-mxm-lpd-0.2.0.war file can be deployed under Tomcat. If the server is running, by visiting the URL http://localhost:8080/chillout-mxm-lpd/servlet/AxisServlet (or http://localhost:8080/chillout-mxm-lpd-0.2.0/servlet/AxisServlet depending on your Tomcat configuration) you will see the two services: StoreLicenseRequestProcessor and RequestLicenseProcessor up and running.

To test the client side of the LicenseProtocolEngine, the following test classes can be run as JUnit tests:


If the chillout-mxm-lpd web application is running, the tests will be executed successfully.

Thank you in advance for your feedback.

Christian Timmerer News ,

MPEG-M (MPEG Extensible Middleware) goes Final Committee Draft

September 24th, 2009

The MPEG Extensible Middleware (MXM) standard, formally known as ISO/IEC 23006, is currently at Final Committee Draft (FCD) stage. It comprises four parts, all are publicly available:

* … this part was previously known as ISO/IEC 29116-2 (Part 2 of the Supplemental Media Technologies) and has been recently moved to MXM.

Furthermore, the MXM license can be found here which basically adopts the BSD license as posted previously. Other publicly available documents - such as requirements, context & objectives, etc. - can be found under the “General” section elsewhere.

According to SC29, the FCD ballot is open until 9th of January 2010 but in case you have any questions or suggestions, please let us know by commenting here or joining the Ad-hoc Group (AhG). The next MPEG meeting is approaching and we expect that any MXM-related inputs will find their way into so-called “Study of …” documents of the respective standards. That is, intermediate versions of the individual parts that may form the basis when drafting the Final Draft International Standard (FDIS) which will probably happen in January 2010.

Christian Timmerer News , ,

Starting development in C++

July 9th, 2009

Not having a single line of code in this project in C++, and having successfully compiled the C++ projects, makes me an ideal commentor for “How to Start Development in C++”.

These are the stages you will have to follow.

  1. First, take a look at this previous post. .
  2. Obtain the code from the repository.
  3. Install a Visual C++ 2008 compiler. If you cannot pay the license, you can download the “Visual C++ 2008 Express” edition. It is free and it has everything you may need to start working.
  4. Install “log4cxx” and compile it. It is the equivalent of log4j in c++. You may be a hero, and correct the several bug this version has (unconceivable, but it is so). Or you may trust others heros who did it. The resulting log4cxx.dll file should be available in the PATH. Don´t forget making available the .lib files to the linker.
  5. Install “codexynthesis XSD“. It generates C++ wrappers from XSD schemas, much like JAXB does. It includes Xerces for C++, whose .lib should be available for the MXM projects. The XSD executable, should be available in the PATH also.
  6. Open the MXM projects from Visual Studio and compile. If you adore black screens, you can also install ant (or even worse, maven). But before, you should make Visual Studio binaries in the path, running VCVARS32.bat (available in the bin folder of Visual Studio).
  7. If you use Visual Studio, you will have to update all the directories (folders for includes, etc.) to your computer´s configuration.
  8. Voila! It should compile.
  9. To test the metadata engine, there is a .EXE application which needs three parameters to be run (, MXMConfiguration.xml properties and metadata.xml itself)…. You should create an adequate file, and you should change the parameters in the MXMConfiguration.xml to your choice (for example, change the folders etc.)
  10. Good luck!

victor News

C++ source code available

July 6th, 2009

A first release of the C++ source code for the modules mxm-coremxm-dataobject, basic-metadata-engine and metadata_mxm_test have been committed today on the MXM svn repository.

The committed source code can be retrieved with an svn-update and it’s located in

The project files for win32 (visual studio 9.0) are located in

The project files for linux (g++) are located in

With the mxm_core you can enjoy loading and managing the different MXM engines in a common enviroment. The mxm_dataobject can be used to wrap a generic MXM schema in a set of C++ classes. The basic_metadata_engine is a very simple implementation of the MXM MetadataEngine (it retrieves the mpeg-7 title of a mpeg-7 document) and can be used as an example on how to create a MXM engine. Finally, the metadata_mxm_test is deployed to test the basic_metadata_engine.

Any information regarding the MXM C++ source code can be found here:

Enjoy the MXM C++ code :)

angelo News