GNOME Bugzilla – Bug 355595
multifdsink burst modes have problems with ogg
Last modified: 2006-12-17 18:43:58 UTC
When using time-based burst modes in multifdsink, they don't work properly for ogg. Ogg buffers do not have monotonically increasing timestamps (because the timestamps that monotonically increase, in ogg's case, are timestamp + duration). When find_limits tries to find the difference in timestamps, negative values are (because it's using unsigned arithmetic) seen as large positive values, so are greater than time_min. So, we need to cast some of these to signed values; GstClockTimeDiff.
Created attachment 72621 [details] [review] Patch for time-based burst modes This works for me, but hasn't been heavily tested.
Created attachment 72625 [details] [review] Patch that also fixes up docs in multifdsink No functional changes, just extensive docs fixups (mostly typos)
Committed the docs patch without the timestamp parts.
Wim didn't like the cast patch. Instead, he suggested changing oggmux to not generate out-of-order timestamps. The patch I'll attach soon does this by storing a 'last_ts' for the most recently pushed buffer, and setting the ts of the buffer being pushed to this if it has a ts less than last_ts.
Created attachment 72971 [details] [review] Avoid out-of-order timestamps from oggmux
Oggmux patch committed, fixes this problem.