summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Duponchelle <mathieu.duponchelle@epitech.eu>2013-05-28 19:09:23 +0200
committerSebastian Dröge <slomo@circular-chaos.org>2013-06-11 21:53:56 +0200
commit8153731bee539183597145ada7ba1157a546ad4b (patch)
treea7f90ee7bf7d7dc01bc0c7eca4a9760973c0806e
parent4652ffdf90993961de3bbe48c18eb389dc4cb966 (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.c31
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");