Abstraction Layer

Top  Previous  Next

Compile - Compile w/out Abstraction Layer

triangleWhat is Abstraction Layer

abstraction - Generalisation; ignoring or hiding details to capture some kind of commonality between different instances.

Abstraction Layer is simply the "interface" between you and the specifications. Abstraction Layer is everywhere and it is the reason computing exist - Windows OS is one large Abstaraction Layer - even if you are doing some simple operation like dragging a file from one folder to another there are a lot of complex operations going on underneath. But thanks to the Abstraction Layer you don't really have to know anything about sectors or file tables. In fact OS like Windows is an Abstraction Layer build on another Abstraction Layer which is probably build on another layer etc...

A DVD authoring application is the interface between you and the DVD specifications. It also has layers built upon other layers so we have to limit the definition to some usable area.

By using the Abstraction Layer in DVD-lab we will understand the relationship between objects on the DVD (movies, menus) that is generated by DVD-lab. For example if you draw a link from one Movie to another, that is our abstraction layer. You see a connection line and expect that the movies are linked together, but DVD-lab's Abstraction layer will write into Movie Post the command: JumpVTS_PTT (tt 2, ptt 1). This is very simple example and it gets much more complicated from here.

It is very safe to say that because of the freedom in DVD structure, no two authoring application will create the relation between the objects the same way. Each application leaves its own signature on the compiled DVD by the form of created structure and relations.

A simple visualisation of our definition is below:


If we build the DVD as displayed in the second image it will obviously not work. The data will be there but DVD player will not know what to do with them. This is the Abstraction layer we are interested in.

triangleCompiling without Abstraction layer

There is an option on the Compile Dialog box that, when used, will instruct DVD-lab not to add any of its commands that are part of the Abstraction layer we just defined.


Important: Compiling without Abstraction Layer will guarantee that the DVD will be non-playable, unless you had written your own VM commands that subtitute for the DVD-lab Abstraction Layer.

triangleWhat DVD lab does when you Compile without Abstraction Layer

It will not do:

It will not use any graphically defined end links, such as First Play, Menu or Title end links
It will not create shadow (invisible) PGC1 menus in VTS and VMG that are used by the DVD-lab Abstraction Layer for various linking and remote operations
It will not use the special objects such as Play Lists, Splitter, Case List, Return to last menu) because they are part of its AL.

It will do

It will compile and place the DVD objects on DVD (menus, movies, slideshows...) as with AL
It will use the VM Commands you defined in First Play
It will use the VM Commands defined in PRE and POST commands of your objects
It will use the VM Commands you defined in Title Menu on the first VMG menu
It will use menu Button links and button VM commands (note we put menu button link outside AL)
It will use Chapter VM Commands (title cells)

note Note: Because of the Shadow menu in VMG and VTS, normally the VM LinkPGCN command has to use PGCn+1 (the first visible menu in connection is PGC 2). But that doesn't apply on Compiling without Abstraction Layer. Here DVD-lab will not add shadow menu to VTS and VMG, therefore the first visible menu in Connection will be really PGC 1. You have to remember this.

Obviously Compiling without AL is not for everybody. It can be for example used to test a special custom DVD structure or create DVD titles that will become later a part of something else. A very good knowledge of DVD structure and VM commands is obviously required.