timecodestamper: Fix latency calculation

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>
This commit is contained in:
Sebastian Dröge 2021-08-05 13:02:00 +03:00
parent c7be05cc38
commit 7433870528

View 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;