summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>2010-01-18 15:22:52 -0300
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>2010-01-18 15:39:55 -0300
commit125f7dfdb058888a4f2ba0e837259be1e1a2ff2b (patch)
treeb6e28e1d34ff75db85c02bebec2e1b2bf4b41e8c
parent24f1a9a9b711e55bb51a5eb1c79d181c1179c52e (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.c7
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--;