summaryrefslogtreecommitdiff
path: root/gst/gstnicesrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/gstnicesrc.c')
-rw-r--r--gst/gstnicesrc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gst/gstnicesrc.c b/gst/gstnicesrc.c
index e83eade..37aabbf 100644
--- a/gst/gstnicesrc.c
+++ b/gst/gstnicesrc.c
@@ -213,10 +213,15 @@ gst_nice_src_unlock_idler (gpointer data)
{
GstNiceSrc *nicesrc = GST_NICE_SRC (data);
- g_main_loop_quit (nicesrc->mainloop);
+ GST_OBJECT_LOCK (nicesrc);
+ if (nicesrc->unlocked)
+ g_main_loop_quit (nicesrc->mainloop);
- g_source_unref (nicesrc->idle_source);
- nicesrc->idle_source = NULL;
+ if (nicesrc->idle_source) {
+ g_source_unref (nicesrc->idle_source);
+ nicesrc->idle_source = NULL;
+ }
+ GST_OBJECT_UNLOCK (nicesrc);
return FALSE;
}