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”

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…

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.

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.

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.

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.

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.

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.

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).

If you use Visual Studio, you will have to update all the directories (folders for includes, etc.) to your computer´s configuration.

Voila! It should compile.

To test the metadata engine, there is a .EXE application which needs three parameters to be run (log4cxx.properties, MXMConfiguration.xml properties and metadata.xml itself)…. You should create an adequate log4cxx.properties file, and you should change the parameters in the MXMConfiguration.xml to your choice (for example, change the folders etc.)

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.