GNOME Bugzilla – Bug 593029
oggmux doesn't fully handle display offsets
Last modified: 2011-05-20 07:32:01 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.
This should in theory be fixed now, especially because the Dirac/Ogg mapping takes this into account. Can you confirm this?