Navigation Commands
This is the list of all Navigation Commands for programming BDMV applications in HDMV mode (also BD-J mode). It's a neutral low-level programming language somewhat "similar" to assembly, that is used to control navigation and menu graphics. The code is stored and compiled into a object code file called a Movie Object. In BD-J mode, an Xlet can be programmed to comtrol these commands. Two examples are provided, one written in Scenarist's syntax and BDedit's syntax.
Branch Command Group
Command |
Meaning | Operand | Opcode |
---|---|---|---|
Nop | No Operand, Empty command. |
No Operand. |
00000000 00000000 00000000 |
GoTo |
Jumps to another Command Line Examples: GoTo End — go to the command following the label “End:”. GoTo [ 12 ] — go to the command whose number is in register GPR_12. |
command_id
= Πrder number (from zero) for the next command. |
GoTo
GPR 0: 20010000
0000000C
00000000 GoTo PSR 0: 20010000 8000000C 00000000 GoTo Imm 0: 20810000 8000000C 00000000 |
Break | Break and exit from the list of the current commands | No Operand. |
00020000 00000000 00000000 |
JumpObject | Jump to the specified Movie Object Examples: JumpObject 1 — jump to the Movie Object with id 1. JumpObject [ 5 ] — jump to the Movie Object whose number is in register GPR_5. |
mobj_id - Defines the mobj_id value for the Movie Object. |
JumpObject
1: 21800000
00000001
0000000 JumpObject GPR 1: 21000000 80000001 00000000 JumpObject PSR 1: 20810000 80000001 00000000 |
JumpTitle | Jump to the specified Title Examples: JumpTitle 1 — jump to the Title with id 1. JumpTitle [ 5 ] — jump to the Title whose number is in register GPR_5 |
title_number - Defines the title number. |
JumpTitle
1: 21810000
00000001
00000000 JumpTitle GPR 1: 21010000 00000001 00000000 JumpTitle PSR 1: 21010000 80000001 00000000 |
CallObject |
Stop current playback and jump to the specified Movie Object. Examples: CallObject 1 — jump to the Movie Object with id 1. CallObject [ 5 ] — jump to the Movie Object whose number is in register GPR_5. |
mobj_id - Defines the mobj_id value for the Movie Object. | CallObject
1: 21820000
00000001
00000000
CallObject GPR 1: 21020000 00000001 00000000 CallObject PSR 1: 21020000 80000001 00000000 |
CallTitle | Stop current playback and jump to the specified Title Examples: CallTitle 1 — jump to the Title with id 1. CallTitle [ 5 ] — jump to the Title whose number is in register GPR_5. |
title_number
- Defines the title number. |
CallTitle
1: 21830000
00000001
00000000 CallTitle GPR 1: 21030000 00000001 00000000 CallTitle PSR 1: 21030000 80000001 00000000 |
Resume | Restore previously stopped playback |
No Operand. | 01040000 000000 000000 |
TerminatePL | Exit from playback of current PlayList |
No Operand. | 02030000 000000 000000 |
LinkPI | Go to the specified PlayItem Examples: LinkPI 1 — change playback position to the PlayItem with id 1. LinkPI [ 5 ] — change playback position to the PlayItem whose number is in register GPR_5. |
PlayItem_id - Defines the PlayItem id. | 02040000 000000 000000 LinkPI 1: 22840000 00000001 00000000 LinkPI GPR 1: 22040000 00000001 00000000 LinkPI PSR 1: 22040000 80000001 00000000 |
LinkMK |
Go to the specified PlayListMark Examples: LinkMK 1 — change playback position to the PlayList Mark with id 1. LinkMK [ 5 ] — change playback position to the PlayList Mark whose number is in register GPR_5. |
PL_mark_id - Defines the PlayList Mark.id. | 02040000 000000 000000 LinkPI 1: 22850000 00000001 00000000 LinkPI GPR 1: 22050000 00000001 00000000 LinkPI PSR 1: 22050000 80000001 00000000 |
Compare Command Group
Command | Meaning |
---|---|
BC or If & | Binary Compare
Examples: BC 1, 1: 48C00100 00000001 00000001 BC GPR 1, 1: 48400100 00000001 00000001 BC PSR 1, 1: 48400100 80000001 00000001 |
EQ or If == | Equals Examples: EQ [5] 7 If [5] == 7 EQ 1, 1 : 48C00200 00000001 00000001 EQ GPR 1, 1: 48400200 00000001 00000001 EQ PSR 1, 1: 48400200 80000001 00000001 |
NE or If != | Not Equals Examples: NE [5] 7 If [5] != 7 NE 1, 1: 48C00300 00000001 00000001 NE GPR 1, 1: 48400300 00000001 00000001 NE PSR 1, 1: 48400300 80000001 00000001 |
GE or If >= | Greater Than or Equal to Examples: GE [5] 7 If [5] >= 7 GE 1, 1: 48C00400 00000001 00000001 GE GPR 1, 1: 48400400 00000001 00000001 GE PSR 1, 1: 48400400 80000001 00000001 |
GT or If > | Greater Than Examples: GT [5] 7 If [5] > 7 GT 1, 1: 48C00500 00000001 00000001 GT GPR 1, 1: 48400500 00000001 00000001 GT PSR 1, 1: 48400500 80000001 00000001 |
LE or If <= | Less Than or Equals to Examples: LE [5] 7 If [5] <= 7 LE 1, 1: 48C00600 00000001 00000001 LE GPR 1, 1: 48400600 00000001 00000001 LE PSR 1, 1: 48400600 80000001 00000001 |
LT or If < | Less Than Examples: LT [5] 7 If [5] < 7 LT 1, 1 : 48C00700 00000001 00000001 LT GPR 1, 1 : 48400700 00000001 00000001 LT PSR 1, 1 : 48400700 80000001 00000001 |
Set Command Group
Command | Meaning |
---|---|
Move | Set value to GPR Examples: Move [5] 7 — move 7 in to register GPR_5. Move GPR 1, 1: 50400001 00000001 00000001 Move PSR 1, 1: 50400001 80000001 00000001 |
Swap | Change values between two GPRs Examples: Swap [5] 7 — swap data in registers GPR_5 and GPR_7. Swap GPR 1, 1: 50400002 00000001 00000001 Swap PSR 1, 1: 50400002 80000001 00000001 |
Add | Add value to GPR Examples: Add [5] 7 — move 7 + GPR_5 in to register GPR_5. Add GPR 1, 1: 50400003 00000001 00000001 Add PSR 1, 1: 50400003 80000001 00000001 |
Sub | Subtract value from GPR Examples: Sub [5] 7 — move GPR_5 - 7 in to register GPR_5. Sub GPR 1, 1: 50400004 00000001 00000001 Sub PSR 1, 1: 50400004 80000001 00000001 |
Mul | Multiply value to GPR Examples: Mul [5] 7 — move GPR_5 × 7 in to register GPR_5. Mul GPR 1, 1: 50400005 00000001 00000001 Mul PSR 1, 1: 50400005 80000001 00000001 |
Div | Divide value to GPR Examples: Div [5] 7 — move GPR_5 / 7 in to register GPR_5. Div GPR 1, 1: 50400006 00000001 00000001 Div PSR 1, 1: 50400006 80000001 00000001 |
Mod |
Modulus value to GPR Examples: Mod [ 5 ] 7 — move GPR_5 % 7 in to register GPR_5. Mod GPR 1, 1: 50400007 00000001 00000001 Mod PSR 1, 1: 50400007 80000001 00000001 |
Rnd |
Store Random number in GPR Examples: Rnd [5] 7 — move random value from 1 to 7 in to register GPR_5. Rnd GPR 1, 1: 50400008 00000001 00000001 Rnd PSR 1, 1: 50400008 80000001 00000001 |
And | Binary AND to GPR Examples: And [5] 7 — move GPR_5 & 7 in to register GPR_5. And GPR 1, 1: 50400009 00000001 00000001 And PSR 1, 1: 50400009 80000001 00000001 |
Or | Binary OR to GPR Examples: Or [ 5] 7 — move GPR_5 | 7 in to register GPR_5. Or GPR 1, 1: 5040000A 00000001 00000001 Or PSR 1, 1: 5040000A 80000001 00000001 |
Xor | Binary OR to GPR Examples: Xor [ 5 ] 7 — move GPR_5 | 7 in to register GPR_5. Xor GPR 1, 1: 5040000B 00000001 00000001 Xor PSR 1, 1: 5040000B 80000001 00000001 |
Xor | Binary XOR to GPR Examples: Xor [5] 7 — move GPR_5 ^ 7 in to register GPR_5. Xor GPR 1, 1: 5040000B 00000001 00000001 Xor PSR 1, 1: 5040000B 80000001 00000001 |
BitSet |
Set bit in GPR Examples: BitSet [5] 7 — set 7th bit in GPR_5 in to 1 BitSet GPR 1, 1: 5040000C 00000001 00000001 BitSet PSR 1, 1: 5040000C 80000001 00000001 |
BitClear | Set bit to "0" in GPR Examples: BitClear [5] 7 — set 7th bit in GPR_5 in to 0 BitClear GPR 1, 1: 5040000D 00000001 00000001 BitClear PSR 1, 1: 5040000D 80000001 00000001 |
ShiftLeft | Zeros are shifted into low-order bit in GPR Examples: ShiftLeft [5] 7 — shift left GPR_5 value by 7. ShiftLeft GPR 1, 1: 5040000E 00000001 00000001 ShiftLeft PSR 1, 1: 5040000E 80000001 00000001 |
ShiftRight | Zeros are shifted into high-order bit in GPR Examples: ShiftRight [5] 7 — shift right GPR_5 value by 7. ShiftRight GPR 1, 1: 5040000F 00000001 00000001 ShiftRight PSR 1, 1: 5040000F 80000001 00000001 |
ShiftRight | Zeros are shifted into high-order bit in GPR Examples: ShiftRight [5] 7 — shift right GPR_5 value by 7. ShiftRight GPR 1, 1: 5040000F 00000001 00000001 ShiftRight PSR 1, 1: 5040000F 80000001 00000001 |
Setsystem Command Group
Command | Meaning |
---|---|
SetStream | Set Audio, PG, Text subtitle, Angle, and IG streams Examples: SetStream ShowPG_textST: Off Audio [4075] PG_textST: [4076]
SetStream
ShowPG_textST:
On
Audio [5]
PG_textST:
[6]
IG:
[7]
Angle:
[8]
|
SetNVTimer | Set Navigation Timer Examples: SetNVTimer 1 10 — jump to Movie Object with Id 1 after 10 seconds.
|
SetButtonPage | Set Button ID and/or Page ID
Examples: SetButtonPage Button:[5] Page (Effect:On):[6]
|
EnableButton | Set Button to "normal" state Examples: EnableButton [5]
|
DisableButton | Set Button to "normal" state
Examples: DisableButton [5]
|
SetSecondaryStream | Set Secondary Video, Secondary Audio, and PiP PG / Text subtitle streams
Examples: SetSecondaryStream ShowVideo: On PlayAudio: On ShowPiP_PG_textST: On VideoSize: 0xf Video: 1 Audio: 2 PiP_PG_textST (Valid: On) : 3
|
PopUpMenuOff | Turn off pop up menu
|
StillOn | Hold playback
|
StillOff | Restart playback after Hold
|
SetOutputMode |
Sets 3D output
|
SetStreamSS | Set 3D video (SS file)
|
Author(s) : Γ Firestone
Popular Pages
-
Type Programming /scripting language Paradigm Multi-paradigm: event-driven, functional, imperative, procedural, object-orie...
-
HDMV (High Definition Movie) mode is an interactive framework with the well-known features of DVD, but it's more advanced than DVD m...
-
MPEG-2 Transport Stream Type of format Container format for video, audio, data First released August 2004 Latest relea...