Professional Documents
Culture Documents
Lesson #3
Page 1 of 7
A branching object in DVD Lab Pro (DLP) is simply a way to play only one or more (user defined)
chapters in a movie object. The movie object must be local to the current active VTS. What is nice about a
branching object is that the source movie is only written once to the disk. A new title entry (program chain pgc)
is defined by logically pointing to the appropriate VOBUs without having to rewrite the same portions of the
movie over and over again. By leveraging the power of the logical DVD arrangement, a branching object can
solve many programming problems faced by the Author.
Lesson #3 will use branching objects and VM programming to solve a real life-programming problem.
Consider these customer requirements.
Requirements
Inputs: Outputs:
MPEG2 compliant video with AC3 audio Using customer provided MPEG2 and AC3 elementary
streams, author a DVD that meets these requirements.
A text file showing the chapter start points in
the video.
For each odd number chapter (1,3,5,7 etc.)
the chapter needs to loop indefinitely until
the user tells it to move to the next chapter.
For each even number chapter (2,4,6,8 etc.)
the chapter only plays once and then call the
next (odd) chapter.
To advance to the next chapter, the user can
push ‘root’ or ‘main’ menu button on the
remote.
To interrupt or restart the demonstration, the
user can push the ‘title’ menu button on the
remote.
After playing the last chapter, automatically
restart the demonstration without user
intervention.
Option to play the entire movie without
looping.
DLP Branching and VM Commands
Lesson #3
Page 2 of 7
Be default chapter 1 is
always the beginning of the
movie.
DLP Branching and VM Commands
Lesson #3
Page 3 of 7
1: GPRM1 = 1
2: if (gprm0 = gprm1) JumpVTS_TT 3
3: GPRM1 = 2
4: if (gprm0 = gprm1) JumpVTS_TT 4
5: GPRM1 = 3
6: if (gprm0 = gprm1) JumpVTS_TT 5
7: JumpVTS_TT 2
1-6
When the user pushes the ‘root’ or ‘main’ menu button on the remote, the player
will interrupt the branch title and execute the root pgc. At this point the logic of
the pre-commands takes over. We know where we were at because we set G0
equal to the current playing branch in the branches pre-commands. Thus if we’re
playing branch #1 (a looping object), we will jump to branch #2 and begin
playing that title.
7
In VMG menu we will set G0 = 0 to tell the logic to drop through and
immediately start with branch #1 (when demo is pushed). A side effect is that G0
= 4 when playing branch #4, thus it returns to branch #1 as well. ☺
DLP Branching and VM Commands
Lesson #3
Page 7 of 7
Final Comments As you can see you can do some complex programming with minimal effort in
DLP.
Questions:
1. If you had to expand this example for eight or ten chapters, what would
change?
2. Why did we have to use the ‘quick link’ button in the VM editor to set the
correct jump VM commands?
3. If we had to deal with two different movies (with different attributes), what
would change?