Rockbox mail archiveSubject: Wavpack Hybrid Progress (still buffering!)
Wavpack Hybrid Progress (still buffering!)
From: Bryan Jacobs <no_at_landwarsin.asia>
Date: Sat, 25 Jul 2009 14:42:29 -0400
I spent this week working on the buffering code again, implementing
what I posted last week (since nobody sent in any objections). The WIP
patch is at http://q3q.us/chunky.patch . It currently doesn't:
(a) handle the case where a normal handle is added to a buffer full of
"chunky" handles (forcing the "chunky" handles to have their space
reserved) but there is not enough room for that to happen without
adding a new noncontiguous section to one of said "chunky" handles
(b) serve reads that cross the noncontiguous boundaries in a "chunky"
handle, although the framework to do this is present.
(c) handle more than two files per codec - it WILL handle any number of
files in the buffer, but each audio file can only have one associated
All of the other logic necessary (keeping an implicit list of chunky
handles, performing backwards and forwards seeking in a logical
fashion, deleting handles) is present. Some data should probably be
pulled out of struct memory_handle; it's currently 316 bytes! Most of
that is the file path. If that could be stored elsewhere the overhead
of this scheme once it's finished would be reduced. Alternatively we
could make the default chunk size large (currently I set it to
BUFFERING_DEFAULT_FILECHUNK*2) so the amortized overhead is small.
So, in summary, I'm making slow but steady progress. Note that once
this is done the only thing left on my project milestones will be mono
support, since this implements seeking.