diff options
author | Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com> | 2010-01-24 14:41:44 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2010-01-25 23:50:09 +0000 |
commit | ed2e09133eb71c8187d509916f675ed1144f89e1 (patch) | |
tree | ae7b84cd21464fbb3bfc0d69c7d30f9eeae80033 | |
parent | 25873a050f6d2742a855caa9b5a466f35b530cbc (diff) |
oggdemux: sparse streams aren't timed by end time, and their duration isn't implicit
Fixes timestamps and durations on Kate subtitle streams.
See http://www.xiph.org/ogg/doc/ogg-multiplex.html section 'start-time and
end-time positioning' for some more details, and bug #600929.
-rw-r--r-- | ext/ogg/gstoggdemux.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index 42037c41..2d00a48f 100644 --- a/ext/ogg/gstoggdemux.c +++ b/ext/ogg/gstoggdemux.c @@ -591,6 +591,10 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet, pad->current_granule); out_duration = gst_util_uint64_scale (duration, GST_SECOND * pad->map.granulerate_d, pad->map.granulerate_n); + } else if (pad->is_sparse) { + out_timestamp = gst_ogg_stream_granule_to_time (&pad->map, + pad->current_granule); + out_duration = GST_CLOCK_TIME_NONE; } else { out_timestamp = gst_ogg_stream_granule_to_time (&pad->map, pad->current_granule - duration); |