After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 319110 - [PATCH] oggdemux chain finding is slow
[PATCH] oggdemux chain finding is slow
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 0.9.5
Assigned To: Andy Wingo
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-10-17 21:59 UTC by Alessandro Decina
Modified: 2005-11-11 16:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
proposed fix (1.67 KB, patch)
2005-10-17 22:02 UTC, Alessandro Decina
rejected Details | Review
proposed fix (2) (2.44 KB, patch)
2005-10-18 21:39 UTC, Alessandro Decina
none Details | Review
proposed fix (3) (6.21 KB, patch)
2005-10-28 10:26 UTC, Alessandro Decina
none Details | Review
proposed fix (4) (16.72 KB, patch)
2005-10-30 10:17 UTC, Alessandro Decina
none Details | Review

Description Alessandro Decina 2005-10-17 21:59:26 UTC
oggdemux is slow with valid ogg files having EOS pages at the beginning of the file.
Comment 1 Alessandro Decina 2005-10-17 22:02:11 UTC
Created attachment 53598 [details] [review]
proposed fix
Comment 2 Ronald Bultje 2005-10-17 23:02:35 UTC
This will search for only two chains, and is thus incorrect. Smarter chain
position finding would be better.
Comment 3 Alessandro Decina 2005-10-18 21:39:24 UTC
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).
Comment 4 Alessandro Decina 2005-10-27 15:08:42 UTC
the attachment #53952 [details] from bug #319986 contains this patch
Comment 5 Alessandro Decina 2005-10-28 10:26:41 UTC
Created attachment 53984 [details] [review]
proposed fix (3)
Comment 6 Alessandro Decina 2005-10-30 10:17:35 UTC
Created attachment 54077 [details] [review]
proposed fix (4)

updated to apply on HEAD
Comment 7 Michael Smith 2005-10-31 18:37:14 UTC
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.