This file is indexed.

/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 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>