Blu-ray BD-J Application Development using Java MEHome --> Specifications to BD-J Specifications to BD-JNote: Specifications below are copyright to the Blu-ray Disc Association. How-to guides to programming are found here. What is BD-J? BD-J refers to the application programming environment that support Blu-ray systems, and allows Content Providers to deliver highly-interactive, highly-programmable titles to end users. BD-J is based on the Personal Basis Profile (PBP) of the CDC Configuration of Java ME, and earlier on the JavaTV specifications. A BD-J application is a Java Xlet which is controlled by the BD-ROM player’s Application Manager through its Xlet interface. Just like in many other Java ME environments, the Xlet interface has several states - in this case, the Xlet can be in the loaded, paused, active and destroyed states. Once an Xlet is destroyed, any resources allocated to it, such as memory and AV control, are released. Application Execution / Management A key concept of BD-J is the BD-J Object. A BD-J Object is a Java Xlet that is registered in the Application Management Table (AMT). Each Title on a disc or even the disc itself can have an associated AMT. At least one application in the AMT must be signaled as “autostart”. This application will be started when the corresponding Title is selected and from thereon the BD-J platform is used by the BD-J application. This could include selecting another Title and launching other applications signaled in the AMT or downloading from the Internet. GUI framework and User Interface BD-J includes a GUI framework that is suitable for a CE environment. A BD-J application’s GUI can be operated with a remote control with a required set of keys and an optional pointing device. The set of required keys includes at least the keys needed to support the User Operations in HDMV applications. The GUI framework in BD-J includes the HAVi(6) UI framework mandated by [GEM]; it is not a desktop GUI framework like Swing or AWT. The GUI framework is based on the core of AWT as specified by PBP, but the widget set includes mechanisms for remote control navigation from GEM and easy customization of look and feel from HAVi. Device model & HAVi BD-J includes the HAVi device model that maps to the BD-ROM system resources. One of the devices supported in the model is the Screen device that is build up of a Background Device, a Video Device and a Graphics Device. Supported resolutions of the devices are compatible with the supported video format resolutions. The Graphics Device uses a 32-bit color RGB color model. BD-J graphics can use alpha for overlay with video. Additionally, the video can be scaled behind the BD-J graphics and the video background device can display a single image. AV Playback and Navigation and Subtitle/Audio Language Control BD-J includes a media framework similar to JMF for the playback of media content related to the BD-ROM disc. It is assumed that the BD-ROM disc will be the prime source for media files, but it will not be the only one; other sources could be the studio’s web server and local storage. The unit of playback in BD-J is the Playlist, just as in HDMV. All features of HDMV, except Interactive Graphics, can be used by a BD-J Application. HDMV Interactive Graphics is replaced by BD-J graphics. Supported features include video, audio, Presentation Graphics, Text Subtitle component selection, media-time and playback-rate (trick-mode) control. The BD-J Video Device is a combination of the HDMV Video and Presentation Graphics planes. Both Video and Presentation graphics will play back in the Video Device. AV Playback and Navigation and Subtitle/Audio Language Control BD-J includes standard Java libraries for decoding and displaying images in JFIF (JPEG), PNG and other image formats. These images can be displayed on the Java graphics plane using standard Java graphics functions. An image can also be rendered in the background plane using a BD-J specific package. Text can be rendered using standard Java text functions. These text-rendering functions are extended with a more advanced text layout manager that integrates with the BD-J UI framework. The text is rendered using a vector-based font either coming from the disc, the player (default font) or downloaded from the network. Button sounds from HDMV can also be used by the Java UI framework. Sound files can be loaded and rendered as a reaction to the user pressing a key, or as a reaction on a marked event related to the movie - or as a reaction to any event generated by a BD-J Application. Access control, security scheme, application authentication scheme The BD-J environment uses the Java 2 security model to authenticate signed applications and to grant them permissions that go beyond the core functions (the BD-J defined sandbox). The authentication scheme of BD-J applications is based on signing the JAR files that contain the applications. The relation between the authentication of BD-J applications coming from the disc and the BD Copy Protection System is out of scope for this paper, but an efficient workable scenario will be part of the BD-ROM Full Feature specification. The BD-J classloader will only load authenticated applications when the disc is in the player. Authenticated applications can use a (signed) permission request file to acquire permissions that go beyond the BD-J sandbox. Permissions can be acquired for:
Internet Connectivity & Download of New Contents/Applications BD-J contains the Java network package. Java applications can use this package to connect to servers on the Internet. The physical connection might differ between implementations e.g. Ethernet, telephone line, etc. At the network level, TCP/IP is supported and the HTTP protocol may be used. Moreover, the Java package for secure connections is included (JSSE) as part of the BD-J platform. Before a BD-J application can use the network connection, it must be authenticated and have suitable permission to use the network. The web sites to which the application will go are under full control of the Content Provider. This control is guaranteed in two ways:
System/Local Storage BD-J will include support for storage. Two flavors of storage are included – mandatory System Storage and optional Local Storage. All storage is accessed using methods from the Java IO package. The path for local storage is as specified by [GEM]. System storage is storage that will be present in all BD-J players. The required minimum size of this system storage will permit storage of application data like settings, high-scores etc. It will not be big enough to store downloaded AV material. For this purpose, optional local storage is available. Typically system storage will be implemented using Flash memory and the optional local storage will be implemented on a HDD. Since storage is a shared resource between all discs played on the player, Java access control is part of BD-J. BD-J applications can only access a disc specific part of the storage space and cannot access the part belonging to other discs. Copyright © 2007 RML. Java ME and other terms are trademarks or copyright of Sun Microsystems and/or other companies. Legal Stuff. |