timecodestamper: Fix latency calculation
authorSebastian Dröge <sebastian@centricular.com>
Thu, 5 Aug 2021 10:02:00 +0000 (13:02 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 5 Aug 2021 10:03:12 +0000 (13:03 +0300)
The LTC extra latency is in ms already and not in frames, so multiplying
with the framerate will end up with a wrong number.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2453>

gst/timecode/gsttimecodestamper.c

index 9a91b39..b4139d8 100644 (file)
@@ -1002,13 +1002,15 @@ gst_timecodestamper_query (GstBaseTransform * trans,
           /* Introduce additional LTC for waiting for LTC timecodes. The
            * LTC library introduces some as well as the encoding of the LTC
            * signal. */
-          latency = timecodestamper->ltc_extra_latency *
-              gst_util_uint64_scale_int_ceil (GST_SECOND,
-              timecodestamper->vinfo.fps_d, timecodestamper->vinfo.fps_n);
+          latency = timecodestamper->ltc_extra_latency;
           min_latency += latency;
           if (max_latency != GST_CLOCK_TIME_NONE)
             max_latency += latency;
           timecodestamper->latency = min_latency;
+          GST_DEBUG_OBJECT (timecodestamper,
+              "Reporting latency min %" GST_TIME_FORMAT " max %" GST_TIME_FORMAT
+              " ours %" GST_TIME_FORMAT, GST_TIME_ARGS (min_latency),
+              GST_TIME_ARGS (max_latency), GST_TIME_ARGS (latency));
           gst_query_set_latency (query, live, min_latency, max_latency);
         } else {
           timecodestamper->latency = 0;