Frequently Asked Questions for HD Cookbook Open Source Project



  1. What is this site about?

  2. Why the name "HD Cookbook"?

  3. Who is the target audience for this project?

  4. What tools does this project provide?

  5. What sample code does this project provide?

  6. How do you decide what to provide in the project?

  7. What skills do I need to have to use the repository effectively?

  8. How can I get started with running my Java application on Playstation 3 (PS3)?

  9. I'm new to the Java programming language, can I still use hdcookbook?

  10. What additional resources do I need for BD-J development environment in order to use hdcookbook?

  11. What is the GRIN framework? How is it useful to me?

  12. Can I use hdcookbook resources for other GEM based development environents such as MHP or OCAP?

  13. What does the sumo wrestler logo mean?



  • What is this site about?

    It's a collaborative community space for promoting Java content on blu-ray disc (BD) players. We also wish to promote content for GEM-based platforms other than BD-J. This project is hosted by a few developers at Sun who are enthusiastic about the technology.

    The hdcookbook project provides several things:

    1. A source code repository containing various Java-based tools and sample code.

    2. A set of binary files built from the source code repository.

    3. An active discussion forum about BD-J authoring.

    4. A set of Wiki pages to provide information about content development.


  • Why the name "HD Cookbook"?

    The name "HD Cookbook" is inspired by the title of a book on developing interactive applications for Blu-ray Java and the other HD optical media format. See http://hdcookbook.jovial.com for more about this book, and a list of other Blu-ray resources.


  • Who is the target audience for this project?

    Anyone interersted in Java-based content authoring for TV, of course!

    In reality, this project seems to attract interesting mix of blu-ray content authors. On one spectrum, there are independent developers wishing to run their first Java application on a BD player they have purchased. On the other spectrum, there are content authors involved in commercial BD title production. The latter audience have access to industrial-strength BD authoring tools already, but they join this project because sometimes our tools provide functionality or fill the need that commercial tools do not necessarily cover. Then, there are audience who fall in between those two spectrums, such as those who are evaluating BD-J as a business opportunity and using our tools for doing experimental work.

    We are beginning to see interest from the OCAP community, as well. Most of the framework code is directly applicable to an OCAP environment, or to other GEM-based environments, like MHP. Also, a Blu-ray player is an attractive device for people who are prototyping application ideas and services that might ultimately deploy on OCAP or MHP, because Blu-ray players are inexpensive, and they have performance characteristics that are similar to real OCAP/MHP devices.


  • What tools does this project provide?

    Our tools are divided into two sections, DiscCreationTools and AuthoringTools. DiscCreationTools consists of tools mainly for assembling a valid BD structure, whereas AuthoringTools are the tools to ease and enable innovative content authoring. Most likely, you'll be using only a subset of the tools in the repository, depending on what you're trying to do.


  • What sample code does this project provide?

    All our samples are under the "xlet" directory in the hdcookbook.

    "hdcookbook_discimage" is by far the most complete BD image sample. This disc image includes three xlets demonstrating typical features that a typical movie-like disc might want to do, such as having a menu to allow scene and subtitle selection, a bonus game, a feature to connect to the internet to download a new image, etc.

    We also have many samples for GRIN. GRIN is an application framework tool provided under AuthoringTools.

    There are also independent examples and test cases, in which we've built over time, usually for some specific BD feature.

    All samples come with an ant build setup, and can be made into a complete BD image so that one can run on a player. By default, the build setup for samples require hdcookbook tools to be pre-built.


  • How do you decide what to provide in the project?

    Sometimes we built the tools because we needed them. In many other cases, we built, or enhanced, our tools, when someone we're working with had a need.


  • What skills do I need to have to use the repository effectively?

    At minimum, we expect you to be reasonably familiar with Java as programming language to get started. Also, our source code repository is built with ant, so some knowledge on ant build script will be handy.

    Please note that this project currently do not provide tutorial-type writeup on how to do BD-J programming. We hope that hdcookbook's sample disc images and their build system setup can serve as examples.


  • How can I get started with running my Java application on Playstation 3 (PS3)?

    I suggest you to start with a xlet/HelloWorldXlet sample, because it is the simplest Blu-ray Disc image example we have in the hdcookbook source code repository. Once you have that image running successfully on your Playstation 3, then you can try changing the application to suit your need. The build setup for samples require hdcookbook tools to be pre-built.

    If you are searching for a way to execute your Java application from a USB stick, then you need to convert a BD image to another format called AVCHD before placing it on a memory stick. There is an experimental tool under AuthoringTools/experimental that can do this BD to AVCHD conversion for you. Unfortunately, we have been informed that the support for running Java application from a USB stick has been discontinued in Playstation 3 firmware update v2.50 altogether.


  • I'm new to the Java programming language, can I still use hdcookbook?

    The project should still help you, but we suggest you to try learning at least the basics concepts of Java. Our tools are all written in Java themselves, so if you have zero knowledge about Java, your experience with them might become rather frustrating. Also, chances are, if you're reading this FAQ, then you're interested in BD-J, so you will need the basic skill to do your own application programming sooner or later. See this posting for suggestions on where to start.


  • What additional resources do I need for BD-J development environment in order to use hdcookbook?

    At miminum, you'll need to add these two items:

    1. A set of classes (BD-J compilation stubs) to compile your application against.

    2. An environment to test your BD image on.

    For 1, see this wiki article for an instruction on where to get the stub files.

    For 2, there are various options. Ideally one should have an PC player with a debugging capability to reasonably test the application, and a BD-RE burner to further test the application on a range of commercial BD players.

    In addition, you'll want reference materials, like perhaps the HD cookbook and Blu-Ray Disc Demystified. For OCAP or MHP, you might consider "Interactive TV Standards" by Morris and Smith-Chaigneau. For serious commercial development on Blu-ray, you'll need the full Blu-ray specifications, which are available from the Blu-ray Disc Association under various commercial licenses.


  • What is the GRIN framework? How is it useful to me?

    If you are new to a concept called a scene graph, it might be hard to see the power of GRIN right away. Note that you don't need to know about GRIN to write your first BD-J application. In fact, you don't have to rely on GRIN at all to do BD-J authoring if you choose to.

    That said, we believe that GRIN is a wonderful application framework that can free you, content authors, from Java programming details and allow you to focus on the design and the behavior of the content instead. GRIN provides a way to declare content as a scene graph - what we call a Show file. It is a scene graph implementation architected and developed primarily for the BD platform, and it is highly efficient. GRIN runs on top of our animation framework, which handles all the complicated frame refreshing logic for you so that your content looks good together with the video plane running behind Java's graphics plane. Each scene can include logic for handling user input. You can declare all the scene nodes statically, or call into Java layer.

    See this GRIN overview documentation for more information.


  • Can I use hdcookbook resources for other GEM based development environents such as MHP or OCAP?

    Definitely. Tools under AuthoringTools are generic and we are aiming them to be applicable to GEM based platform overall. Many tools under DiscCreationTools directory might be BD specific, meanwhile. See also question #3, "target audience for this project".


  • What does the sumo wrestler logo mean?

    It is Bill Foote's humor. BDA, or Blu-ray Disc Association, includes many Japanese manufactorers as its board members. Thus he chose this logo of a sumo wrestler working hard to cook with a reference book, where the book, presumably, is the HD Cookbook.