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 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>