summaryrefslogtreecommitdiff
path: root/libs/gst/check/gsttestclock.c
diff options
context:
space:
mode:
Diffstat (limited to 'libs/gst/check/gsttestclock.c')
-rw-r--r--libs/gst/check/gsttestclock.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/libs/gst/check/gsttestclock.c b/libs/gst/check/gsttestclock.c
index 120337b8b..f9737a6aa 100644
--- a/libs/gst/check/gsttestclock.c
+++ b/libs/gst/check/gsttestclock.c
@@ -423,6 +423,9 @@ gst_test_clock_wait (GstClock * clock,
"requesting synchronous clock notification at %" GST_TIME_FORMAT,
GST_TIME_ARGS (GST_CLOCK_ENTRY_TIME (entry)));
+ if (GST_CLOCK_ENTRY_STATUS (entry) == GST_CLOCK_UNSCHEDULED)
+ goto was_unscheduled;
+
if (gst_test_clock_lookup_entry_context (test_clock, entry) == NULL)
gst_test_clock_add_entry (test_clock, entry, jitter);
@@ -434,6 +437,15 @@ gst_test_clock_wait (GstClock * clock,
GST_OBJECT_UNLOCK (test_clock);
return GST_CLOCK_ENTRY_STATUS (entry);
+
+ /* ERRORS */
+was_unscheduled:
+ {
+ GST_CAT_DEBUG_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
+ "entry was unscheduled");
+ GST_OBJECT_UNLOCK (test_clock);
+ return GST_CLOCK_UNSCHEDULED;
+ }
}
static GstClockReturn
@@ -443,6 +455,9 @@ gst_test_clock_wait_async (GstClock * clock, GstClockEntry * entry)
GST_OBJECT_LOCK (test_clock);
+ if (GST_CLOCK_ENTRY_STATUS (entry) == GST_CLOCK_UNSCHEDULED)
+ goto was_unscheduled;
+
GST_CAT_DEBUG_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
"requesting asynchronous clock notification at %" GST_TIME_FORMAT,
GST_TIME_ARGS (GST_CLOCK_ENTRY_TIME (entry)));
@@ -452,6 +467,15 @@ gst_test_clock_wait_async (GstClock * clock, GstClockEntry * entry)
GST_OBJECT_UNLOCK (test_clock);
return GST_CLOCK_OK;
+
+ /* ERRORS */
+was_unscheduled:
+ {
+ GST_CAT_DEBUG_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
+ "entry was unscheduled");
+ GST_OBJECT_UNLOCK (test_clock);
+ return GST_CLOCK_UNSCHEDULED;
+ }
}
static void