Advanced Content is a specification defined by the DVD forum used for authoring the interactive features, such as menus, bookmarks, picture-in-picture, and additional content and games for HD DVD. The Advanced Content runtime provides services for timing, user input (e.g., from remote control), and time based triggers for execution of code. It also enables network access to download additional content and access to persistent storage which is used for storing bookmarks and other state information. Advanced Content is written using a XML based markup language, reminiscent of HTML and application logic is written using ECMAScript. The functionality offered by the Advanced Content runtime is exposed by ECMAScript APIs. It also uses XML markup based upon XSL-FO for styling the UI and SMIL for time-triggered content. XPath can also be used while writing Advanced Content applications.
HDi is an implementation of the Advanced Content specification; as such applications written for HDi are written using the XML dialect and ECMAScript, the latter of which is processed by the JScript engine when running on Microsoft Windows platforms. The HDi runtime exposes the APIs defined by the Advanced Content standard. It provides only a single threaded programming model, though certain operations (such as network and persistent storage access) are executed as asynchronous operations.[5]
An HD DVD movie, including the interactive functionality, is presented as an Advanced Content application, which is executed and rendered by the HDi runtime. The advanced content application consists of the playlist files (.xpl), subtitles (.xas), markup files (.xmu) and scripts (.js) in addition to the actual video, in a defined directory structure. The HDi runtime parses the markup and the scripts to execute the action. The playback of the video, along with its integration with the rest of the navigation system, is initiated from and controlled by script code.
The HDi runtime is responsible for execution and final rendering of the movie playback and navigation application. The markup is parsed into a Document Object Model, which allows ECMAScript code to control and modify the UI layout during execution.