From 2f776d679faa065f5998c17b6dbf23780773f8e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 5 Jan 2016 14:23:26 +0200 Subject: [PATCH] clock: Don't allow setting an unsynced clock as master --- gst/gstclock.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gst/gstclock.c b/gst/gstclock.c index d3eaf9df57..70583c4a5c 100644 --- a/gst/gstclock.c +++ b/gst/gstclock.c @@ -1230,6 +1230,9 @@ gst_clock_set_master (GstClock * clock, GstClock * master) /* we always allow setting the master to NULL */ if (master && !GST_OBJECT_FLAG_IS_SET (clock, GST_CLOCK_FLAG_CAN_SET_MASTER)) goto not_supported; + if (master && !gst_clock_is_synced (master)) + goto master_not_synced; + GST_CAT_DEBUG_OBJECT (GST_CAT_CLOCK, clock, "slaving %p to master clock %p", clock, master); GST_OBJECT_UNLOCK (clock); @@ -1270,6 +1273,14 @@ not_supported: GST_OBJECT_UNLOCK (clock); return FALSE; } + +master_not_synced: + { + GST_CAT_DEBUG_OBJECT (GST_CAT_CLOCK, master, + "master clock is not synced yet"); + GST_OBJECT_UNLOCK (clock); + return FALSE; + } } /**