diff options
author | Mathieu Duponchelle <mathieu.duponchelle@epitech.eu> | 2013-05-28 19:09:23 +0200 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2013-06-11 21:53:56 +0200 |
commit | 8153731bee539183597145ada7ba1157a546ad4b (patch) | |
tree | a7f90ee7bf7d7dc01bc0c7eca4a9760973c0806e | |
parent | 4652ffdf90993961de3bbe48c18eb389dc4cb966 (diff) |
gnlcomposition: Don't flush_start / flush_stop according to user's flags.
We do it ourselves when needed, doing so led the pipeline to lose state,
which was updating the base time.
fixes https://bugzilla.gnome.org/show_bug.cgi?id=701146
-rw-r--r-- | gnl/gnlcomposition.c | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/gnl/gnlcomposition.c b/gnl/gnlcomposition.c index 6a788a6..b04f3e1 100644 --- a/gnl/gnlcomposition.c +++ b/gnl/gnlcomposition.c @@ -123,8 +123,6 @@ struct _GnlCompositionPrivate /* pending child seek */ GstEvent *childseek; - /* TRUE if a user seek with the flush flag was received */ - gboolean user_seek_flush; /* Seek segment handler */ GstSegment *segment; @@ -409,7 +407,6 @@ gnl_composition_dispose (GObject * object) gst_event_unref (priv->childseek); priv->childseek = NULL; } - comp->priv->user_seek_flush = FALSE; if (priv->current) { g_node_destroy (priv->current); @@ -625,7 +622,6 @@ gnl_composition_reset (GnlComposition * comp) gst_event_unref (priv->childseek); priv->childseek = NULL; } - comp->priv->user_seek_flush = FALSE; reset_childs (comp); @@ -1036,9 +1032,7 @@ handle_seek_event (GnlComposition * comp, GstEvent * event) priv->segment->start = MAX (priv->segment->start, GNL_OBJECT_START (comp)); priv->segment->stop = MIN (priv->segment->stop, GNL_OBJECT_STOP (comp)); - comp->priv->user_seek_flush = ! !(flags & GST_SEEK_FLAG_FLUSH); - if (comp->priv->user_seek_flush) - comp->priv->next_base_time = 0; + comp->priv->next_base_time = 0; seek_handling (comp, TRUE, FALSE); } @@ -2105,18 +2099,6 @@ no_more_pads_object_cb (GstElement * element, GnlComposition * comp) /* 3. unblock ghostpad */ if (topentry->probeid) { - if (comp->priv->user_seek_flush) { - COMP_OBJECTS_UNLOCK (comp); - gst_pad_push_event (comp->priv->ghostpad, - gst_event_new_flush_start ()); - GST_PAD_STREAM_LOCK (comp->priv->ghostpad); - GST_PAD_STREAM_UNLOCK (comp->priv->ghostpad); - gst_pad_push_event (comp->priv->ghostpad, - gst_event_new_flush_stop (TRUE)); - COMP_OBJECTS_LOCK (comp); - comp->priv->user_seek_flush = FALSE; - } - GST_LOG_OBJECT (comp, "About to unblock top-level pad : %s:%s", GST_DEBUG_PAD_NAME (tpad)); gst_pad_remove_probe (tpad, topentry->probeid); @@ -2707,17 +2689,6 @@ update_pipeline (GnlComposition * comp, GstClockTime currenttime, gnl_composition_ghost_pad_set_target (comp, pad, topentry); if (topentry->probeid) { - if (comp->priv->user_seek_flush) { - COMP_OBJECTS_UNLOCK (comp); - gst_pad_push_event (comp->priv->ghostpad, - gst_event_new_flush_start ()); - GST_PAD_STREAM_LOCK (comp->priv->ghostpad); - GST_PAD_STREAM_UNLOCK (comp->priv->ghostpad); - gst_pad_push_event (comp->priv->ghostpad, - gst_event_new_flush_stop (TRUE)); - COMP_OBJECTS_LOCK (comp); - comp->priv->user_seek_flush = FALSE; - } /* unblock top-level pad */ GST_LOG_OBJECT (comp, "About to unblock top-level srcpad"); |