Commit 9fdcad4a authored by Sebastian Dröge's avatar Sebastian Dröge

matroskademux: Pass seek rate to upstream seek events in push mode

Fixes bug #679435.

Conflicts:
	gst/matroska/matroska-demux.c
parent 51371d26
...@@ -171,7 +171,7 @@ static GstCaps ...@@ -171,7 +171,7 @@ static GstCaps
/* stream methods */ /* stream methods */
static void gst_matroska_demux_reset (GstElement * element); static void gst_matroska_demux_reset (GstElement * element);
static gboolean perform_seek_to_offset (GstMatroskaDemux * demux, static gboolean perform_seek_to_offset (GstMatroskaDemux * demux,
guint64 offset); gdouble rate, guint64 offset);
/* gobject functions */ /* gobject functions */
static void gst_matroska_demux_set_property (GObject * object, static void gst_matroska_demux_set_property (GObject * object,
...@@ -2007,7 +2007,7 @@ gst_matroska_demux_handle_seek_event (GstMatroskaDemux * demux, ...@@ -2007,7 +2007,7 @@ gst_matroska_demux_handle_seek_event (GstMatroskaDemux * demux,
/* need to seek to cluster start to pick up cluster time */ /* need to seek to cluster start to pick up cluster time */
/* upstream takes care of flushing and all that /* upstream takes care of flushing and all that
* ... and segment event handling takes care of the rest */ * ... and segment event handling takes care of the rest */
return perform_seek_to_offset (demux, return perform_seek_to_offset (demux, rate,
entry->pos + demux->common.ebml_segment_start); entry->pos + demux->common.ebml_segment_start);
} }
...@@ -2188,7 +2188,7 @@ gst_matroska_demux_handle_seek_push (GstMatroskaDemux * demux, GstPad * pad, ...@@ -2188,7 +2188,7 @@ gst_matroska_demux_handle_seek_push (GstMatroskaDemux * demux, GstPad * pad,
if (!building_index) { if (!building_index) {
/* seek to the first subindex or legacy index */ /* seek to the first subindex or legacy index */
GST_INFO_OBJECT (demux, "Seeking to Cues at %" G_GUINT64_FORMAT, offset); GST_INFO_OBJECT (demux, "Seeking to Cues at %" G_GUINT64_FORMAT, offset);
return perform_seek_to_offset (demux, offset); return perform_seek_to_offset (demux, rate, offset);
} }
/* well, we are handling it already */ /* well, we are handling it already */
...@@ -4612,7 +4612,7 @@ pause: ...@@ -4612,7 +4612,7 @@ pause:
* Create and push a flushing seek event upstream * Create and push a flushing seek event upstream
*/ */
static gboolean static gboolean
perform_seek_to_offset (GstMatroskaDemux * demux, guint64 offset) perform_seek_to_offset (GstMatroskaDemux * demux, gdouble rate, guint64 offset)
{ {
GstEvent *event; GstEvent *event;
gboolean res = 0; gboolean res = 0;
...@@ -4620,7 +4620,7 @@ perform_seek_to_offset (GstMatroskaDemux * demux, guint64 offset) ...@@ -4620,7 +4620,7 @@ perform_seek_to_offset (GstMatroskaDemux * demux, guint64 offset)
GST_DEBUG_OBJECT (demux, "Seeking to %" G_GUINT64_FORMAT, offset); GST_DEBUG_OBJECT (demux, "Seeking to %" G_GUINT64_FORMAT, offset);
event = event =
gst_event_new_seek (1.0, GST_FORMAT_BYTES, gst_event_new_seek (rate, GST_FORMAT_BYTES,
GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, offset, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, offset,
GST_SEEK_TYPE_NONE, -1); GST_SEEK_TYPE_NONE, -1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment