Is feature xxx supported?
The guys writing XleTView have lives outside the project, and so not all of the features in MHP have been implemented yet. If you need to know whether a particular feature is supported, then the following lists may help you.
The following features are not yet implemented in XleTView:
- MPEG video
- Loading applications from a transport stream
- The org.dvb.si and JavaTV SI APIs
- Object carousel support
- Section filtering
- Inter-Xlet communication
- Application lifecycle control
- Video drips
- Support for dvb:// locators
- The tuning API
- Service selection
- Access to CA information
- Security
The following features are supported in XleTView
- Basic application lifecycle
- Playing video and audio with JMF (using file:// locators only)
- Many of the HAVi classes
- The resource management API
- User preferences
- The MHP return channel interface
- Use of MPEG I-Frames in backgrounds
The behaviour of the following features may be slightly different between XleTView and a real MHP implementation:
- JMF
- Use of MPEG I-Frames in backgrounds (see below)
A detailed look at the current implementation status of MHP features in XleTView is available from the XleTView project page. If you need a feature that is not yet implemented, think about implementing it yourself and contributing it to the project. That way you can help all of the other MHP and OCAP developers out there.
Using video with XleTView
XleTView uses Sun’s version of JMF 1.0 for playing video, which has a few restrictions that developers should be aware of. This implementation is written entirely in Java, and so performance may not be very good. This is the price to be paid for allowing XleTView to run on any platform, and the exact performance penalty will be different in every case.
This implementation only supports AVI files encoded using the Cinepak codec. This means that MPEG video clips will not work with XleTView at the moment. The RAD video tools will let you convert your MPEG video files into Cinepak-compressed AVI, which will allow you to use them with XleTView.
All video should have a resolution of 720×576 pixels (PAL resolution) in order to map correctly on to the display.
Since dvb:// locators are not yet supported by XleTView, applications must use file:// locators to play the video file in JMF. Note that this is different from a real MHP implementation, where playing video from a file is not supported. Sample code for playing video in XleTView is available from the code archive.
Using MPEG I-frames
MHP allows applications to set a background image for the application using MPEG I-frames. XleTView does not completely support this functionality, although the differences may not be noticeable in your source code. In version 0.3.6 and earlier, XleTView uses JPEG images as a substitute for I-Frames. All you need to do is put a JPEG copy of your background image (with a .jpg extension) in the same directory as your real background image.
I-frames are supported in the current CVS version of XleTView, and will be in the next stable release. If you want to use this functionality right now, you will need to download the source code from CVS.
Creating I-frames and video drips
Although video drips are not yet supported by XleTView, many people are not sure how to create them. Both MPEG I-frames and video drips can be created with the MPEG Software Simulation Group’s MPEG encoder. While this is not the most friendly too for generating MPEG, it is one of the most flexible. By creating an appropriate parameter file, you can encode one or more images into an MPEG file suitable for use with XleTView or other MHP implementations.
Where to ask for help
If you have any problems with XleTView, there are a few places where you can ask for help:
- The XleTView forums are the most obvious place to try. The XleTView project team are regular readers and posters, who are often able to help you.
- The Sun JavaTV forum has a number of posters who use XleTView, and who may be able to help.
- The official MHP forum has a few posters who use XleTView, but this is the best place for finding the official word on MHP functionality.
Despite having written this guide, I am probably not the best person to ask. If all else fails you can try asking me, but I’m unlikely to do a better job of answering your question than the folks at the forums above. I am a regular reader of the last two forums, so if you’ve posted your question there and not received an answer, I probably can’t help you.