summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMonty <xiphmont@xiph.org>2010-03-28 10:15:49 +0000
committerMonty <xiphmont@xiph.org>2010-03-28 10:15:49 +0000
commit94d93be0ef859dad298ac3a4672b671fa66340b8 (patch)
tree0b9ae582e57e22d75865623c7c0bf36b7363b0a2 /doc
parenteb5d2391a7d3f236d5c7f7526fb38a5a5b062024 (diff)
downloadogg-94d93be0ef859dad298ac3a4672b671fa66340b8.tar.gz
Add two new figures illustrating packets, pages, logical bitstreams and
physical bitstreams. git-svn-id: http://svn.xiph.org/trunk/ogg@17095 0101bb08-14d6-0310-b084-bc0e0c8e3800
Diffstat (limited to 'doc')
-rw-r--r--doc/oggstream.html69
-rw-r--r--doc/packets.pngbin0 -> 19776 bytes
-rw-r--r--doc/pages.pngbin0 -> 45363 bytes
3 files changed, 67 insertions, 2 deletions
diff --git a/doc/oggstream.html b/doc/oggstream.html
index 485747d..87c91df 100644
--- a/doc/oggstream.html
+++ b/doc/oggstream.html
@@ -60,11 +60,44 @@ li {
color: #888888;
clear: both;
}
+
+.caption {
+ color: #000000;
+ background-color: #aabbff;
+ margin: 1em;
+ margin-left: 2em;
+ margin-right: 2em;
+ padding: 1em;
+ padding-bottom: 0em;
+ overflow: hidden;
+}
+
+.caption p {
+ clear: none;
+}
+
+.caption img {
+ display: block;
+ margin: 0px;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1.5em;
+ background-color: #ffffff;
+ padding: 10px;
+}
+
+#thepage {
+ margin-left: auto;
+ margin-right: auto;
+ width: 840px;
+}
+
</style>
</head>
<body>
+<div id="thepage">
<div id="xiphlogo">
<a href="http://www.xiph.org/"><img src="fish_xiph_org.png" alt="Fish Logo and Xiph.org"/></a>
@@ -332,6 +365,20 @@ boundary information; strung together, the unframed packets form a
<em>logical bitstream</em> of apparently random bytes with no internal
landmarks.
+<div class="caption">
+ <img src="packets.png">
+
+ <p> Packets of raw codec data are not typically internally framed.
+ When they are strung together into a stream without any container to
+ provide framing, they lose their individual boundaries. Seek and
+ capture are not possible within an unframed stream, and for many
+ codecs with variable length payloads and/or early-packet termination
+ (such as Vorbis), it may become impossible to recover the original
+ frame boundaries even if the stream is scanned linearly from
+ beginning to end.
+
+</div>
+
<p>Logical bitstream packets are grouped and framed into Ogg pages
along with a unique stream <em>serial number</em> to produce a
<em>physical bitstream</em>. An <em>elementary stream</em> is a
@@ -341,6 +388,23 @@ be split and encoded across one or more pages. The page decode
mechanism is designed to recognize, verify and handle single pages at
a time from the overall bitstream.
+<div class="caption">
+ <img src="pages.png">
+
+ <p> The primary purpose of a container is to provide framing for raw
+ packets, marking the packet boundaries so the exact packets can be
+ retrieved for decode later. The container also provides secondary
+ functions such as capture, timestamping, sequencing, stream
+ identification and so on. Not all of these functions are represented in the diagram.
+
+ <p>In the Ogg container, pages do not necessarily contain
+ integer numbers of packets. Packets may span across page boundaries
+ or even multiple pages. This is necessary as pages have a maximum
+ possible size in order to provide capture guarantees, but packet
+ size is unbounded.
+</div>
+
+
<p><a href="framing.html">Ogg Bitstream Framing</a> specifies
the page format of an Ogg bitstream, the packet coding process
and elementary bitstreams in detail.
@@ -455,8 +519,8 @@ scope of the physical bitstream.</p>
consecutively. Such a physical bitstream obeys all the rules of both
chained and multiplexed streams. Each link, when unchained, must
stand on its own as a valid physical bitstream. Chained streams do
-not mix; a new segment may not begin until all streams in the
-preceding segment have terminated. </p>
+not mix or interleave; a new segment may not begin until all streams
+in the preceding segment have terminated. </p>
<h2>Examples</h2>
@@ -489,5 +553,6 @@ sequence order.</li>
These pages &copy; 1994 - 2010 Xiph.Org. All rights reserved.
</div>
+</div>
</body>
</html>
diff --git a/doc/packets.png b/doc/packets.png
new file mode 100644
index 0000000..917b6c1
--- /dev/null
+++ b/doc/packets.png
Binary files differ
diff --git a/doc/pages.png b/doc/pages.png
new file mode 100644
index 0000000..a6c748e
--- /dev/null
+++ b/doc/pages.png
Binary files differ