home.technology.hdtc.course_descriptions
 
 

Seminar attendance is capped at less than 10 students each and registration is on a first come, first served basis.

Certain courses have recommended prerequsite requirements. We feel that in order to benefit from a given seminar, attendees should fully understand the topics covered in the prerequisite seminars. If you feel that your work experience has provided you with a comparable skillset outside of a HDTC seminar, please feel free to register.

Place: Javelin Ventures
121 W. Lexington Dr., Suite #612 (6th floor)
Glendale, CA 91026
Time: All seminars run from 9am to 5pm.
The Java for Authors course takes place from 8pm to 9:30pm on Tuesdays and Thursdays
Airport: Bob Hope Airport (BUR)
Burbank
~15-minute drive
Hotel: Hilton Los Angeles North Glendale
100 West Glenoaks Blvd
Glendale, CA
http://www.hilton.com/
(~10 minute walk to Javelin)

HDTC Courses
Java for Authors

HDTC Seminars
Beginning BD-J Programming
Sofatronic Kaleidoscope Advanced Training
Advanced BD-J Programming
Networking BD-J
VFS Updating with BD-J
Secondary Audio & Video Streams in Blu-ray
View All

Course Curriculum

Select a course above to view curriculum
Java for Authors
Prerequisite: None

Week 1
----------------------
Chapter 1 - The Mental Landscape
  • The Fetch and Execute Cycle: Machine Language
  • Asynchronous Events: Polling Loops and Interrupts
  • The Java Virtual Machine
  • Fundamental Building Blocks of Programs
  • Objects and Object-oriented Programming
  • The Modern User Interface
  • The Internet and the World-Wide Web
Chapter 2 - Names and Things
  • The Basic Java Application
  • Variables and the Primitive Types
  • Strings, Objects, Enums, and Subroutines
  • Text Input and Output
  • Details of Expressions
  • Programming Environments

Week 2
----------------------
Chapter 3 - Control
  • Blocks, Loops, and Branches
  • Algorithm Development
  • The while and do..while Statements
  • The for Statement
  • The if Statement
  • The switch Statement
  • Introduction to Exceptions and try..catch
  • Introduction to GUI Programming
Chapter 4 - Subroutines
  • Black Boxes
  • Static Subroutines and Static Variables
  • Parameters
  • Return Values
  • APIs, Packages, and Javadoc
  • More on Program Design
  • The Truth about Declarations

Week 3
----------------------
Chapter 5 - Objects and Classes
  • Objects, Instance Methods, and Instance Variables
  • Constructors and Object Initialization
  • Programming with Objects
  • Programming Example: Card, Hand, Deck
  • Inheritance, Polymorphism, and Abstract Classes
  • this and super
  • Interfaces, Nested Classes, and Other Details

Week 4
----------------------
Chapter 7 - Arrays
  • Creating and Using Arrays
  • Programming With Arrays
  • Dynamic Arrays and ArrayLists
  • Searching and Sorting
  • Multi-dimensional Arrays

Week 5
----------------------
Chapter 8 - Correctness & Robustness
  • Introduction to Correctness and Robustness
  • Writing Correct Programs
  • Exceptions and try..catch
  • Assertions
  • Introduction to Threads
  • Analysis of Algorithms

Week 6
----------------------
Chapter 12 - Advanced GUI Programming
  • Images and Resources
  • Fancier Graphics
  • Actions and Buttons
  • Complex Components and MVC
  • Finishing Touches
Beginning BD-Java Programming
Prerequisite: None (Basic Java programming experience is recommended)

Day 1
----------------------
BD-J System Model
  • Relationship between BD-J & HDMV
  • Player Profiles (1.0, 1.1 and 2.0)
  • Pixel Buffer Model
  • Local Storage
    • Application Data Area (ADA)
    • Binding Unit Data Area (BUDA)
What is an Xlet?
  • Overview
  • Standard xlet structure
  • Requirements when creating xlets
  • Starting and stopping an xlet
  • Printing trace log messages
  • Your first BD-J application
BD-J Object (BDJO) Files
  • Overview
  • How to create a simple BDJO File
Testing
  • How to play your Xlet
  • How to get to the trace log
  • Helpful debugging techniques

Day 2
----------------------
Making Useful Xlets
  • How to draw to the screen
    • Java AWT
    • HAVi UI
  • How to get user Input
  • How to play video
Application Security
  • How to sign JAR files
  • Permission request files
BDJO Files Revisited (Advanced Topics)
  • Starting/Stopping Applications
  • Localized applications
  • Using Xlet Parameters
  • Signed vs. Unsigned Applications
  • Title/Disc-Unbound Applications
Advanced BD-Java Programming
Prerequisite: Beginning BD-Java Programming

Day 1
----------------------
Using Fonts in BD-J
  • Overview
  • Font file restrictions
  • How to create a BD-J Font
  • All the ways to get to a font
  • The ways that actually work
  • Understanding Font Metrics
Persistent Storage
  • Overview
  • How to access the ADA
  • Reading/writing to the ADA
  • Setting file priorities & expiration
  • What happens when it fills up?

Day 2
----------------------
Application Listing & Launching
  • Overview
  • The Application Database
  • Monitoring the Database
  • Launching an application
  • Monitoring an application's state
  • Terminating an application
Inter-xlet Communication (IXC)
  • Overview
  • Registering an object for sharing
  • Reading the registry
  • Acquiring a shared object
  • Remote method calls
  • Error handling over IXC
Networking BD-J
Prerequisite: Beginning BD-Java Programming

BD-J Networking Overview
HTTP/HTTPS connections
  • Sending data to a server
    • GET messages
    • POST messages
  • Reading the response
Introduction to network sockets
  • TCP sockets
  • UDP sockets
How to create a simple TCP socket server
Creating a TCP socket in a BD-J xlet
Creating a UDP socket in a BD-J xlet Application architectures for networking
  • Client architecture
  • Server architecture
Realizing what you haven't thought of...

VFS Updating with BD-J
Prerequisite: Beginning BD-Java Programming and Networking BD-Java

VFS Update Overview
How do VFS updates work?
The manifest file
  • Overview
  • How to create a manifest file
The signature file
  • Overview
  • How to generate the signatures
Performing an update - the basics
  • Checking local storage availability
  • Determining the destination directory
  • Copying files to the update directory
  • Triggering the update
  • Handling errors
Disc-based updates
Network-based updates
Security issues when updating
Managing updates
  • Avoiding update conflicts
  • Checking update validity
  • Removing an update
Secondary Audio & Video with Blu-ray
Prerequisite: Beginning BD-Java Programming and VFS Updating with BD-Java Overview
  • Secondary Audio
  • Synchronous PIP Video
  • Asynchronous PIP Video
Using Secondary Audio
  • Encoding for Secondary Audio
  • Mixing metadata
  • BD-J Metadata API
  • Adding interactive audio
Using Synchronous PIP
  • Preparing video for PIP
    • Color space settings
    • Luma key settings
  • Encoding video for PIP
  • PIP metadata
    • Size & position
    • Luma key limits
  • Programming Synchronous PIP
    • Turning PIP on/off
    • Setting PIP to full screen
Using Asynchronous PIP
  • Transferring PIP to local storage
  • Performing VFS update
  • Programming Asynchronous PIP
    • Starting/stopping PIP playback
    • Turning PIP on/off
    • Setting PIP to full screen
Using secondary audio & video in multi-angle

HDTC
 
Next Steps