GNOME Bugzilla – Bug 687178
tsdemux produces buffers without timestamps when activated in push mode
Last modified: 2013-01-04 12:11:14 UTC
The buffers produced by tsdemux doesn't provide timing info when activated in push mode causing random behaviours from a single video frame presented to A/V sync issues depending on the media and the video codec involved.
The combination of push-mode AND non-timestamped input is indeed failing. I think we should just activate the skew-based code when it's push-based AND time-based. And then we use the other algorithm (offset-based) for all the other use cases. Note : I just want to be sure that those use cases are indeed non live. Otherwise upstream *should* timestamp that stream, otherwise we cannot achieve proper rate/skew estimation.
At lest the following are valid use cases that aren't live. playbin uri=pushfile:// filesrc ! queue ! tsdemux anysrc ! flumpegshifter ! tsdemux
Created attachment 228530 [details] [review] mpegts: Only use timestamp-based PCR/PTS estimation when needed When dealing with non-time based push-mode streams, we need to revert to using the offset-based PCR/PTS estimation logic of packetizer. This solves uses cases such as: pushfile:// ! tsdemux src ! queue ! tsdemux
Author: Edward Hervey <edward@collabora.com> Date: Thu Nov 8 17:15:26 2012 +0100 mpegts: Only use timestamp-based PCR/PTS estimation when needed When dealing with non-time based push-mode streams, we need to revert to using the offset-based PCR/PTS estimation logic of packetizer. This solves uses cases such as: pushfile:// ! tsdemux src ! queue ! tsdemux https://bugzilla.gnome.org/show_bug.cgi?id=687178
This appears to have broken DVB playback, at least in some cases, see bug #690949.