GNOME Bugzilla – Bug 311491
ogg muxer can get pages out of order (patch)
Last modified: 2005-07-28 09:16:48 UTC
If a page has a granulepos of -1 (indicating that no packets end on it), the ogg muxer can get some data out of order. This hasn't come up before because a libogg bug meant that the pages usually didn't have granulepos -1 even when they should have. This happens because the muxer selects the logical stream to write data from as whichever stream has a page with the lowest timestamp. It only does this once pages are available on queues for all the streams, so that this decision can be done correctly (unless the stream is at EOS). However, it's actually neccesary to check that the queues contain a page _with a timestamp_ - requiring some lookahead. I'll shortly attach a patch that fixes this.
Created attachment 49720 [details] [review] Fix for dealing with ogg pages with negative granulepos
So, I'm not sure what all that means, but the patch looks sane, so please go ahead and apply... Do you have CVS access yet (given that you work at Fluendo anyway... :) ).
I don't have CVS access at this time. Can you commit for me, please?
applied, thanks. 2005-07-28 Michael Smith <msmith@fluendo.com> Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net> * ext/ogg/gstoggmux.c: (gst_ogg_mux_dequeue_page): Make sure pages are always in the right order, even when there is no granulepos on some packets, by using larger lookahead on queues until we find a timestamped packet (#311491).