From: <bi...@ke...> - 2009-06-28 16:17:39
|
Module: gst-plugins-ugly Branch: master Commit: 725da8579bae51f256812666651555f3f0f1be50 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/commit/?id=725da8579bae51f256812666651555f3f0f1be50 Author: Edward Hervey <bi...@bi...> Date: Sun Jun 28 17:04:00 2009 +0200 asfdemux: Use the average frame duration for buffers without a duration. This will still cause some timestamp jitter, but giving a hint as to the duration rather than nothing seems to be a better idea. Also, this allows some scenarios (like remuxing with asfmux) to estimate the total duration using the accumulated packet duration (which will be correct). --- gst/asfdemux/gstasfdemux.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c index 3debb46..8300b0a 100644 --- a/gst/asfdemux/gstasfdemux.c +++ b/gst/asfdemux/gstasfdemux.c @@ -1314,7 +1314,11 @@ gst_asf_demux_push_complete_payloads (GstASFDemux * demux, gboolean force) * position reporting if a live src is playing not so live content * (e.g. rtspsrc taking some time to fall back to tcp) */ GST_BUFFER_TIMESTAMP (payload->buf) = payload->ts + demux->in_gap; - GST_BUFFER_DURATION (payload->buf) = payload->duration; + if (payload->duration == GST_CLOCK_TIME_NONE) + GST_BUFFER_DURATION (payload->buf) = + stream->ext_props.avg_time_per_frame * 100; + else + GST_BUFFER_DURATION (payload->buf) = payload->duration; /* FIXME: we should really set durations on buffers if we can */ |