summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2020-12-16 18:32:25 +0200
committerTim-Philipp Müller <tim@centricular.com>2021-01-13 00:25:21 +0000
commit2afc46b5b724276d1e02eb91accdc6fa2badac38 (patch)
tree67ee9f1828a4b1afc51a89a2b5fb658a90c28ae1 /sys
parenta35760806abf4196c6b1b58ff808ba6302c7fd61 (diff)
downloadgstreamer-plugins-bad-2afc46b5b724276d1e02eb91accdc6fa2badac38.tar.gz
decklinkaudiosrc: Fix duration of the first audio frame after each discont
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1891>
Diffstat (limited to 'sys')
-rw-r--r--sys/decklink/gstdecklinkaudiosrc.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/decklink/gstdecklinkaudiosrc.cpp b/sys/decklink/gstdecklinkaudiosrc.cpp
index 2fef934c8..1ec2dd045 100644
--- a/sys/decklink/gstdecklinkaudiosrc.cpp
+++ b/sys/decklink/gstdecklinkaudiosrc.cpp
@@ -632,6 +632,8 @@ retry:
// Convert to the sample numbers
start_offset =
gst_util_uint64_scale (start_time, self->info.rate, GST_SECOND);
+ // Convert back to round down to a sample multiple and get rid of rounding errors
+ start_time = gst_util_uint64_scale (start_offset, GST_SECOND, self->info.rate);
end_offset = start_offset + sample_count;
end_time = gst_util_uint64_scale_int (end_offset, GST_SECOND,