DVD PCI Packet Button Activation Information
Within a DVD-Video VOB (Video Object) stream, menu button behavior and user interactivity are governed by Presentation Control Information (PCI) packets embedded inside Navigation Packs (NV_PCK). This article provides a focused breakdown of the specific data structures inside the PCI packet responsible for menu button activation, including the Highlight Information (HLI) table, button coordinate mapping, color state transitions, and executable button commands.
The Role of the PCI Packet
A VOB stream interleaves audio, video, sub-pictures, and navigation
data. At the start of every Video Object Unit (VOBU), a Navigation Pack
(NV_PCK) appears, containing two primary sub-packets: Data
Search Information (DSI) and Presentation Control Information (PCI).
While the DSI handles playback positioning and search routines, the PCI
controls the real-time presentation and user interaction, primarily
through its Highlight Information (HLI) structure.
Highlight Information (HLI)
The HLI is the specific section within the PCI packet
that defines interactive menus. It tells the DVD player where buttons
are, how they respond to user input, and what occurs when a button is
activated (pressed). The HLI contains three core
sub-elements governing button operations:
- Highlight General Information
(
HLI_GI) - Button Color Information Table
(
BTN_COLIT) - Button Information Table (
BTNIT)
Highlight General
Information (HLI_GI)
The HLI_GI provides global parameters for the menu's
interactive state during the presentation of the current VOBU:
- Presentation Timestamps (
HLI_S_PTMandHLI_E_PTM): Defines the exact start and end presentation times during which the menu buttons are active and interactive on screen. - Button Numbers: Specifies the total number of
buttons defined (
BTN_Ns), the number of buttons currently active, and the default selected button number. - Forced Button Activation: Contains parameters such
as the Forcedly Selected Button Number (
FOSL_BTNN). If auto-action flags are enabled, this allows a button to automatically trigger its activation command after a predetermined duration without requiring manual user confirmation.
Button
Information Table (BTNIT) and Button Data
(BTNI)
The BTNIT consists of individual Button Information
blocks (BTNI) for each button defined on the menu screen
(supporting up to 36 rectangular buttons for 4:3 displays, or 18 per
aspect mode in widescreen displays). For each button, the following
activation-specific parameters are stored:
- Button Coordinates: Defines the interactive bounding box on screen using standard pixel coordinates (\(X\text{-start}\), \(Y\text{-start}\), \(X\text{-end}\), and \(Y\text{-end}\)). These coordinates link the user's cursor or remote navigation directly to the corresponding sub-picture graphic overlay.
- Directional Routing: Directs focus when a user presses directional keys (Up, Down, Left, Right), determining which button gains focus before activation occurs.
- Auto-Action Flag: A single-bit parameter indicating whether the button should automatically execute its associated command immediately upon selection, bypassing the requirement for a secondary "Enter" or "OK" confirmation from the user.
Button Commands
(BTN_CMD)
The most critical data for button activation is the Button Command
(BTN_CMD) embedded within each button’s profile:
- Virtual Machine Instructions: Each button contains a pre-allocated space (typically an 8-byte instruction) for standard DVD Virtual Machine (VM) commands.
- Instruction Execution: When the player registers an activation event (either via the remote's "Enter" key, a mouse/pointer click inside the active area coordinates, or an automatic trigger), the DVD player suspends current playback and executes this command.
- Target Actions: Commands typically consist of
branching operations, such as
JumpTT(jump to title),LinkPGCN(link to a specific Program Chain),LinkPrevPGC, or instructions that alter General Parameter Registers (GPRMs) to store user selections before moving to another menu state.
Color and State
Transitions (BTN_COLIT)
The PCI packet dictates the visual feedback displayed when a button transitions from a normal state to an activated state:
- Color and Contrast Mapping: The
BTN_COLITestablishes 2-bit color and transparency (alpha) mapping for both the "selected" state and the "action" (activated) state. - Activation Highlight: When a user activates a button, the player references the activation color scheme defined in this table to momentarily change the sub-picture highlight overlay, providing visual confirmation that the button command has been engaged before the player executes the navigation branch.