<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
I agree, in an application like mine (making a portable Ogg Vorbis
player from a small embedded system) read-ahead wouldn't be too
difficult to implement, and RAM space is critical. Every block I can
avoid allocating for an Ogg buffer can go towards buffering decoded
audio. So that solution sounds good for my particular application.<br>
<br>
<br>
Nicholas<br>
<br>
<br>
Ethan Bordeaux wrote:
<blockquote
cite="mid:3e7283d70909081143v27e8c247uc9bc65d614d8acf6@mail.gmail.com"
type="cite">Hey that's great you're looking into this. Personally I
think option #1 would be the better choice for me, as maintaining usage
and validity of checksums is quite important for my application. That
said, I'm not sure I quite get what the downside to the first option
would be, so I can't say for certain if there wouldn't be issues with
the dual stream pointers. Still, it's great to hear that this is
working its way officially into Tremor.<br>
<br>
Ethan<br>
<br>
<div class="gmail_quote">On Tue, Sep 8, 2009 at 2:22 PM, <span
dir="ltr"><<a moz-do-not-send="true" href="mailto:xiphmont@xiph.org">xiphmont@xiph.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">> Monty - if I remember correctly there were
some vague plans to officially<br>
> incorporate this sort of feature into the source. Is that right?<br>
> Personally I think it would be a huge help, especially to have the
ability<br>
> to skip large tags like image files while still maintaining the
basic<br>
> metadata.<br>
<br>
</div>
Yes, and I've actually worked a bit on it. It boils down to doing it<br>
one of two ways: Having two seperate pointers into the stream (pointer<br>
A can read ahead and do framing without any need to actually buffer,<br>
pointer B is on-demand data reading and if there's no demand for the<br>
data it can just skip past. This scheme means buffering overhead is<br>
essentially zero, but you need to be able to have two stream pointers,<br>
so it's not really streaming) or the second possibility is ignoring<br>
checksum and only doing 'light framing' where any damage to the stream<br>
would get through and be read as data (to be fair, this is how most<br>
other non-Ogg systems work).<br>
<br>
Monty<br>
</blockquote>
</div>
<br>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Tremor mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Tremor@xiph.org">Tremor@xiph.org</a>
<a class="moz-txt-link-freetext" href="http://lists.xiph.org/mailman/listinfo/tremor">http://lists.xiph.org/mailman/listinfo/tremor</a>
</pre>
</blockquote>
<br>
</body>
</html>