oggdemux: use an adaptive chunksize for performance reasons
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Mon, 13 Jan 2014 15:14:14 +0000 (15:14 +0000)
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Tue, 14 Jan 2014 12:48:45 +0000 (12:48 +0000)
commit25bf5a13f0436b491b596ebd772c53b4bffd02f7
treec73afd8542ec87fb51eac8e56f20c1d19df801c1
parent95a56dbda7de40dd9ad91991119545aa58b57a67
oggdemux: use an adaptive chunksize for performance reasons

Ogg data is read chunk by chunk, and the chunk size used was
originally taken from libvorbisfile. However, this value leads
to poor performance when used on an Ogg file with large pages
(Ogg pages can be close to 64 KB).

We can't just use a larger chunk size, since this will decrease
performance on small page streams, so we use an adaptive scheme
where the chunk size is twice the largest page size we've seen
so far in the stream. For "typical" Ogg/Vorbis, this gives us
almost the same chunk size (a bit lower), and this lets us get
better performance on streams with large pages.
ext/ogg/gstoggdemux.c
ext/ogg/gstoggdemux.h