BD-J

BD-J, or Blu-ray Disc Java, is a specification supporting Java ME (specifically the Personal Basis Profile of the Connected Device Configuration or CDC) Xlets for advanced content on Blu-ray Disc and the Packaged Media profile of Globally Executable MHP (GEM).

BD-J allows for more sophisticated bonus content on Blu-ray Disc titles than standard DVD, including network access, picture-in-picture, and access to expanded local storage. Collectively, these features (other than internet access) are referred to as "Bonus View", and the addition of internet access is called "BD Live". BD-J was developed by the Blu-ray Disc Association. All Blu-ray Disc players supporting video content are required by the specification to support BD-J.[1] Starting on October 31, 2007, all new players are required to have hardware support for the "Bonus View" features, but the players may require future firmware updates to enable the aforementioned features. "BD Live" support is always optional for a BD player.[2]

Sony's PlayStation 3 has been the de facto leader in compliance and support of BD-J, adding Blu-ray Profile 1.1 support with a firmware upgrade used to showcase BD-Live at CES 2008.

BD-J Xlet capabilities

  • The invocation of BD-J Xlets are triggered by events occurring around them—for example, by the selection of a film title or by the insertion of a new disc. Xlets in turn can then call other Xlets into play.
  • Security in BD-J is based on the Java platform security model. That is, signed applications in JARs can perform more tasks than non-signed, such as Read/Write access to local storage, network access, selection of other titles on the BD-ROM disc, and control of other running BD-J applications.
  • Xlets (as part of the CDC Personal Basis Profile) have no GUI (i.e. no AWT widgets such as java.awt.Button), so additional classes are called into play for generating animation and GUI. The BD-J uses the Havi UI device model and widget set for remote control use, but it is extended to allow for the BD supported resolutions and BD supported A/V controls.
  • BD-J has classes that allow the user to synchronize accurately to specific frames in the film.
  • There are two types of video synchronizations allowed, one called "loose synchronization", which uses a call back method and is accurate to within several frames of the event, and the other being "tight synchronization", which uses the package org.bluray. Tight synchronization allows applications to synchronize accurately to the exact frame using timecodes from the package javax.media.Time of JMF (Java Media Framework).
  • 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 high-definition movie (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.
  • 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.
  • 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 film—or as a reaction to any event generated by a BD-J Application.
  • Authenticated applications can use a (signed) permission request file to acquire permissions that go beyond the BD-J sandbox. Permissions can be acquired for:
    • Reading and writing to local and system storage
    • Using the network connection (to connect to defined servers)
    • Access of the file system on the BD-ROM disc
    • Title selection of other titles on the BD-ROM disc
    • Control of other running BD-J applications
  • BD-J applications can use the java.net 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 websites to which the application will go are under full control of the Content Provider. This control is guaranteed in two ways:
    • Only (disc) authenticated BD-J applications are allowed to run when the disc is played. The application controls the use of the network connection.
    • In addition, permissions defined on the disc can restrict the use of the (TCP/IP) network connection to certain sites.
  • 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.

Content development

Content authors have a variety of development strategies available, including the use of traditional Integrated Development Environments (IDEs) like NetBeans or Eclipse, non-programming graphical environments similar to Macromedia Director, or via rendering engines which consume standard data formats such as HTML, XML, or SVG. Having a full programming environment available on every Blu-ray Disc player provides developers with a platform for creating content types not bound by the restrictions of standard DVD. In addition to the standard BD-J APIs, developers may make use of existing Java libraries and application frameworks, assuming they do not use features outside the constraints of the BD-J platform, include that Java ME only supports Java version 1.3 class files.

A set of freely available tools that allow Java developers to produce complete disc images incorporating BD-J is available from the HD Cookbook Project.[3] In order to test content in a typical development environment (MS Windows), one needs either a PlayStation 3 or a third-party software player for Windows, paying attention to player versions to ensure that the player supports BD-J.[4][5][6]

Because of the many different standards and components involved, creating unified documentation on BD-J has proven to be a challenge.[7][8]

Sample code

The BD-J environment is designed to run Xlets with non-javax.* packages available to take advantage of the features particular to this platform beyond that defined by Java TV.

Even a simple example such as FirstBDJApp.[9]

A developer might choose to use not javax.* packages and instead use:

  1. HAVi classes in package tree org.havi.*: alternative classes to obtain, for example, an org.havi.ui.HScene far beyond what is provided by javax.tv.graphics.TVContainer (they are both extensions of java.awt.Container)
  2. Digital Video Broadcasting (DVB) classes in package tree org.dvb.*: alternative classes to, for example, the org.dvb.event.UserEventListener interface rather than java.awt.event.KeyListener for support for key presses and keycodes specific to popular CDC devices.
  3. Blu-ray Disc classes in the package tree org.bluray.*: the DAVIC and DVB classes depend upon to recognize additional events peculiar to the BD-J platform such as popup menus and to locate media on the Blu-ray disc.
  4. DAVIC API classes in package tree org.davic.*: A small set of classes wrapping or extending other network and media resources peculiar to interactive TV the HAVi, DVB and Blu-ray classes use for locators and specialized exceptions beyond the realm of JMF (such as content authorization).

A working example of a program using some features from each of the class trees would be the BdjGunBunny Xlet (a very simple version of Space Invaders using an image of a rabbit as the shooter and turtles as the targets) provided as an example in the Java ME 3.0 SDK.

import javax.tv.xlet.XletContext;

import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;

import java.awt.Container;
import javax.tv.graphics.TVContainer;

// Getting a container for the screen could be

public void initXlet(XletContext context) {

// Java TV API to be compatible with Java TV
TVContainer scene = TVContainer.getRootContainer(context);

// Or for BD-J, to utilize HAVi features not available in Java TV
HScene scene = HSceneFactory.getInstance().getDefaultHScene();

// Or perhaps more generally...
Container container = null;
boolean realBDJ = true;
if (realBDJ)
	container = HSceneFactory.getInstance().getDefaultHScene();
else
	container = TVContainer.getRootContainer(context);
...
}

And the same for the other non-javax.* packages. Likewise, when trying to play a video, one might call the Blu-ray and DAVIC utility rather than using generic JMF:

import javax.media.Player;
import org.bluray.net.BDLocator;
import org.davic.media.MediaLocator;

   MediaLocator stars = new MediaLocator(new BDLocator("bd://0.PLAYLIST:00003"));
   Player player = Manager.createPlayer(stars);

// Rather than traditional and portable but more limited pure JMF

import java.net.URL;
import javax.media.Manager;
import javax.media.Player;

    Player mediaPlayer = Manager.createRealizedPlayer( new URL("file:/mymovie.mov" ));
  • Programming HD DVD and Blu-ray Disc The HD Cookbook (2008) by Michael Zink, Philip C. Starner, Bill Foote - ISBN 978-0-07-149670-4 - book website

See also

References

  1. ^ "Blu-ray BD-J Application Development using Java ME". Archived from the original on 2008-09-11. Retrieved 2008-10-21.
  2. ^ "Blu-ray Disc Assn. promotes new Bonus View".
  3. ^ [hdcookbook.jovial.com/ HDCookbook for BD-J]
  4. ^ "Blu-ray Disc Java and GEM/MHP/OCAP Authoring Notes and Guidelines". Archived from the original on 2008-12-24. Retrieved 2008-10-21.
  5. ^ Getting (BD-J) PC Player software Archived 2008-12-24 at the Wayback Machine - mentions that special "developer versions" of the play might be required
  6. ^ HelloWorld BD-J Application: Your first cup for the next generation DVD Archived 2009-02-07 at the Wayback Machine - includes notes on enabling remote debugging or logging with PC players
  7. ^ Building Javadoc API Reference Documentation for Blu-ray Disc Application Development
  8. ^ "Getting a BD-J Platform Definition". Archived from the original on 2008-12-24. Retrieved 2008-10-21.
  9. ^ Blu-ray Disc Application Development with Java ME, Part 1: Creating Your First Application Bruce Hopkins, September 2008

Read other articles:

George C. Marshall, mantan Menteri Luar Negeri dan Menteri Pertahanan Amerika Serikat, Beasiswa Marshall diambil dari namanya. Beasiswa Marshall adalah beasiswa pascasarjana bagi anak muda Amerika yang terpandang secara intelektual dan pemimpin masa depan negara mereka untuk belajar di universitas mana pun di Inggris Raya.[1] Beasiswa ini dibuat oleh Parlemen Inggris pada tahun 1953 sebagai hadiah hidup untuk Amerika Serikat sebagai pengakuan atas kemurahan hati Menteri Luar Negeri Ge...

 

 

Expansion of the EU   EU member states in 2004  New EU member states admitted in 2004 Part of a series on the History of theEuropean Union Timeline Pre-1948 ideas 1948–1957 1958–1972 1973–1993 1993–2004 2004–present Organisation European Communities (1958–2009) European Coal and Steel Community (1952–2002) European Economic Community (1958–1993) European Atomic Energy Community (1958–present) European Community (1993–2009) Justice and Home Affairs (1993...

 

 

Kepulauan DiomedeNama lokal: bahasa Rusia: острова ГвоздеваInupiaq: IgnalukKepulauan Diomede: Diomede Kecil (kiri) dan Diomede Besar (kanan).Citra Selat Bering dari satelit, dengan Kepulauan Diomede di tengahnyaGeografiLokasiSelat BeringKoordinat65°47′N 169°01′W / 65.783°N 169.017°W / 65.783; -169.017Koordinat: 65°47′N 169°01′W / 65.783°N 169.017°W / 65.783; -169.017Jumlah pulau2PemerintahanNegara Amerika ...

Not to be confused with KNDU or WUND-TV. NBC affiliate in South Bend, Indiana WNDU-TVSouth Bend–Elkhart, IndianaUnited StatesCitySouth Bend, IndianaChannelsDigital: 27 (UHF)Virtual: 16BrandingWNDU 16; 16 News NowProgrammingAffiliations16.1: NBCfor others, see § SubchannelsOwnershipOwnerGray Television(Gray Television Licensee, LLC)Sister stationsWSJVHistoryFirst air dateJuly 15, 1955 (68 years ago) (1955-07-15)Former channel number(s)Analog: 46 (UHF, 1955–1957), 16 (U...

 

 

Questa voce o sezione sull'argomento centri abitati della Spagna non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. Talayuelacomune Talayuela – Veduta LocalizzazioneStato Spagna Comunità autonoma Estremadura Provincia Cáceres TerritorioCoordinate39°58′00.12″N 5°36′00″W / &#...

 

 

37°00′00″N 45°19′00″E / 37°N 45.31666667°E / 37; 45.31666667 الكوتيينقرص لوغالاناتومجوتيوم جزء من سلسلة مقالات حولتاريخ العراق ما قبل التاريخ فترة العبيد ثقافة حسونة ثقافة أم الدباغية ثقافة حلف فترة حلف-العبيد الانتقالية ثقافة سامراء (إريدو) فترة أوروك عصر جمدة نصر العصر البرون�...

Not to be confused with Tatoosh Islands (Alaska). This article is about Tatoosh Island. For other uses, see Tatoosh. TatooshGeographyLocationMakah Reservation, Clallam County, Washington, United StatesCoordinates48°23′31″N 124°44′10″W / 48.39208°N 124.73618°W / 48.39208; -124.73618StateWashingtonCountyClallam CountyAdditional informationTatoosh IslandU.S. National Register of Historic Places Cape Flattery Light from offshoreLocationOff Cape Flattery, on Oly...

 

 

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Bioconservatism – news · newspapers · books · scholar · JSTOR (January 2019) (Learn how and when to remove ...

 

 

巨文島在全羅南道的位置 巨文島事件(韩语:거문도사건/巨文島事件),又称汉密尔顿港事件(英语:Port Hamilton incident),是1885年4月15日到1887年2月27日英國皇家海軍攻打朝鲜王朝巨文島(英国人称之为汉密尔顿港)的事件。[1] 背景 英、俄因爲阿富汗边界纠纷险些冲突。俄国兵船聚泊海参崴,英国恐其南下侵擾香港,打算在半路截住俄罗斯海军。[2] 过程 沙俄�...

GNU Binutils Тип инструментальное программное обеспечение, утилита и пакет GNU[вд] Разработчик Проект GNU Операционные системы GNU/Linux[2], BSD[d][2] и macOS[2] Последняя версия 2.42 (29 января 2024)[1] Репозиторий sourceware.org/git/binut… Лицензия GPL 3.0+[2], модифицирова�...

 

 

1996 video game This article is about the video game. For the series, see Quake (series). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Quake video game – news · newspapers · books · scholar · JSTOR (August 2017) (Learn how and when to remove this message) 1996 video gameQuakeDeveloper(s)id Software&#...

 

 

Italian engineer and architect Pietro Paolo FlorianiMonument to Pietro Paolo Floriani erected in 2009 at Floriana, MaltaBorn26 April 1585MacerataDied27 May 1638(1638-05-27) (aged 53)FerraraNationalityItalian Pietro Paolo Floriani (26 April 1585 – 27 May 1638) was an Italian engineer and architect who designed military and theatrical buildings.[1] Life and work Floriani was born on 26 April 1585 in the town of Macerata to Pompeo Floriani and Claudia Rotelli. In 1606 he married M...

Road in Ireland For others roads called N6, see N6 (disambiguation). See also: M6 motorway (Ireland) This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (January 2009) (Learn how and when to remove this message) N6 roadBóthar N6Route informationLength147.99 km (91.96 mi)LocationCountryIrelandPrimarydestinations(by...

 

 

Elections in New Jersey Federal government U.S. President 1788-89 1792 1796 1800 1804 1808 1812 1816 1820 1824 1828 1832 1836 1840 1844 1848 1852 1856 1860 1864 1868 1872 1876 1880 1884 1888 1892 1896 1900 1904 1908 1912 1916 1920 1924 1928 1932 1936 1940 1944 1948 1952 1956 1960 1964 1968 1972 1976 1980 1984 1988 1992 1996 2000 2004 Dem 2008 Rep Dem 2012 2016 Dem 2020 Dem 2024 Rep U.S. Senate 1788 1790 1790 (sp) 1792 1796 1796 (sp) 1798 1799 (sp) 1801 (sp) 1803 (sp) 1804 1808 1809 1809 (sp)...

 

 

American football player and sprinter (1942–2002) American football player Bob HayesNo. 22Position:Wide receiverPersonal informationBorn:(1942-12-20)December 20, 1942Jacksonville, Florida, U.S.Died:September 18, 2002(2002-09-18) (aged 59)Jacksonville, Florida, U.S.Height:5 ft 11 in (1.80 m)Weight:185 lb (84 kg)Career informationHigh school:Matthew Gilbert (Jacksonville)College:Florida A&MNFL draft:1964 / Round: 7 / Pick: 88AFL draft:1964...

В статье не хватает ссылок на источники (см. рекомендации по поиску). Информация должна быть проверяема, иначе она может быть удалена. Вы можете отредактировать статью, добавив ссылки на авторитетные источники в виде сносок. (6 февраля 2019) Модульный программируемый логиче�...

 

 

Eredivisie2011-2012 Généralités Sport Football Édition 56 e Lieu(x) Pays-Bas Participants 18 équipes Matchs joués 306 Site web officiel Site officiel Palmarès Tenant du titre Ajax Amsterdam Promu(s) en début de saison RKC Waalwijk Vainqueur Ajax Amsterdam Meilleur(s) buteur(s) Bas Dost (32) Meilleur(s) passeur(s) Luciano Narsingh (16) Navigation Eredivisie 2010-2011 Eredivisie 2012-2013 modifier La saison 2011-2012 de Eredivisie est la cinquante-sixième édition de la première divi...

 

 

CV-42 «Франклин Д. Рузвельт» до модернизации по проекту SCB-110 (1950) … после модернизации (1967) SCB-110 — программа ВМС США по модернизации авианосцев типа «Мидуэй», которая проводилась с 1954 по 1960 год. Программа включала установку угловой посадочной палубы, усиление палубы, ка...

Official flag of the German state of Baden-Württemberg You can help expand this article with text translated from the corresponding article in German. (November 2022) Click [show] for important translation instructions. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text into the English Wikipe...

 

 

Questa voce o sezione sugli argomenti aziende di telecomunicazioni e aziende canadesi non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Rogers Communications Inc.Logo La sede di Rogers a Toronto, Canada Stato Canada Forma societariaPublic company Borse valori Borsa di Toronto: RCI.A Borsa di Toronto: RCI.B NYSE: RCI ISINCA7751092007 Fon...