diff options
author | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2010-01-18 15:22:52 -0300 |
---|---|---|
committer | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2010-01-18 15:39:55 -0300 |
commit | 125f7dfdb058888a4f2ba0e837259be1e1a2ff2b (patch) | |
tree | b6e28e1d34ff75db85c02bebec2e1b2bf4b41e8c | |
parent | 24f1a9a9b711e55bb51a5eb1c79d181c1179c52e (diff) |
oggdemux: granulepos is relative to its chain
When performing seeks, the granulepos should be offset by
its chain start time to avoid using wrong values to
update segment's last_stop. A sample file is indicated on
bug #606382
-rw-r--r-- | ext/ogg/gstoggdemux.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index b6e78b69..1540af20 100644 --- a/ext/ogg/gstoggdemux.c +++ b/ext/ogg/gstoggdemux.c @@ -1901,8 +1901,11 @@ gst_ogg_demux_do_seek (GstOggDemux * ogg, GstSegment * segment, pad->map.serialno, GST_TIME_ARGS (keyframe_time)); /* collect smallest value */ - if (keyframe_time != -1 && keyframe_time < keytarget) - keytarget = keyframe_time; + if (keyframe_time != -1) { + keyframe_time += begintime; + if (keyframe_time < keytarget) + keytarget = keyframe_time; + } next: pending--; |