[ogg-dev] avoiding spanning packets

Ralph Giles giles at xiph.org
Wed May 27 07:09:07 PDT 2009


I recently noticed half a patch in my libogg tree, and thought I'd
forward it for discussion. I did this some time ago when were were
talking about the long pages issue.

The basic idea is to allow pages to grow up to 100% above the flush
threshold if this allows us to end at a packet boundary. This reduces
the frequency of pages with spanning packets which should be some
assistance to less sophisticated seek algorithms, at the expense of
introducing more variance in the page size.

I say half a patch because the self tests haven't been updated for the
new behaviour, so 'make check' fails. Also, you know, it needs review.

Let me know what you think. Somewhere I also have a patch to make the
autoflush threshold adjustable, which helps reduce overhead on video
streams. At SD resolutions and above, the default 4k threshold is too
low and packets usually end up spanning multiple pages. The target
value is stashed at the end of the the internal lacing vals array, one
of the few private areas allocated by libogg, and there's a new api
call to set the value to something other than the default 4096. Since
we're changing the api for the async error stuff, I thought it was a
good time to bring up the extension.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: antispan.diff
Type: text/x-diff
Size: 1034 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/ogg-dev/attachments/20090527/a224e0de/attachment.diff 

More information about the ogg-dev mailing list