Compile - Compile w/out Abstraction Layer
What 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.
Compiling 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.
What DVD lab does when you Compile without Abstraction Layer
It will not do:
It will do
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.