summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2013-03-28 16:26:25 +0000
committerEdward Hervey <edward@collabora.com>2013-03-28 18:10:52 +0100
commit985c0003f90b0a94a9b00ef9782ecac60c8c1ec0 (patch)
treeab58a084d123251b7ff24cee84835377878d258b
parent0d4ac1a4fdcabeaa87c176a12d1ebc87958d19b0 (diff)
gnlcomposion: objects lock must be taken to call _set_target()
gnl_composition_ghost_pad_set_target() require the objects_lock to be taken. Aslo improve protection around user_seek_flush.
-rw-r--r--gnl/gnlcomposition.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gnl/gnlcomposition.c b/gnl/gnlcomposition.c
index 91d22d8..ebfdfce 100644
--- a/gnl/gnlcomposition.c
+++ b/gnl/gnlcomposition.c
@@ -2621,16 +2621,20 @@ update_pipeline (GnlComposition * comp, GstClockTime currenttime,
GST_LOG_OBJECT (comp,
"Setting the composition's ghostpad target to %s:%s",
GST_DEBUG_PAD_NAME (pad));
+
+ COMP_OBJECTS_LOCK (comp);
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;
}
@@ -2640,9 +2644,9 @@ update_pipeline (GnlComposition * comp, GstClockTime currenttime,
topentry->probeid = 0;
}
} else {
+ COMP_OBJECTS_LOCK (comp);
ret = FALSE;
}
- COMP_OBJECTS_LOCK (comp);
gst_object_unref (pad);
} else {