GNOME Bugzilla – Bug 319110
[PATCH] oggdemux chain finding is slow
Last modified: 2005-11-11 16:40:46 UTC
oggdemux is slow with valid ogg files having EOS pages at the beginning of the file.
Created attachment 53598 [details] [review] proposed fix
This will search for only two chains, and is thus incorrect. Smarter chain position finding would be better.
Created attachment 53627 [details] [review] proposed fix (2) This is basically the same patch as above. It makes gst_ogg_demux_read_end_chain stop when the last page of the *chain* is found. The current approach is to stop when the last page of *each logical bitstream* in a chain is found. This approach is slow with oggs that have logical bitstreams that end early in the phisycal bitstream, e.g. annodex files (where the skeleton ends before the first data page). Moreover this patch makes the chain finding work when there are logical bitstreams that can't be decoded (that is when pad->elem_pad is NULL and the pad->first_time can't be calculated).
the attachment #53952 [details] from bug #319986 contains this patch
Created attachment 53984 [details] [review] proposed fix (3)
Created attachment 54077 [details] [review] proposed fix (4) updated to apply on HEAD
Committed version 3 of the patch, modified to apply to HEAD. The last version added a bunch of unrelated functionality which I didn't want to review as part of this patch (I suspect this version of the patch was intended for #319986). Thanks for working through the issues with this patch, Alessandro.