diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2016-11-02 15:00:36 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-11-02 15:00:36 +0200 |
commit | ac37bdb9ac5953e056a36b8d9b8e956ac0fe0272 (patch) | |
tree | d0473c91d1ba7d1afb5a342742b2d5c29d5f3002 | |
parent | 31317fd66633930b82d51d1c2e65121e24f9df19 (diff) |
decklink: Use gst_clock_adjust_with_calibration() and unadjust_with_calibration()
Instead of hand-crafted versions of the same calculation. These
calculations are still too complicated though.
-rw-r--r-- | sys/decklink/gstdecklinkvideosink.cpp | 12 | ||||
-rw-r--r-- | sys/decklink/gstdecklinkvideosrc.cpp | 12 |
2 files changed, 6 insertions, 18 deletions
diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp index db7fa9d5b..6fbcb34a7 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 d82c5fc73..0e8103406 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: %" |