summaryrefslogtreecommitdiff
path: root/gst/matroska
diff options
context:
space:
mode:
authorAlessandro Decina <alessandro.d@gmail.com>2012-04-19 08:31:00 +0200
committerAlessandro Decina <alessandro.decina@collabora.co.uk>2012-05-23 10:51:34 +0200
commitf023e3f2d7404f487bbbcb781ea5c224fb1e49a7 (patch)
tree78ef3e7a2cb13c61706c02534d02ae175ffbab97 /gst/matroska
parente337279453c8284f75ce0a856ca2a50ab219e873 (diff)
matroskademux: don't discard the incoming seek segment on push based seeking
The incoming seek segment was being discarded leading to push based seeking being potentially inaccurate.
Diffstat (limited to 'gst/matroska')
-rw-r--r--gst/matroska/matroska-demux.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index ef3ae9d65..4b645e909 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -2016,6 +2016,11 @@ gst_matroska_demux_handle_seek_event (GstMatroskaDemux * demux,
GST_OBJECT_UNLOCK (demux);
if (demux->streaming) {
+ GST_OBJECT_LOCK (demux);
+ /* now update the real segment info */
+ GST_DEBUG_OBJECT (demux, "Committing new seek segment");
+ memcpy (&demux->common.segment, &seeksegment, sizeof (GstSegment));
+ GST_OBJECT_UNLOCK (demux);
/* need to seek to cluster start to pick up cluster time */
/* upstream takes care of flushing and all that
* ... and newsegment event handling takes care of the rest */