/usr/share/doc/libdvdnav-dev/html/dvdnavissues.html is in libdvdnav-doc 6.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libdvdnav: An introduction to DVD navigation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libdvdnav
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">An introduction to DVD navigation </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The DVD format represents a radical departure from the traditional form of video home-entertainment. Instead of just being a linear programme which is watched from beginning to end like a novel DVD allows the user to jump about at will (much like those 'Choose your own adventure' or 'Which Way' books which were popular a while back).</p>
<p>Such features are usually referred to under the moniker 'interactive' by marketting people but you aren't in marketting since you are reading the <code>libdvdnav</code> tutorial. We'll assume you actually want to know precisely what DVD can do.</p>
<p>A DVD is logically structured into titles, chapters (also known as 'parts'), cells and VOBUS, much like the filesystem on your hard disc. The structure is heirachical. A typical DVD might have the following structure:</p>
<pre class="fragment"> .
|-- Title 1
| |-- Chapter 1
| | |-- Cell 1
| | | |-- VOBU 1
| | | |-- ...
| | | `-- VOBU n
| | |-- ...
| | `-- Cell n
| |-- ...
| `-- Chapter 2
| |-- Cell 1
| | |-- VOBU 1
| | |-- ...
| | `-- VOBU n
| |-- ...
| `-- Cell n
|-- ...
`-- Title m
|-- Chapter 1
| |-- Cell 1
| | |-- VOBU 1
| | |-- ...
| | `-- VOBU n
| |-- ...
| `-- Cell n
|-- ...
`-- Chapter 2
|-- Cell 1
| |-- VOBU 1
| |-- ...
| `-- VOBU n
|-- ...
`-- Cell n
</pre><p>A DVD 'Title' is generally a logically distinct section of video. For example the main feature film on a DVD might be Title 1, a behind-the-scenes documentary might be Title 2 and a selection of cast interviews might be Title 3. There can be up to 99 Titles on any DVD.</p>
<p>A DVD 'Chapter' (somewhat confusingly referred to as a 'Part' in the parlence of DVD authors) is generally a logical segment of a Title such as a scene in a film or one interview in a set of cast interviews. There can be up to 999 Parts in one Title.</p>
<p>A 'Cell' is a small segment of a Part. It is the smallest resolution at which DVD navigation commands can act (e.g. 'Jump to Cell 3 of Part 4 of Title 2'). Typically one Part contains one Cell but on complex DVDs it may be useful to have multiple Cells per Part.</p>
<p>A VOBU (<em>V</em>ideo <em>OB</em>ject <em>U</em>nit) is a small (typically a few seconds) of video. It must be a self contained 'Group of Pictures' which can be understood by the MPEG decoder. All seeking, jumping, etc is guaranteed to occurr at a VOBU boundary so that the decoder need not be restarted and that the location jumped to is always the start of a valid MPEG stream. For multiple-angle DVDs VOBUs for each angle can be interleaved into one Interleaved Video Unit (ILVU). In this case when the player get to the end of the VOBU for angle <em>n</em> instead of jumping to the next VOBU the player will move forward to the VOBU for angle <em>n</em> in the next ILVU.</p>
<p>This is summarised in the following diagram showing how the VOBUs are actually laid out on disc.</p>
<pre class="fragment"> ,---------------------------. ,---------------------------.
| ILVU 1 | | ILVU m |
| ,--------. ,--------. | | ,--------. ,--------. |
| | VOBU 1 | ... | VOBU 1 | | ... | | VOBU m | ... | VOBU m | |
| |Angle 1 | |Angle n | | | |Angle 1 | |Angle n | |
| `--------' `--------' | | `--------' `--------' |
`---------------------------' `---------------------------'
</pre><p>If the layout of the DVD were the only feature of the format the DVD would only have a limited amount of interactivity, you could jump around between Titles, Parts and Cells but not much else.</p>
<p>The feature most people associate with DVDs is its ability to present the user with full-motion interactive menus. To provide these features the DVD format includes a specification for a DVD 'virtual machine'.</p>
<p>To a first order approximation x86 programs can only be run on x86-based machines, PowerPC programs on PowerPC-based machines and so on. Java, however, is an exception in that programs are compiled into a special code which is designed for a 'Java Virtual Machine'. Programmes exist which take this code and convert it into code which can run on real processors.</p>
<p>Similarly the DVD virtual machine is a hypothetical processor which has commands useful for DVD navigation (e.g. Jump to Title 4 or Jump to Cell 2) along with the ability to perform simple arithmetic and save values in a number of special variables (in processor speak, they are known as 'registers').</p>
<p>When a button is pressed on a DVD menu, a specified machine instruction can be executed (e.g. to jump to a particular Title). Similarly commands can be executed at the beginning and end of Cells and Parts to, for example, return to the menu at the end of a film.</p>
<p>Return to the <a class="el" href="tutorial.html">A libdvdnav Tutorial</a>. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
|