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 593029 - oggmux doesn't fully handle display offsets
oggmux doesn't fully handle display offsets
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-08-25 15:35 UTC by Arek Korbik
Modified: 2011-05-20 07:32 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Arek Korbik 2009-08-25 15:35:34 UTC
Since schroenc recently started producing buffers with display offsets (frame's decode time can be different than presentation time) it turned out oggmux needs some improvements to properly handle that kind of situation.

A simple pipeline, like:

gst-launch-0.10 -v videotestsrc ! schroenc ! oggmux ! fakesink

produces something like:

/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < ( 2526 bytes, timestamp: 0:00:02.666666666, duration: 0:00:00.033333333, offset: 229596, offset_end: 232122, flags: 256) 0x9a949b0"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < ( 2500 bytes, timestamp: 0:00:02.666666666, duration: 0:00:00.166666667, offset: 232122, offset_end: 234622, flags: 256) 0x9a94a50"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < ( 3901 bytes, timestamp: 0:00:02.800000000, duration: 5124095:34:33.609551616, offset: 234622, offset_end: 238523, flags: 256) 0x9a94c50"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < ( 2531 bytes, timestamp: 0:00:02.800000000, duration: 0:00:00.033333333, offset: 238523, offset_end: 241054, flags: 256) 0x9a94af0"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < ( 2498 bytes, timestamp: 0:00:02.800000000, duration: 0:00:00.033333333, offset: 241054, offset_end: 243552, flags: 256) 0x9a94de0"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < ( 2395 bytes, timestamp: 0:00:02.800000000, duration: 0:00:00.166666667, offset: 243552, offset_end: 245947, flags: 256) 0x9a94c00"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < ( 3763 bytes, timestamp: 0:00:02.933333333, duration: 5124095:34:33.609551616, offset: 245947, offset_end: 249710, flags: 256) 0x9a94cf0"
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   ******* < ( 2537 bytes, timestamp: 0:00:02.933333333, duration: 0:00:00.033333333, offset: 249710, offset_end: 252247, flags: 256) 0x9a94820"

Although the content of the ogg buffers will be mostly correct, the gstreamer timestamps and durations on the buffers are wrong.
Comment 1 Sebastian Dröge (slomo) 2011-05-20 07:32:01 UTC
This should in theory be fixed now, especially because the Dirac/Ogg mapping takes this into account. Can you confirm this?