File: group__seek__semantics.html

package info (click to toggle)
liboggz 1.1.1-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 4,348 kB
  • sloc: ansic: 14,332; sh: 10,385; makefile: 467
file content (41 lines) | stat: -rw-r--r-- 3,359 bytes parent folder | download | duplicates (5)
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
<!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"/>
<title>liboggz: Semantics of seeking in Ogg bitstreams</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Semantics of seeking in Ogg bitstreams</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
<h2><a class="anchor" id="seek_semantics_intro">
Introduction</a></h2>
<p>[*** This line works around a bug in doxygen ***]</p>
<p>[*** This line works around a bug in doxygen ***]</p>
<p>The seeking semantics of the Ogg file format were outlined by Monty in <a href="http://web.archive.org/web/20031201054855/http://www.xiph.org/archives/theora-dev/200209/0040.html">a post to theora-dev</a> in September 2002. Quoting from that post, we have the following assumptions:</p>
<ul>
<li>Ogg is not a non-linear format. ... It is a media transport format designed to do nothing more than deliver content, in a stream, and have all the pieces arrive on time and in sync.</li>
<li>The Ogg layer does not know the specifics of the codec data it's multiplexing into a stream. It knows nothing beyond 'Oooo, packets!', that the packets belong to different buckets, that the packets go in order, and that packets have position markers. Ogg does not even have a concept of 'time'; it only knows about the sequentially increasing, unitless position markers. It is up to higher layers which have access to the codec APIs to assign and convert units of framing or time.</li>
</ul>
<p>(For more details on the structure of Ogg streams, see the <a class="el" href="group__basics.html">Ogg Basics </a> section).</p>
<p>For data such as media, for which it is possible to provide a mapping such as 'time', Oggz can efficiently navigate through an Ogg stream by use of an OggzMetric callback, thus allowing automatic seeking to points in 'time'.</p>
<p>For common codecs you can ask Oggz to set this for you automatically by instantiating the OGGZ handle with the OGGZ_AUTO flag set. For others you can specify a multiplier with <a class="el" href="oggz__deprecated_8h.html#a12f232bca448853e66a1226ddccff7e0" title="DEPRECATED FUNCTION This function has been replaced with the more clearly named oggz_set_granulerate...">oggz_set_metric_linear()</a>, or a generic non-linear metric with <a class="el" href="group__metric.html#ga5a630e8dcd04e1dd6601d8f56f0af3f6" title="Set the OggzMetric to use for an OGGZ handle.">oggz_set_metric()</a>. </p>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 24 09:13:55 2010 for liboggz by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>