diff options
author | Nicolas Dufresne <nicolas.dufresne@collabora.com> | 2013-03-28 16:26:25 +0000 |
---|---|---|
committer | Edward Hervey <edward@collabora.com> | 2013-03-28 18:10:52 +0100 |
commit | 985c0003f90b0a94a9b00ef9782ecac60c8c1ec0 (patch) | |
tree | ab58a084d123251b7ff24cee84835377878d258b /gnl | |
parent | 0d4ac1a4fdcabeaa87c176a12d1ebc87958d19b0 (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.
Diffstat (limited to 'gnl')
-rw-r--r-- | gnl/gnlcomposition.c | 6 |
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 { |