diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp index db7fa9d5b3..6fbcb34a70 100644 --- a/sys/decklink/gstdecklinkvideosink.cpp +++ b/sys/decklink/gstdecklinkvideosink.cpp @@ -483,15 +483,9 @@ convert_to_internal_clock (GstDecklinkVideoSink * self, // according to our internal clock. // // For the duration we just scale - if (external > external_timestamp) { - guint64 diff = external - external_timestamp; - diff = gst_util_uint64_scale (diff, rate_d, rate_n); - *timestamp = internal - diff; - } else { - guint64 diff = external_timestamp - external; - diff = gst_util_uint64_scale (diff, rate_d, rate_n); - *timestamp = internal + diff; - } + *timestamp = + gst_clock_unadjust_with_calibration (NULL, external_timestamp, + internal, external, rate_n, rate_d); GST_LOG_OBJECT (self, "Converted %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT " (internal: %" diff --git a/sys/decklink/gstdecklinkvideosrc.cpp b/sys/decklink/gstdecklinkvideosrc.cpp index d82c5fc730..0e8103406d 100644 --- a/sys/decklink/gstdecklinkvideosrc.cpp +++ b/sys/decklink/gstdecklinkvideosrc.cpp @@ -464,15 +464,9 @@ gst_decklink_video_src_convert_to_external_clock (GstDecklinkVideoSrc * self, // according to our external clock. // // For the duration we just scale - if (internal > internal_timestamp) { - guint64 diff = internal - internal_timestamp; - diff = gst_util_uint64_scale (diff, rate_n, rate_d); - *timestamp = external - diff; - } else { - guint64 diff = internal_timestamp - internal; - diff = gst_util_uint64_scale (diff, rate_n, rate_d); - *timestamp = external + diff; - } + *timestamp = + gst_clock_adjust_with_calibration (NULL, internal_timestamp, internal, + external, rate_n, rate_d); GST_LOG_OBJECT (self, "Converted %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT " (external: %"