[gstreamer-bugs] [Bug 305231] [theoraenc] messes up granulepos

bugzilla-daemon at bugzilla.gnome.org bugzilla-daemon at bugzilla.gnome.org
Sun Jun 12 06:16:24 PDT 2005


Please DO NOT reply to this by email. All additional comments should be made in
the comments box of this bug report.

 http://bugzilla.gnome.org/show_bug.cgi?id=305231
 GStreamer | gst-plugins | Ver: 0.8.8





------- Additional Comments From Tim-Philipp Müller  2005-06-12 13:16 -------
Created an attachment (id=47647)
 --> (http://bugzilla.gnome.org/attachment.cgi?id=47647&action=view)
theoradec timestamp improvements (treat with care)

This patch is just an idea basically, and part of the general ogg granulepos
A/V sync effort. To be clear, it's ugly, but I think it simplifies the code a
bit and makes timestamps more reliable in more circumstances.

How it is supposed to work is basically this: an ogg page is made up of
multiple packets. We get these packets one-per-buffer from oggdemux. Only the
last packet of a page carries the page's granulepos in GST_BUFFER_OFFSET_END.
So what we do is we store decoded frames in a queue, and once we get the last
packet of a page, we tag all the buffers with the correct frame numbers and
time stamps and push them all out at once. There usually aren't that many
packets per page in theora streams, so it's not as bad as it sounds. It does
make sure though that even the first frames are stamped correctly, unlike the
current solution.

Note that this has only received limited testing because I don't have reliable
test streams available (our encoders currently produce crack according to
oggz-validate), so handle this patch with care. Problems I've found are A/V
sync after seeking in totem, but that might be due to a whole number of
problems in other plugins that still need to be fixed.


------- You are receiving this mail because: -------
You are the assignee for the bug.
You are the QA contact for the bug.




More information about the Gstreamer-bugs mailing list