Frequently Asked Questions – and their answers
MPEG-7 Library
- Q: Does the MPEG 7 Library include extractors for the visual or audio features?
- A: No, the library does not include feature extractors. If you are interested in extractors for the low-level features defined in the MPEG 7 standard, have a look at MPEG-7 Part-6: Reference Software: Experimentation Model (XM).
- Q: Can the library also be used with MS Visual C++ .NET?
- A: Yes, the library can be used with MS VC++ 6.0, .NET 2003 and .NET 2005 for unmanaged C++ applications. See question below for how to use the Mp7Jrs 2.x with MS VC++ .NET 2005.
- Q: Are there any special compiler or linker settings I have to enable when using the MPEG-7 library?
- A: In all projects where you use the MPEG-7 library you have to enable the Run Time Type Information (RTTI) in the compiler settings. You should link against multithreaded DLL runtime libraries.
- Q: Do I have to use any special libraries in connection with the MPEG-7 library?
- A: The current version of the MPEG-7 library requires Xerces 3.3.1. Your application using the MPEG-7 library must link against the same Xerces version.
- Q: I have problems validating MPEG-7 XML documents, the parser reports that namespace http://www.w3.org/XML/1998/namespace must have the prefix xml.
- A: The XML specification defines that the namespace http://www.w3.org/XML/1998/namespace is by default mapped to the prefix xml. This rule is obeyed by the definitions for this namespace available at the W3C site (both 1998 and 2001 version). xml-1998.xsd contains the definition of this namespace used in the MPEG-7 schemas. There this namespace is internally called x, violating the XML specification. Xerces does not accept this, but requires the W3C definition. Change the prefix in this file back to xml.
- Q: When using Win32 API includes, I keep getting compilation errors because of redefinition of DOM classes?
- A: A number of Win32 API includes use the MSXML header file, which contains forward declaration (without a namespace) that cause conflicts with Xerces types. Make sure to include the MPEG-7 library and/or Xerces header files before the Win32 API header files.
- Q: I’m using the JRS MPEG-7 Library under MS Visual Studio .NET 2003, using the .NET 2003 version of the JRS MPEG-7 library and Xerces 2.2.0. When I try to run the debug build of the test application, I get the message that the runtime libraries msvcrtd.dll and msvcirtd.dll are not found.
- A: The problem is caused by the Xerces XML parser. The Xerces 2.2.0 Binary distribution has been compiled using MSVC 6, which requires these runtime libraries. This version of Xerces cannot be compiled with VS .NET 2003, as it uses no longer supported parts of the C API. Solution: Please copy the required DLLs from an installation of MS VC++ 6.0 to Windows/System32 directory.
- Q: The code I have written using version 1.1x of the MPEG-7 Library does not compile with version 1.2 or 2.0. The compiler complains about Mp7JrsClass
- A: In order to make the library more extensible and flexible, the concept of a static enumeration of class IDs has been replaced by a dynamic list of type IDs. The type ID can be queried from the factory class using the type name:Mp7JrsFactory::GetTypeIndex(X("MyType")). This method call replaces the access to the class ID enumeration:Mp7JrsClass::MyType.
- Q: How can I use Mp7Jrs 2.x with MS Visual C++ .NET 2005?
- A: There is a build for MS Visual C++ .NET 2005. If you are using this version, make sure you use the Xerces build that is included or another one built with the same version of the compiler. If you are using the MS Visual C++ .NET 2003 distribution: In the application using the MPEG-7 library (such as the sample applications that come with Mp7Jrs), set “Treat wchar_t as Built-in type” to false in the C/C++ compiler settings under Language (as shown in the screenshot below). For using the debug version, you will also need the VC .NET 2003 (7.1) C/C++ debug runtime libraries.
- Q: I have problems getting the sample program running under Linux?
- A: There is a symbolic link for the library missing in the distribution. You can create it using ln -s mp7jrs2.2.0.so mp7jrs. Note that there is also a slight inconsistency in the documentation. The path include/extensions is mentioned there. It is not needed, so you don’t need to add it to your include path.
- Q: When using the debug version of the library, MS Visual C++ .NET 2005 reports: “Error: The Side-by-Side configuration information in mp7jrs2.2binMP7JRS2.2_W32_VC80D.DLL contains errors.”?
- A: The library has been compiled with Service Pack 1 for MS Visual Studio. NET 2005. Installing the service pack fixes the problem.
- Q: Is there a Java version of the library?
- A: No, but you can have a look at our howto for creating MPEG-7 Binding for Java with XMLBeans.
- Q: Why don’t you use newer versions of Xerces than 2.7.0?
- A: Because of a bug in the Xerces regular expression class (see JIRA id XERCESC-1870) introduced in 2.8.0 which is still unresolved in 3.0.1. This bug causes wrong results when dates and times are parsed.
Detailed Audiovisual Profile
If you have feedback concerning DAVP, please contact us at mpeg7lib@joanneum.at
Audiovisual Defect and Quality Description
If you have feedback concerning defect and quality description, please contact us at mpeg7lib@joanneum.at
You haven’t found the answer to your question?
If your question is not answered here, please contact us at mpeg7lib@joanneum.at