<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Conrad<br>
<br>
Thanks for your reply to my request. I was able to eliminate some
questions now.<br>
But I obviously still have some issues calculating the keyframe
position. This is what I do:<br>
<blockquote><i>ogg_int64_t granule = oggz_tell_granulepos(oggz);<br>
int shift = oggz_get_granuleshift(oggz, sn);<br>
int noOfFramesSinceKeyframe = granule&gt;&gt;shift;<br>
int keyFramePosition = oldPosition - noOfFramesSinceKeyframe;<br>
oggz_seek_units(oggz, keyFramePosition, SEEK_SET);</i><br>
</blockquote>
oldPosition being the position where initially has been seeked to as
from <i>oggz_tell_units()</i>.<br>
<br>
Seeking works, but not to keyframes :(&nbsp; Am I getting wrong some units
or something?<br>
<blockquote>
  <pre wrap="">&gt; If you're working with this now anyway, please try the seek-rewrite
&gt; branch, from the repo at github: <a class="moz-txt-link-freetext" href="http://github.com/kfish/liboggz">http://github.com/kfish/liboggz</a></pre>
</blockquote>
Whats different in this branch? Why would I use it?<br>
<br>
(I hope this time the e-mail gets to the list in the correct topic...)<br>
<br>
Thanks again!<br>
Regards,<br>
Stefan<br>
<br>
<br>
Am 06.06.2010 23:54, schrieb Conrad Parker:
<blockquote
 cite="mid:AANLkTilKteuXywbTG6xAtegcLQdOHiZ_xKfMOKnqk2Aj@mail.gmail.com"
 type="cite">
  <pre wrap="">On 7 June 2010 02:12, Stefan Weber <a class="moz-txt-link-rfc2396E" href="mailto:s_weber@blyth.ch">&lt;s_weber@blyth.ch&gt;</a> wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Dear all

Excuse me for pushing this again.
Can't somebody give me a little hint on how to setup OGGZ for seeking
with Theora?

    </pre>
  </blockquote>
  <pre wrap="">
what you wrote sounds right. You should only need a page callback to
handle the intermediate step. The callbacks are not asynchronous, they
all happen in the same thread and only see data that gets passed
through the most recent call to oggz_read().

You can get the granuleshift with oggz_get_granuleshift(). The
difference between ogg_page_granulepos() and oggz_tell_granulepos() is
that the oggz version will work out the granulepos for a packet, even
if it was not recorded in the stream. At the page level it doesn't
matter so much.

If you're working with this now anyway, please try the seek-rewrite
branch, from the repo at github: <a class="moz-txt-link-freetext" href="http://github.com/kfish/liboggz">http://github.com/kfish/liboggz</a>

cheers,

Conrad.

  </pre>
</blockquote>
</body>
</html>