From 4521524de37f50812acb33a147fe61d1a0d0a364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 2 Mar 2015 16:45:45 +0100 Subject: [PATCH] decklink: Reset the clock calibration when unsetting the master clock Otherwise the old calibration will stick around for the next time we use it, potentially giving us completely wrong times. --- sys/decklink/gstdecklinkvideosink.cpp | 2 ++ sys/decklink/gstdecklinkvideosrc.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp index 3bccca7d6c..0096d9e187 100644 --- a/sys/decklink/gstdecklinkvideosink.cpp +++ b/sys/decklink/gstdecklinkvideosink.cpp @@ -705,6 +705,8 @@ gst_decklink_video_sink_change_state (GstElement * element, gst_message_new_clock_lost (GST_OBJECT_CAST (element), self->output->clock)); gst_clock_set_master (self->output->clock, NULL); + // Reset calibration to make the clock reusable next time we use it + gst_clock_set_calibration (self->output->clock, 0, 0, 1, 1); g_mutex_lock (&self->output->lock); self->output->clock_start_time = GST_CLOCK_TIME_NONE; self->output->clock_last_time = 0; diff --git a/sys/decklink/gstdecklinkvideosrc.cpp b/sys/decklink/gstdecklinkvideosrc.cpp index b600634f2d..0432e8cff9 100644 --- a/sys/decklink/gstdecklinkvideosrc.cpp +++ b/sys/decklink/gstdecklinkvideosrc.cpp @@ -765,6 +765,8 @@ gst_decklink_video_src_change_state (GstElement * element, gst_message_new_clock_lost (GST_OBJECT_CAST (element), self->input->clock)); gst_clock_set_master (self->input->clock, NULL); + // Reset calibration to make the clock reusable next time we use it + gst_clock_set_calibration (self->input->clock, 0, 0, 1, 1); g_mutex_lock (&self->input->lock); self->input->clock_start_time = GST_CLOCK_TIME_NONE; self->input->clock_last_time = 0;